Hacker News new | ask | show | jobs
by gspr 1849 days ago
Ditto. And I'm one of Rust's recent happy converts – it's probably the language I've learned that scores the highest ever when it comes to the unweighted sum of

* joy of coding

* (human) efficiency of coding

* performance of idiomatic code

* interoperability with C

* deployability

I'm totally sold on Rust. Yet: Why would I want to replace tried and tested tools with new versions just because they're written in Rust?

I burned myself on this when I was young and naive: Having just learned Haskell, I tried to use Haskell replacements for everything. It was incredibly stupid and counterproductive (the biggest real-world pain was clinging to darcs over git for a long time at the beginning of the DVCS wars – not because of darcs' arguable good features, but because it is written in Haskell; so stupid).

1 comments

It seems the new culture around re-writing these tools in rust starts with a few premises:

* Old tools are well established, not looking for major feature additions or changes

* Hard to add new features to old C-based system tools due to mature codebase and being written in C

* Using Rust to reach a low-bug/maintainable state more quickly than a re-write in C or C++

* Adding a bunch of quality of life features that make it worth switching

The big downside with these tools, of course, is that they are re-writes of tools that have been standard Linux/Unix system tools for a long time and can be generally expected to be present on any system for the purpose of shell scripts, services etc. Using any of these tools in a shell script requires the user to install it, along with the whole dependency graph that rust typically comes with (at least when building from source which is typically the case with rust).

I agree with you about the ubiquity of the standard tools but this also has downside: bigger size of the deployment containers.

Nowadays the distroless movement and the general zeal towards minimizing the overhead of a Docker image have the positive side-effect of making us less reliant on the older tools. So we can opt for newer ones (although it's very hard to beat 120KB of a classic old tool to 4MB of a new Golang/Rust tool still).

As for rewriting in Rust, the main point for me is always the memory safety. When it comes to writing programs, there's a ton of very nice languages out there already.