It’s quite insane the amount of nice tooling people have been building thanks to Rust. I’m wondering why is it that Rust transitioned us to a new era for open source. My bet is the package manager.
As far as I'm concerned, my preference when learning a new language is to build (in order of preference):
* a CLI tool
* a backend service
* a plugin to an existing tool
* an HTTP API / web app
You will note that a basic CLI tool requires nothing but arg parsing to get started, no complicated library or abstraction layer, while as you advance in the list above, you will most certainly use more libs and less of the raw language constructs.
Also, in the case of Rust and other compiled languages, ease of distribution as a binary rather than a package or some form of arbitrarily complicated installation method certainly helps.
YMMV of course but this is my approach and maybe it explains a bit of the trend you're wondering about.
I wouldn't say it's a new era of open source, there's nothing novel about licensing from rust. But from a tool perspective both rust and golang support easy static binary creation and IMHO that's why you see both of them being popular with modern CLI tools.
Gone are the days of packaging up distro-specific binaries, or worse yet depending on some system installed script interpreter (and all the myriad of ways it can be broken or out of date on your user's machines). Now you just download a single executable, put it in your path, and you're done. It will always work--today, tomorrow, ten years from now. It's so easy and reproducible you can even just commit the tools into your source repo if you want.
Honestly, I think part of this perception is the fact that things developed in Rust are more likely to advertise themselves as such. For example, I know that micro text editor is developed in Go only because I checked. I have no need to know this as an end-user, but many Rust-based projects seem quite eager to highlight that.
HenryMulligan|3 years ago
isabelk|3 years ago
kbouck|3 years ago
https://github.com/cheat/cheat
baby|3 years ago
xcambar|3 years ago
* a CLI tool
* a backend service
* a plugin to an existing tool
* an HTTP API / web app
You will note that a basic CLI tool requires nothing but arg parsing to get started, no complicated library or abstraction layer, while as you advance in the list above, you will most certainly use more libs and less of the raw language constructs.
Also, in the case of Rust and other compiled languages, ease of distribution as a binary rather than a package or some form of arbitrarily complicated installation method certainly helps.
YMMV of course but this is my approach and maybe it explains a bit of the trend you're wondering about.
qbasic_forever|3 years ago
Gone are the days of packaging up distro-specific binaries, or worse yet depending on some system installed script interpreter (and all the myriad of ways it can be broken or out of date on your user's machines). Now you just download a single executable, put it in your path, and you're done. It will always work--today, tomorrow, ten years from now. It's so easy and reproducible you can even just commit the tools into your source repo if you want.
mkotowski|3 years ago
voidfunc|3 years ago