5 ms·
> Every languages has breaking change at some point. This is where you are quite wrong. Many languages and other software projects take backwards compatibilit
by Blikkentrekker 6y ago
> Every languages has breaking change at some point.
This is where you are quite wrong.
Many languages and other software projects take backwards compatibility quite seriously.
Backwards compatibility is far more interesting to many clientele than the quality of the language itself. — the idea that one would have to rewrite one's codebase again later with all the potential regressions that that might lead to is not an appealing prospect.
Planes would crash if the software that ran airports would have to do this.
- pjmlp 6y agoThey do, but you are yet to find one example in the mainstream languages that never did at least one breaking change.
- tgv 6y agoIs Go mainstream enough? They haven't made any breaking changes so far. Which brings me to another point: not all breaking changes are equal. Sometimes, a change to a syntactic element is needed. But if there's an identical replacement for it, and it can be updated mechanically, there shouldn't be a problem (in theory). Making constructions or the standard library do things (subtly) differently without a fall-back to the original functionality is a much bigger problem: then you have to inspect every occurrence and verify if it still works under all conditions.
- pjmlp 6y agoWait for it, https://blog.golang.org/path-security https://blog.golang.org/path-security
- ainar-g 6y agoThat's a change in a library though, not in the language. And if you want to never have changes in libraries, including for fixing security bugs, you'll end up with stuff like mysql_real_escape_string.
- pjmlp 6y agoI guess you missed to read the comment I replied to. "Making constructions or the standard library do things (subtly) differently without a fall-back to the original functionality is a much bigger problem: then you have to inspect every occurrence and verify if it still works under all conditions. "
- userbinator 6y agoI believe latest GCC/MSVC/Clang will still do C89 (which is still in common use, precisely because of its widespread portability) and even K&R.
- pjmlp 6y agoThat is specific implementations, we are talking about languages, and in regards to C there are definitely a collection of breaking changes across ISO revisions. Even minor ones aren't so minor, if the code happens to rely on them all over the place.
- Blikkentrekker 6y agoPerhaps of minor things that nobody actually used or to fix soundness issues. What Python did is far beyond that; — it knowingly broke what everyone was using with the full knowledge that almost no Python 2 codebase could run under 3 unmodified.