Arguably, it's because you tried it "only for a few hours". Rust has a relatively steep learning curve and it usually takes several months to become comfortable with it. But once you get over it, it often becomes quite hard to return to your previous languages, be it Python or C/C++.
Yes, there are tasks which are ill-fit for Rust and your IO-bound backend example is a good one. Not only Rust ecosystem is somewhat underdeveloped in this area (and don't get me started on Rust async and the heap of troubles it causes...), but also you have business requirements which change unpredictably and Rust's strictness introduces a certain friction in such environment.
But I think your mobile library can be a good project to properly learn Rust. If it's properly encapsulated, I don't think it will cause much trouble to your team outside of build system changes and risks associated with you being its sole developer.
You failed to address OP's point.
OP wondered why would he, or anyone, subject anyone else to a steep learning curve if there are no meaningful advantages to be gained.
As OP mentioned:
> Take backend dev for example: unless you're trying to squeeze the last drop of performance from your CPU, most concurrency issues are usually dealt with at the middleware level (DB, Queue, Nginx, etc), and most performance issues are usually I/O related.
Why do you believe that doubling down on a whole new programming language and tech stack would help address the fact that you do not benefit from any of it's sales pitches?
Honestly, your comment reads like a boilerplate reply to any criticism of Rust that presumes Rust's only problem is it's developer experience caused by it's learning curve but once that's behind anyone it's somehow the ideal solution for any imaginable scenario.
My doubt is if it'll work over a basic mobile phone connection, and that lots of folks in developing countries, as I also will be soon, will be left out because of this behavior.
There are ways to minimize the final resulting binary though, such as link time optimization, stripping symbols, building in release mode, and more. The following does a good job going over the options:
I don't use it because I don't have a need for low level coding on platforms with mature Rust support, but if I did I am pretty sure it would be my language of choice without hesitation.
Take backend dev for example: unless you're trying to squeeze the last drop of performance from your CPU, most concurrency issues are usually dealt with at the middleware level (DB, Queue, Nginx, etc), and most performance issues are usually I/O related.
I'm currently evaluating developing a cross-platform mobile native library using Rust, but i really don't see myself inflicting the pain of that language to the rest of my team.
Or maybe it's just a reflection on how active the community is ?
edit: i realize a lot of people are probably still coding in C because they have no other choice, and for them it's probably a good idea to switch. However, for all the rest i really don't see the point.