4 ms·
Since rust does a "crater run" with each release, where it builds (all?) many known crates, it has stats with how many break. I vaguely remember a comment by St
by losvedir 5y ago
Since rust does a "crater run" with each release, where it builds (all?) many known crates, it has stats with how many break. I vaguely remember a comment by Steve Klabnik here in HN one time (which I sadly cannot find now) that said over the course of a year, something like 95% of unupdated crates compile still compile on the newest version.
I think that's pretty good, especially for such a young language with some ongoing significant changes. And I think that's stable enough for a production environment where there's an expectation of minimal ongoing maintenance. It means you rarely have to touch your code through updates, but occasionally will need to tweak something.
But it does add up, and something 5 years old is decently likely to not compile. I personally ran into something like that digging up an old project, and the problem is it's hard to incrementally fix it, since at that point all the dependencies are quite old, too. And there's a complex relationship between the dependencies snapshotted at that moment, and so probably you can just update them all to the very newest version and they'll be compatible, but somewhere in the middle is hard.
- dilap 5y agojust checked: the first Go code i ever wrote, over 8 years ago, still compiles flawlessly. obviously the world is filled with trade-offs, but my oh my is it nice to use a language that doesn't break old code.
- Uther 5y agoI'm not sure you can compare the code base of you first program in Go, that is probably small and straightforward, with something as huge and complex as Firefox.
- dilap 5y agoFair point! (But also I will say the relative smallness of my projects in other languages has proved no defense against code breakage w/ time :-)