Why Rust is not a mature programming language
In spite of its currently growing adoption, my prediction is that Rust will be replaced in a foreseeable future.<p>Rust brought a novel idea to the landscape of programming languages. The borrow checker is a great invention, and a great contribution to making applications more secure.<p>The language itself is way too complicated. The learning curve is steep. Improvements are made (e.g. lifetime elision) but they don&#x27;t flatten the curve.<p>Macros are very hard to debug and understand. Which is even more of an issue when they are used by dependencies and something goes wrong. Error messages don&#x27;t help. Macros are powerful but can hide too much magic. Plus, they are a language of their own.<p>&quot;Why doesn&#x27;t have this structure any methods?&quot; &quot;Oh, they are hidden in traits, provided by other crates, themselves leveraging other traits from other crates&quot;. &quot;Still, it doesn&#x27;t compile. Why?&quot; &quot;Oh, because of that generic that requires traits from yet another crate that are only available when some Cargo features has been enabled&quot;. Once again, this is difficult to follow and debug.<p>Zero-cost abstractions are great, but in Rust, they are overused. This makes the language less accessible, but also constantly causes dependency issues due to incompatible versions.<p>Rust is powerful but it is not optimized for developer happiness. Fighting the compiler brings anger, not joy. Sure, the compiler may have good reasons to complain. But as a developer, I&#x27;m happier and more productive when code immediately runs, even if that means having to fix bugs later. This is from a happiness view, not from a security perspective. But eventually, happiness turns into productivity.<p>It&#x27;s too late to fix this. But now that Rust demonstrated that memory safety and speed were not incompatible, future system languages will feel obligated to provide the same properties, maybe by using mechanisms similar to Rust.<p>So, my prediction is that Rust will slowly be replaced by new safe languages that will be more accessible, more productive, more stable, and bring novel ideas of their own. But Rust will have made history no matter what.