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.
* 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.