Rust is Not Production Ready (Yet)

A bit of a bold title, I know, but I think I can make a good case. Weather Rust is production ready depends on your use case. The issues holding the Rust language from being production ready for all use cases are as follows: compile times, lack of a stable ABI, the lack of a specification, and the rate of change in the language. If you are working on a sizable project, compile times really start to become a drag on productivity. You can mitigate them by breaking up your crate and reducing your use of procedural macros but these are just band-aids. The lack of a stable ABI is only a problem in certain use cases but it's alloying I can't use Rust shared objects without exposing a C API. Having a stable ABI would also mean we could package common Rust libraries like we do C libraries; which would also help with the binary size problem. The lack of a specification and the rate of change in the language means it's very hard for other implementations of Rust to exist; which help witch help to mature the ecosystem. I think all of these issue can and will be solved and I don't think the rate of change in Rust right now is bad. But, for Rust to really be production ready they will have to address. Rust just need more time to mature.

Rust's crate ecosystem is also immature. While we do have many solid crates; there are still a lot of holes. We still don't really have a de facto web framework, we don't really have any GUI libraries that are “there yet” or don't come with serous caveats (like linking to C++), and the entire networking stack is in flux. Until Rust stabilizes more the crates ecosystem will be in constant flux. The addition of futures and async/await, while welcome, mean that all of the networking libraries need to be reworked. And there are more of these changes to come. Non of this is to say futures are a bad thing. I think having a solid low level futures system will be great. But I can understand why people hesitant to use Rust yet.

Rust is great, and I like the new features but the language needs to calm down and stabilize more before it's really production ready.