Rust 1.37.0
Rust has evolved from something safe and <i>simple</i> (once you grasp the different type of pointers) to something way less accessible.<p>Rust source code is now full of annotations, and very hard to read and maintain.<p>Traits have evolved from a nice feature to something overused everywhere.<p>Basic crates use so many generics, impl Trait and abstractions over abstractions over abstractions that it's really difficult to follow what concrete types you need to satisfy these.<p>When one of the oldest and still unanswered issue in the Hyper HTTP library is "how do I read the body?", there is a conceptual problem.<p>And things got even more complicated with Futures. async/await don't solve much, as besides textbook examples, these are unusable without deep knowledge of how everything works internally. Pin/Unpin makes things even more complicated.<p>I'm an early Rust adopter and advocate. However, I wouldn't consider it any longer for new projects.<p>My productivity in Rust has become very low compared to other languages such as Go or even C, that let me easily express what I want to do.<p>With Rust, 90% of my time is spent trying to understand how to express what I want to do. Such as what types I have, what 3rd party crates expect and how to convert them.