3 ms·
*I can feel the pain of devs that have to deal with Python 2 and 3. To me the beginning of the ugly Python 3.0 announcement was too off putting, it stopped my i
by frik 9y ago
*I can feel the pain of devs that have to deal with Python 2 and 3. To me the beginning of the ugly Python 3.0 announcement was too off putting, it stopped my interest in Python and I went back to PHP, Java and later also NodeJS, Go.
In comparison PHP and Java always successfully transitioned to new versions, keeping it backward-compatible and do baby steps instead of a big incompatible cut. PHP canceled the ill fated PHP6 fork, and went from PHP 5.2 then up to 5.6 and then jumped to PHP7 (as several PHP6 books got published about an alpha version).
Language with a rocky transition (mostly due to incompatible syntax) were C#/dotNet 1->2, Perl 5 -> 6, Lua 5.1 -> 5.3, Ruby 1 -> 2, Swift 1 -> 2 -> 3, Rust 0.x -> 1, and more
- icebraining 9y agoPHP7 has a long list of backward incompatible changes: http://php.net/manual/en/migration70.incompatible.php http://php.net/manual/en/migration70.incompatible.php plus http://php.net/manual/en/migration71.incompatible.php http://php.net/manual/en/migration71.incompatible.php
- frik 9y agoAnd? So did PHP 5.x. So do all languages. That's what I mentioned with "baby steps". You can run PHP3, PHP4 and PHP5 projects with little or no change at all, code dating back to 1990s with PHP7. If you cared a bit and adjusted your code over the years, most changes are announced many versions ago and got deprecated. E.g the original MySQL API had been deprecated for a decade or so years, and only got removed with v7, yet it's easy to update the code to the newer APIs, as it was possible since early 2000s, when the newer API got introduced and stayed unchanged since then. And you could use a shim too. PHP and Java (and several other languages) have really kept an eye on backwards compatibility, you cannot deny that or paint it in another light.
- icebraining 9y agoI was responding to "keeping it backward-compatible", which it did not do. In any case, Python 3 is not exactly a brand new language, many codebases can be adjusted to run on both engines without much effort. I don't think the difference is as stark as you've painted it.
- speedplane 9y ago> without much effort It's an enormous amount of effort. It's been a decade and the end is nowhere in site. Python 3 is a tragedy.
- collinmanderson 9y agoOn the other hand, there’s still a lot of code that needs porting. See http://portingdb.xyz http://portingdb.xyz