12 ms·
I doubt the lazy people who haven't moved to python3 will ever do a decent port of python 2. Python3 has been out for over six years now, with warning before t
by illumen 12y ago
I doubt the lazy people who haven't moved to python3 will ever do a decent port of python 2. Python3 has been out for over six years now, with warning before that.
I'd much rather bet on the python developers who are shipping software. All major python libraries have been ported to python 3, many of them for years. There's 4799 packages registered on pypi as supporting python 3.
Python is becoming less popular? The author provided no evidence at all. Downloads of python3 from python.org are higher than python 2, and have been for a while now. Job websites show python having more postings than 2 years ago.
Not much has changed in python 3? What rubbish. You just have to look at the thousands of commits, and change lists. Python 3.4 has generic functions to do single dispatch matching on type. You can statically type check python now (see pysonar2, pylint, and pycharm for example). Not only as pypy made a major breakthrough with performant STM based concurrency(no threads), but threading has been improved in python 3 too. There is the new asyncio library for really elegant async, which go along with great generator improvements(yield from). We have CFFI for simpler FFI. Lambdas are kept simple for readability, as functions are preferred.
I'm just going to stop here... many of his statements are just insane. Like this one: "You might as well ask someone to port their entire codebase to Ruby". Um, yeah... porting a codebase to python 3 from python 2 would take more time than porting it to an entire other language. What complete nonsense!
Edit: the post isn't from Microsoft, so fixing it so it isn't misleading. There was a link to a Microsoft person on the top right of the page, which seemed to indicate he was the author. Instead it was just someone promoting the page. Oops/sorry!
- jhh 12y agoThis just seems like an ad hominem attack. Just because the author works at Microsoft does not mean that he is speaking for Microsoft or talking on their behalf.
- illumen 12y agoIt's not just an ad hominem attack. I counter a number of his claims. The author provides NO evidence for any of the rubbish he's talking about.
- the_mitsuhiko 12y agoThere are barely any users of Python 3. New versions of Python 3 are mostly only picked up by other Python 3 users. Python 2 is growing faster in downloads than Python 3 is by PyPI numbers. That is a problem.
- illumen 12y agoDo you have a link for these numbers?
- the_mitsuhiko 12y agoI tweeted about this a while ago, I don't have the numbers at hand. Unfortunately to get those numbers you need to nudge the pypi maintainer as the data dump is too large to keep in a database without wasting money. As such if I would want to run the report again I would need to import multi gigabytes of logs again which takes time.
- kaeawc 12y agoI'll take your word for it then ^_^
- illumen 12y agoCurrently python 3 packages ported are at about 10.9% according to pypi. This isn't including separate source downloads, so I guess the number would be higher by a few percentage points. There was a post by Alex Gaynor in January [0] about downloads for python 3 being at 2.4%. But that was before python 3.4 came out, and before some major libraries were finally ported like Twisted. Twisted not being ported was one of the main blockers for python 3 in the last Ubuntu release [1]. Once more distros improve their python 3 support, things will get exponentially better for python 3. Continuous integration servers inflate numbers because they re-download things, and there is the CDN which makes all these numbers highly inaccurate. Lots of things have been ported since January, like pycurl, pyOpenSSL, bugzilla [2], etc. Because of the big pushes by Debian, Ubuntu, Fedora, Mozilla, and Gnome [3] communities amongst many others. Things have improved greatly in a few months. Distros, and apps like Sublime Text 3 moving to python 3, along with some of the major missing pieces will help uptake significantly. Almost all packages in Fedora come with python 3 packages now. But the key to increasing python 3 adoption is Apple, and python 3 on OS X. Many of the python packages that come with OS X are now ported to python 3 (Twisted, cups, pyobjc, etc) ... but who knows what they have planned? I guess we'll see June-ish. [0] http://alexgaynor.net/2014/jan/03/pypi-download-statistics/ http://alexgaynor.net/2014/jan/03/pypi-download-statistics/ [1] https://wiki.ubuntu.com/Python/FoundationsTPythonVersions https://wiki.ubuntu.com/Python/FoundationsTPythonVersions [2] https://fedorahosted.org/python-bugzilla/ https://fedorahosted.org/python-bugzilla/ [3] https://wiki.gnome.org/action/show//Initiatives/GnomeGoals/Python3Porting?action=show&redirect=GnomeGoals%2FPython3Porting https://wiki.gnome.org/action/show//Initiatives/GnomeGoals/P...
- jmspring 12y agoPoster mentions msft dropping support for ironpython (there were other languages too - ironruby, for instance) -- where "drop support" was to open source them. Just last year, msft gave $100k to the ipython project - http://ipython.org/microsoft-donation-2013.html http://ipython.org/microsoft-donation-2013.html It feels like the original commentor has a beef against msft to read company action into what is an individuals blog entry...
- deleted 12y ago[deleted]
- rbanffy 12y agoIf they open source and cease to support, I doubt anyone in the Microsoft ecosystem would pick it up.
- postfuturist 12y agoI'm the author. I've never worked at Microsoft (where did you get that?). I'm a Linux guy. The "lazy people" you refer to is 98% of the Python community. Python 3 didn't "gain" static type checking. You can (and I do) run pylint against Python 2 code which is just static analysis, not full type checking. The situation here has not changed between Python 2 and 3. Python is glue code. You write a small piece of Python to tie together external libraries. Moving a smallish piece of Python code from Python 2 to Python 3 often means porting several 3rd party libraries. If you were to move to Ruby, all you'd need to rewrite is your own code, as there are likely already 3rd party libraries which need no porting.
- higherpurpose 12y agoIn every Python book I read they were recommending me to use Python 2.7 instead of 3.0. Shouldn't it be the role of educators to promote the latest version out there and work with it, so that by the time the new students get into a working environment they are already on the same page with what is required?
- pdonis 12y ago> Python 2.7 instead of 3.0. Maybe you need to read more up to date books. The latest release is Python 3.4, and even most Linux distros are at least at Python 3.2.
- rdtsc 12y ago> and even most Linux distros are at least at Python 3.2 Why are you spreading lies? You are hurting your cause (advocating Python 3). Let's take a look at latest Ubuntu: $ cat /etc/issue Ubuntu 14.04 LTS \n \l $ python --version Python 2.7.6 How about the popular server distro CentOS 6? $ cat /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m $ python --version Python 2.6.6 What exactly are these "most" Linux distros everyone is using that I haven't heard of?
- chc 12y ago
- blablabla123 12y agoReminds me of Ruby, IMHO the version jump from 1.8.7 to 1.9.* killed it. Different scoping rules made porting a non-trivial task, many packages have never been ported to 1.9 and one of the early 1.9.* major releases was extremely buggy... Nowadays hardly anybody seems to use Ruby for new projects...
- akerl_ 12y agoI can't tell if this is a poor attempt at sarcasm, but if not: Do you have evidence to back up the claim that Ruby isn't being used for new projects? Even assuming HN is a skewed environment, I see enough Ruby projects popping up here to make that seem unlikely.
- blablabla123 12y agoYes, not sure how much evidence you need. I mean just look at the Tiobe Index: http://www.tiobe.com/content/paperinfo/tpci/images/history_Ruby.png http://www.tiobe.com/content/paperinfo/tpci/images/history_R... 1.9 was initially released 2007, 1.9.1 was released in 2009... Not sure if you remember it, but one of the early 1.9 releases was reeeeally buggy.
- Argorak 12y agoQuite on the contrary. 1.9-compat was very quickly expected of all libs and all important core libs run better on >1.9. 1.9 was the cleanup release after the language became popular and very necessary. Also, everything before 1.9.2 was considered a preview release.
- dragonwriter 12y ago> Quite on the contrary. 1.9-compat was very quickly expected of all libs and all important core libs run better on >1.9. That's quite some historical revisionism -- there was quite a while when quite a lot of libraries weren't running on 1.9. It wasn't as bad as with Python, probably because Ruby wasn't popular for as long as Python was, so there weren't as many big libraries that were hard to update. But it was a huge deal. > 1.9 was the cleanup release after the language became popular and very necessary. It was necessary for much the same kind of reasons (and, sometimes, the exact same specific reasons) as Python 3 -- particularly, the string encoding problem.
- kull 12y agoNot sure how accurate is this source but it shows: PHP 82.0% ASP.NET 17.5% Java 2.7% ColdFusion0.8% Perl 0.6% Ruby 0.5% Python 0.2% JavaScript 0.1% http://w3techs.com/technologies/overview/programming_language/all http://w3techs.com/technologies/overview/programming_languag...
- camus2 12y agoI really doubt there is more ASP.NET code deployed than Java,i'm pretty they are at least equivalent. And Coldfusion over Python and Ruby? i dont think so.
- zeitg3ist 12y agoNot very accurate. PHP is basically the only language which advertises itself both in file extensions (less and less common as people started using rewrites) and HTTP headers (unless disabled of course).
- eric_bullington 12y agoReading the methodology behind that survey, I'm very skeptical. Basically, the reason that PHP and ASP score so high is that they're the only ones that explicitly advertise their presence via file extensions.
- enscr 12y agoMost of the article (on medium) is an unsubstantiated rant. Granted that the move from 2 to 3 has been much slower than what you see for major revisions but it was a _big_ overhaul. In hindsight, maybe the developers could have done something different. But using phrases like "Python 3 is killing Python" & "you might as well port to ruby" is absolutely false & misleading.
- claystu 12y agoIt killed it for me. (So not absolutely misleading)
- enscr 12y agoI'm afraid that still won't kill Python.
- toma7 12y agoThe OP did not say it would "kill" Python, just that it would cripple it. Personally with bloomberg bringing out a Python2.7 financial module first, no 3.x support, the entire financial world is now also poised to stay on 2.7. That's a classic example: bloomberg only published this Python binding 6 months ago! no Python 3.0 for them.
- enscr 12y agoI was referring to the title : "Python 3 is killing Python" Anyway, it's a well known fact that 2to3 switch has tremendous inertia. Space, Medical, Finance are few of the applications where often old is gold (tried & trusted). What bloomberg did was logical, no surprise there. That decision adds little value to how Python 3 is impacting the growth of Python.
- toma7 12y agoIt is tremendously detrimental when a deprecated technology has all the inertia, because it is a dead end thanks to the Python bosses refusing to move it forward. Every new package for 2.7 (and no this is not old gold - this is a brand new library for access to Bloomberg's massive and uber-valuable database), every new package that invites more people into a dead end, encourages those people to look much wider (beyond Python) when needing to upgrade. Python 3 may be growing in absolute terms, but in relative terms it's a absolute dog compared with its competitors, including Python 2. Python 3 in its current form is doing everybody a huge disservice.
- rdtsc 12y ago> Not much has changed in python 3? What rubbish. You just have to look at the thousands of commits, and change lists. Sorry, I'll have to disagree with your disagreement. Thousands of commits doesn't mean it is worth breaking backwards compatibility. Unicode support? Yeah it is nice. But it worked fine for me before. Print is a function. Again, pretty nice, not nice enough to break backwards compatibility. > Python 3.4 has generic functions to do single dispatch matching on type. Ok. Never really needed that in Python. So again not worth breaking backwards compatibility. > There is the new asyncio library for really elegant async, That is a bad idea. Promises and futures are not a very good concurrency construct. Light threads, processes and message passing are better. Twisted has been around for ages, and even though it is used here and there it hasn't exactly taken the world by storm yet. So I certainly don't see it as a positive, rather it is a negative. I would rather they adopted greenlet and supported gevent better or integrated PyPy's STM > We have CFFI for simpler FFI. Ok, I just used CFFI in Python 2 last week, worked great. > Lambdas are kept simple for readability, as functions are preferred. Heavy lambda usage is not that good of a practice in Python. And Python 2 has lambdas as well. It use them sparingly. > I'm just going to stop here.. Oh no, please don't stop, because you haven't convinced many people Python 3 is better. > You can statically type check python now (see pysonar2, pylint, and pycharm for example) You know what has better static type checking? Go. I am sitting down looking at static type checking and fixing code for backward compatibility, I will also be evaluating other languages and platforms. Python 3 is not bad. But is is not that much better than Python 2. Sorry. A lot of that is not Python 3's fault as much as a testament to how good Python 2 already was. I think Python 3 should have offered a lot more than unicode and print as a function. A list of possible improvements: * A JIT compiler * An STM module * Better concurrency (removed GIL) * Maybe integrated requests or flask or some other modern web tools and libraries
- orf 12y agoRidiculous. Python 2 has many many warts and the right thing to do was to fix them. Why the heck is print a statement? Why do we have urllib and urllib2? Why are generators not that useful? >> That is a bad idea. Promises and futures are not a very good concurrency construct. Light threads, processes and message passing are better. Not so much in Python I'm afraid. The new asyncio module is worth the switch by itself I find, while Twisted is pretty good it can be very verbose and suffers from a number of issues. You say that it's not worth breaking backwards compatibility for genuine warts in the language and seem to think it's only worth progressing the language if its by implementing huge changes like adding a JIT or removing the GIL (why you would think of bundling requests or flask with Python is beyond me). Python 3 may not have those big blockbuster features but its a nicer language with fewer warts (from __future__ import division? please). I gave Python 3.4 a try while porting a Twisted application to asyncio and I was very surprised. After using it in a couple of Django projects I have yet to come across any packaging issues, and I use the awesome 'six' library so my code runs on 2 and 3 without modification.
- shaneofalltrad 12y ago"I doubt the lazy people who haven't moved to python3 will ever do a decent port of python 2." That is a ridiculous statement. So everything like most of the *nix OS and a dozen other super popular products that require python 2.6 or 2.7 are lazy too?
- _pmf_ 12y ago> I doubt the lazy people who haven't moved to python3 will ever do a decent port of python 2. These lazy people probably have a day job where they have to do something productive instead of wanking around with "fun" language features.