4 ms·
"Mistake"? There was 2to3, a clear timeline, and a migration path. Compatibility forever drags along tech debt the way Microsoft did. On the other extreme, Appl
by 1letterunixname 3y ago
"Mistake"? There was 2to3, a clear timeline, and a migration path. Compatibility forever drags along tech debt the way Microsoft did. On the other extreme, Apple is guilty of breaking things too aggressively without enduring compatibility. Major version incompatibilities with clear advantages is righteous churn, so it's a narrow path that must balance competing concerns.
Perl 5 -> Perl 6 is the oddball without a migration path because they're totally different.
- earthboundkid 3y ago2to3 was a bungle. Python 3 was dead until six came out, which had an actual plan for upgrading that works (forward compatibility) instead of automatic rewriting, which does not work.
- DaiPlusPlus 3y ago> On the other extreme, Apple is guilty of breaking things too aggressively without enduring compatibility. Apple views that as a good thing.
- 1letterunixname 3y agoThat's Apple's arrogance.
- akadruid1 3y agoThe mistake was the way it was handled. I'm not sure Python trod that narrow path well - not all the breaking changes in Python3 were clear advantages, especially in the pre-3.5 days, the migration path was harder than necessary as a result, and the timeline was clearly too aggressive with hindsight. Python got very lucky with their strong community support. Millions of hours were invested into upgrading Python2 code to Python3, essentially on trust in the early years (2009-2013). Without the strong community support Python could have gone the way PHP did in the 5 -> 7 -> 8 era It's interesting to compare these with languages that never did the breaking change to clear out their tech debt. Back in the day, Javascript was nearly universally hated (The Good Parts was very controversial!), and it nearly splintered into multiple languages, but managed to consolidate under ES5 and then explode in popularity without ever having a Python2-3 moment.