| I love using Rust in my toy projects (and wish my job was more open to anything but C++, but oh well). With its functional-style iterators, sum types and pattern matching, Rust lets me write code in a way that just feels natural. And the borrow checker stopped bothering me once I embraced reference-counted pointers for those cases where lifetimes are not obvious. Compilation time also hasn't been much of an issue once I moved to using dylibs for dependencies [1]. So if you want to use Rust but are wary of those problems, don't be! :) With that said, I can't help but feel that Rust development has noticeably slowed down over the years. Don't get me wrong, I appreciate the hard work behind each release! It's just that, from my totally uninformed bystander perspective, there's been a sharp drop in people working on the language and compiler full-time since around Mozilla layoffs, and Rust still hasn't recovered from that. It's surprising and quite disappointing to see no significant manpower commitment from other corporations using Rust, like Microsoft [2] and Google [3]. As a result, while there's definitely new exciting things happening, more and more issues are piling up, many sitting unaddressed for years. Granted, it's mostly the small things that you can live without, but they all add up. Here are some examples just off the top of my head: 1. If-let chains [4] and if-let guards [5], proposed back in 2018, are still not there. I constantly encounter cases where having them would make the code much shorter and clearer. I guess that depends on what you do, though. My code is heavy on state machines and pattern matching, otherwise this may be less of an issue. 2. Const generics are still very limited (no const trait impls [6], no enums as const generic parameters [7], no float arithmetic in const [8], etc.). I understand those are hard problems, but most are known for 3-5 years by now, and there's no finishing line in sight. Comparing const in Rust to constexpr in modern C++ will leave you disappointed. There's definitely more problems that I hit less frequently, but each compiler error linking me to some stabilization issue with years-long discussion takes away a bit of joy... And yet I heartily recommend trying out Rust if you haven't done so yet! Behind those papercuts hides a very practical and empowering language that gives you functional constructs at high performance and with much lower chance of shooting yourself in the foot as a newbie compared to C++. [1] https://robert.kra.hn/posts/2022-09-09-speeding-up-increment...
[2] https://blogs.windows.com/windows-insider/2023/07/12/announc...
[3] https://security.googleblog.com/2021/04/rust-in-android-plat...
[4] https://github.com/rust-lang/rust/issues/53667
[5] https://github.com/rust-lang/rust/issues/51114
[6] https://github.com/rust-lang/rust/issues/67792
[7] https://github.com/rust-lang/rust/issues/95174
[8] https://github.com/rust-lang/rust/issues/57241 |
In terms of number of commits to the rust-lang/rust repo, activity peaked in late 2019/early 2020, whereas the Mozilla layoffs took place in late 2020. Activity since late 2020 has mostly stayed stable, and remains well above where it was at any point prior to 2018: https://github.com/rust-lang/rust/graphs/contributors
In addition, I know of several former Mozillians who remain employed to work on Rust, including one who heads the Rust team at Amazon.
As far as the number of contributors to each release, it's currently hovering around an all-time average high (although a handful of past releases have anomalously high peaks): https://thanks.rust-lang.org/
The reason that progress appears slower these days is because the low-hanging feature fruit has mostly been plucked, and what's left are the harder problems. Maintenance tasks don't make for very interesting release notes. In addition, as the language matures much of the interesting feature work has shifted from the compiler/stdlib to tooling like Cargo, rust-analyzer, etc. (whose activity might not be reflected in the above graphs).