5 ms·
First impressions matter and the fact that so many Rust crates are pre-1.0.0 is hindering Rust adoption in game projects that tend to be multi-year efforts. Gam
by 0xDEF 4y ago
First impressions matter and the fact that so many Rust crates are pre-1.0.0 is hindering Rust adoption in game projects that tend to be multi-year efforts. Game devs need stable APIs to develop against.
- capableweb 4y agoWell, doesn't pre-1.0.0 indicate that the engine is not stable in itself? No reason to provide stable APIs or a post-1.0.0 if you know there is a lot of changes to be done.
- 0xDEF 4y agoThat is true but most of the top Rust crates are still pre-1.0.0. That is not normal for a language that came out in 2015. The async-await story has been in stable since 2019 so they can't use that as an excuse.
- brundolf 4y agoIt's a weird social phenomenon, but many 0.x crates are actually quite stable, some of them are pillars of the ecosystem at this point. I don't know the exact threshold where people are deciding to make the leap to 1.0, but it's different from what you might expect Functionally, a lot of 0.x bumps end up just being x.0 bumps
- Macha 4y agoThis is to me just a post-semver and pre-semver language culture decision. Many of these crates would be on version 7 or whatever had they been developed in the early-mid 2010s, but these days people have higher expectations of complete compatibility between 1.x versions compared to projects in say Python or Ruby when those languages were 7 years old which were happy enough that 1.8 was "compatible enough" with 1.7. There were some earlier hints of this, e.g. Flask was already the defacto Python web framework when it went 1.0 in 2018 after 8 years: https://palletsprojects.com/blog/flask-1-0-released/ https://palletsprojects.com/blog/flask-1-0-released/
- avgcorrection 4y agoWelcome to semver in principle, 0ver in practice.
- 0x457 4y agoSome pre-1.0.0 crates will probably forever stay there because every time a widely adopted crate "breaks" SemVer (not code breaks, just version bump) it leads to huge annoyance - suddenly many crates no longer can interop with each other and now, those crates need to update version in non-compatible manner and that leads to even more breakage. Many have a stable API that hasn't changed in forever and are rock solid, but never reached 1.0.0