4 ms·
What exactly don't you like about the way they did the versioning? Do you prefer what python did? Python 2 vs. Python 3 is a complete and utter mess. Perl, whi
by nickysielicki 11y ago
What exactly don't you like about the way they did the versioning?
Do you prefer what python did? Python 2 vs. Python 3 is a complete and utter mess. Perl, which exists mostly in the same use case, shouldn't have any of those problems.
- cname 11y ago> Python 2 vs. Python 3 is a complete and utter mess. Besides being off topic and adding no value to this thread, for those of us who made the transition to Python 3 with minimal fuss, this is just pure hyperbole. I really wish people would quit grinding their Python 2/3 axes.
- nickysielicki 11y agoAre you joking? Off topic? He made a comment about perl doing a poor version transition, and perl was largely replaced by python which also did a language transition. It makes complete sense to bring up python2 -> python3. I also made the transition to `#!/usr/bin/env python3` fairly smoothly. That doesn't mean that the majority of the community did. Python3 came out in 2008, next week will be seven years of it being out. Yet `#!/usr/bin/env python` still defaults to python2[1]. That's not quite the expected 5 years of transition that they hoped for. At year 5 it looked like this [2]. [1]: http://legacy.python.org/dev/peps/pep-0394/ http://legacy.python.org/dev/peps/pep-0394/ [2]: https://web.archive.org/web/20131204094939/http://python3wos.appspot.com/ https://web.archive.org/web/20131204094939/http://python3wos...
- kbenson 11y agoOn the short list of places where even those tired of hearing about Python migration problems have to admit the discussion is relevant, I have to imagine the Perl 5 to Perl 6 discussion qualifies.
- hahainternet 11y agoI've no idea why you were downvoted. Python is indeed going through an almost identical transition, except that 3 does not fix as much as 6.
- Scarblac 11y agoPython 3 fixes a few things, mostly in Unicode handling. What I've seen of Perl 6 looks like a new language. The main "problem" of the Python transition is the fact that Python 2.7 is so good.
- hahainternet 11y agoPerl6 is absolutely a new language. Perl 5 had so many structural problems it was deemed unlikely they'd be solved. Since then however lots of hard work has been done on every side. The biggest problem about Python is not the superiority of 2.7, it's the hubris of the Python community to think that 2.7 is actually that great. I would send any Python programmer on a course of writing Golang and Perl 6 and I would put money on the line they would come out a better programmer. That's what I feel happened to me to some extent.
- Scarblac 11y agoI mean good compared to Python 3 -- for years, all I heard was "what is so much better in Python 3 that I should switch?". Comparing against other languages usually isn't all that relevant as no company is going to move over all their code. Since a year or so, everybody is moving to Python 3. And for the last years, we've had the bliss of a stable programming language. So much in open source constantly brings out new versions that you have to keep your stuff compatible with all the time.
- jonesb6 11y agoYour last part is spot on for me. Writing Golang indeed made me a better Python programmer.
- 11y ago
- dheera 11y agopython will always point to version 2 because version 2 syntax and version 3 syntax are mutually incompatible; one is not a subset of the other. Making python suddenly point to version 3 would break a huge number of scripts already out there, including numerous setup and configure scripts.
- takeda 11y agoI have yet to write a code where I was unable to make it work on both py2 and py3.
- kbenson 11y agoI remember Python 1 and Python 2 having this problem, it was done before, so it's not impossible it would be done again.
- dheera 11y agoMaybe. But those were the early stages of the language. Python 2 has huge amounts of industrial-scale deployment that many people would prefer not to break. There are also numerous systems in deployment that need to have 2 and 3 running simultaneously on the same machine.
- kbenson 11y ago> There are also numerous systems in deployment that need to have 2 and 3 running simultaneously on the same machine. There were numerous systems that needed both 1 and 2 in the Redhat ecosystem. I agree it likely won't happen again, but mostly because the Linux distros have likely learned their lesson. It's the package managers and Linux distros with included system functionality written in some version of Python which have the ultimate say, and there are much better solutions for the problem now than when Python 2 came out. That said, it's possible some distro will make /usr/bin/python be Python 3 and /usr/bin/python2 be Python 2, if they haven't already. Weirder stuff happens all the time.
- 11y ago
- deleted 11y ago[deleted]
- jlarocco 11y agoAs a former Perl user, and a current Python user (though less lately), I very much prefer the Python transition. I might be an exception, but I've had very few issues with the Python2 to Python3 transition. Python3 made the language more consistent, made a lot of little things simpler and easier, and added several features that makes using it generally more straightforward than Python2. It's essentially the same language, with warts removed. Library support lagged a bit, so on the odd occasion I need an old library, I just use Python2. Both versions can coexist on the same system, so it's not a big deal. More relevant, though, Python3 was announced and then released when they said it would be. Some parts of the library community dragged their feet with support, and in a lot of cases they were replaced with even better libraries. The important thing is that the language was out and people could use it, and everybody's on the same page that Python3 is the future of Python. The Perl transition has been a total mess in comparison. Perl6 is not just removing the warts from Perl5, it's an entirely different language. It's been "right around the corner" for almost 15 years now, and as far as I can tell, still isn't released. And good luck porting 25k CPAN modules to a completely new language. To put it another way, in 15 years Perl6 has gone from announced to still not existing, while in 8 years Python3 was announced, released, and has had vast parts of its library ecosystem have been ported. Seems hard to believe anybody would say the Perl6 transition has gone better.
- hahainternet 11y ago> As a former Perl user, and a current Python user (though less lately), I very much prefer the Python transition. So should anyone, as it changes only minimal sections of the language. It may remove warts, but in my eyes it re-adds many. I never had typing issues with dictionary keys being strings vs ints in Python 2. I do however have to suffer from that in Python 3. The fact is, Python 3 barely fixes /any/ of the fundamental problems with Python 2. After writing a little Go and coming back to Python i couldn't believe how little static checking there is, for example. Another example for you, I have functions which take named parameters, but one of those named parameters I need to be a list. If it's not a list, python's 'for x in y' will split the string and provide a character based loop. If it is a loop it will split based on loop elements. This means that I have to have a bunch of isinstance checks wrapped around things and provides no safety whatsoever as I would have to exclude all types other than arrays to even begin to have any rigor. I don't think Python 2 or 3 is a bad language, but 3 fixed only some of the most superficial issues with 2 and still the transition is ongoing after 8 years. You're glossing over how much of a mess it's been and how much it will continue to be.