3 ms·
> Just get the newer compiler to build the newer code. I think part of the problem is that this is backwards to how people coming from other traditional langua
by Karellen 3y ago
> Just get the newer compiler to build the newer code.
I think part of the problem is that this is backwards to how people coming from other traditional languages (like C, or C++) think.
With those, you deliberately choose your target compiler in a way to maximise who can build your software. Telling all your users "just get the newer compiler" is rude. If you can reasonably target a 20-year old version of the compiler, so that users on systems who can't upgrade their compiler for reasons you have no control over can still build and use your software, then that's a trade-off worth considering.
Note that you don't always have to choose that, but you should consider it. And when you do decide to move from, say, C89 to C99 (or - gasp - C11), that is a carefully considered decision. It's not just ooh, shiny.
You don't always know who all your users are, or why they may not have the same flexibility as you. But if you want your software to be installed on 10 billion devices, that's the sort of thing you have to consider.
https://daniel.haxx.se/blog/2022/11/17/considering-c99-for-curl/ https://daniel.haxx.se/blog/2022/11/17/considering-c99-for-c...
https://curl.se/docs/faq.html#How_many_are_using_curl https://curl.se/docs/faq.html#How_many_are_using_curl
- gdprrrr 3y agoThat's just not how Software is done in this century, like it or not. Please update your software regularly.
- stusmall 3y agoI feel that. I've worked in those environments. A previous job we had a C89 code base that very deliberately could only build with certain older compilers. It was made to be able to target ~20 year old OSes and embedded environments. We had to be extremely careful about new features used, and if we tried to update the tool chain. > Telling all your users "just get the newer compiler" is rude. With Rust you don't have the same things holding you back. Features and targets are extremely well supported and for a long time. This compatibility is a die hard sacred tenant. This a good thing! It should be celebrated and shouted from every roof top! It isn't rude that the level of engineering allows this to be a low drama affair. Without the use of RUSTC_BOOTSTRAP it is very rare to have something holding you back on an older, stable compiler. I can think of one major bump of supported OSes a while back and that's it. You can stay on older versions of the compiler if you really want to, but don't expect to be able to build new code that uses new features.