| This is a very good article that doesn't shy away from downsides. Below are my personal not-so-humble opinions. > Rust has a great developer experience. Its type system is very powerful and allows you to encode complex invariants about your system in the type system. Usually this means: we have three people doing type-level magic, no one understands it, and when they inevitable quit no one can understand how this works and why it takes weeks to add a small change. > Related to the previous point, the Rust community is still relatively small. It is hard to find developers with professional Rust experience. This directly correlates with what was written previously: "Many developers enjoy working with Rust. It is the most admired language for the 6th year in a row". Enjoyment often comes from early adopters, and people trying the language for some side projects. I'll admit, however, that Rust seems to have crossed the chasm in the adoption cycle. > Rust has a famously steep learning curve. It is a complex language with many advanced features. Combined with "It is hard to find developers with professional Rust experience" and "mostly training their developers on the job", stay away from it unless you know exactly what you are doing. > more than 2/3 of respondents are confident in contributing to a Rust codebase within two months or less when learning Rust. This is a huge amount of time. However, unclear: is this due to the language, due to being thrust into a new domain/role/job, or both. |
Having said that - yeah, making good apis and abstractions that prevent mistakes takes time and some skill, and pays off gradually proportional to the scale and longevity of the project. And for certain things is not worth it. Being able to make a good judgment if enforcing something at the compile time / runtime / at all is worth it is part of the skill.