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.
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.
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.
OTOH is very slow to compile.
One advice for people wanting more adoption for Rust: don't write existing programs: shells, cat, ls, etc. We already have them. Write new programs which will be useful to a lot of people. And then the adoption will occur naturally.
Apparently it’s difficult to implement doubly linked lists https://news.ycombinator.com/item?id=16443688
If your distribution environment doesn't strive to simplify this (eg: fedpkg, mock, RPM macros), what are you using it for?
No famous mainstream language in use today, has ever been adopted based on "it happens on it's own due to it's usability and features".
Before you rush out to write something like C, remember that it only came to use thanks to AT&T, Bell Labs and UNIX.
Even a language that seems to have everything going for it can fade out. Ruby's success used to be thought assured. Then it suddenly wasn't. Python has run the oddest course. It plodded along for two decades, almost imploded on the 2->3 transition, and then got its miracle.
rust wants to penetrate the industry by-proxy rather than with interesting tech/projects
Mozilla gave up rewriting firefox in rust
Embark gave up writing their new game engine in rust
There are a ton of niche languages that have very enthusiastic fanbases, but they don't get the same snowball effect rust has gotten because it's a great language on so many dimensions.