Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

How old is Python 3 now? I've always used Python for a "miscellaneous task" language, and still do... and even I find "...because you refuse to upgrade" a bit insulting. If I used it for something serious, even more so.

The way 2.x -> 3.x was handled is/was/will is an absolute disaster. Upgrading simple scripts is a non-issue. Larger projects seem to always be a horrible pain.



I used to think like you, but when i started actually using Python 3 it all was a lot less worse than i've expected it to be from reading Hacker News comments. YMMV, but converting existing code for me usually didn't amount to more than adding parentheses around print statements. The proper support for unicode alone was enough of a reason to upgrade for me.


The bigger issues of upgrading I've run into: * Systems generally still ship with 2.7x * Dependencies that also have not upgrades (e.g. 3.x doesn't exist) or require a complete re-work now * Searching for help on X often results in 2.7x help

I've upgraded projects, but this "you refuse to upgrade" business bothers me. There is a reason people haven't: The way Python handled all of this is horrid.

It's often easier to just move to another language.


Exactly. I understand the attitude (about "refuse to upgrade") mainly because in hindsight I wished I'd have upgraded way sooner :)


Leaving out third-party open-source projects I contribute to, and projects I've been involved with as part of my work (both open and private), and just focusing on code from my own personal Python packages:

By count of lines, 0.04% of Python code I've published exists only to deal with 2 vs. 3 issues. Of that code, 34% consists of importing and applying a decorator from Django that handles setting up either __str__() or __unicode__() on a Django model as appropriate. Tellingly, there are exactly two lines I could find that aren't that decorator and which deal with a str/unicode issue.

And that's in code which doesn't just run on Python 3, it supports 2 and 3 in the same codebase.


Python 3.0 was released on 2008-12-03.

It actually become usable somewhere around 3.2/3.3, released in 2011/2012.


Wow! I hadn't thought about it, but Python 3 is older now (almost 9) than Python 2 (released on 2000-10-16) was when Python 3 came out.


I think about it like:

- 2008-2012: Becoming actually usable.

- 2012-2016: Libraries porting over

- 2016-2020: Applications porting over (more work needs to be done here. See http://portingdb.xyz )


There are a lot of people who refuse to upgrade. I have to use 2.7 at work for pretty much no reason at all, and I'm sure I'm not the only one.


You're not. von Rossum has to maintain Python 2.7 as part of his day job.

Things I still have in Python 2.7:

- Code that runs on low-end shared hosting. There's a Python 3, but it's 3.2, the least-compatible version. No "six", and "u'xyz' isn't allowed.

- ROS, the Robot Operating System. Python 3 support is coming, but it's not really here yet.

I converted over the dedicated servers and some IoT stuff a year ago.

The types stuff probably should have been called Python 4, not Python 3.6. Those are major language changes. The optional-types-that-are-not-checked thing seems a bad idea. I can see having checked types; that allows some important optimizations. When you know something is a machine type, such as an int or float, you don't have to box it. But the feature of type declarations without checking is a foot gun.


> You're not. von Rossum has to maintain Python 2.7 as part of his day job.

*van Rossum

I wouldn't say that's an accurate statement of what Guido does every day :)

(nb: I work at Dropbox, and have worked with Guido at Dropbox.)


That's from Quora.[1] Dropbox apparently has a lot of Python 2.7 code that hasn't been ported.

[1] https://www.quora.com/What-version-of-Python-does-Dropbox-us...


s/van/Van/

From https://gvanrossum.github.io/ :

But when my last name is used alone to refer to me, it is capitalized, for example: "As usual, Van Rossum was right."


has to maintain _code_ _written_ _in_ Python 2.7 as part of his day job.


9 years. Python 3 was first released in 2008.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: