Hacker News new | comments | show | ask | jobs | submit login

Other languages rarely have backwards incompatible changes. C or C++ from 20 years ago would still compile perfectly fine with modern compilers.

As far as I know, Go, Java, C#, C++, C and Javascript have never broken backwards compatibility.

Python 3, and Perl 6 did. I don't think anyone uses Perl 6.

The whole point of Perl 6 was to break compatibility, as the implementation of Perl 5 was deemed good enough to keep existing code running.

In the meantime, Perl 5 keeps getting better while mostly maintaining backwards compatibility. So basically we avoided the problem of transferring people from one language version to the next by allowing them to stay with Perl 5. Perl 5 maintains backwards compatible with code written 30 years ago for the first version of Perl. Which is the reason you have to opt-in to strict mode.

The last major change in Perl 5 that caused widespread problems was done to improve security. (v5.18 hash randomization) Mostly what it did was cause already existing bugs in user code to happen more often, making them easier to track down.

Also thanks for pointing out that not enough people use Perl 6, as it is an awesome language that brings in a lot of ideas from other languages and makes them seem as if they have always belonged together.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact