4 ms·
Ruby meets most of those criteria. It also had a more graceful (though not without its pains) Unicode transition, as it allowed you to mark file by file the sta
by abhorrence 6y ago
Ruby meets most of those criteria. It also had a more graceful (though not without its pains) Unicode transition, as it allowed you to mark file by file the status of string literals.
- takeda 6y agoRuby is a comical example, because they did breaking changes in minor version (I think it was 1.8 to 1.9?). The thing I think they did better though, is they didn't give people 10 years to fix their sh*t. You either moved on or you stayed with an unsupported version, and people did move on. For Python 3 the major shifts were in 2015 and 2020. The first year was when PSF announced they won't add any new features to 2.7, and that's when libraries started adding Python 3 support. And 2020 was EOL for Python 2.7. It doesn't matter how much time you give people to migrate, they will always do it at the very last minute.
- p_l 6y agoThe amount of breaking changes was also much smaller than in Py3k. Also, 1.8 marked the creation of complete compliance test suite (as Ruby 1.8 became an ISO Standard), and that test suite has been expanded since then allowing for alternative implementations. Because the test suite is your target, not a hard to interpret 2kLOC spaghetti code C function.
- dragonwriter 6y ago> Ruby is a comical example, because they did breaking changes in minor version (I think it was 1.8 to 1.9?). Ruby was then using a version numbering scheme similar to the old Linux version numbering scheme, where odd minor numbers were development releases and even minor numbers were stable releases. In that scheme a odd minor version is equivalent to a SemVer major release. (Ruby switched to SemVer-ish versions with 2.x)