Hacker News new | past | comments | ask | show | jobs | submit login

Python brought this on itself by having no respect for compatibility between versions.

There's really no such thing as the Python language, only "Python 2.2", "Python 2.4", "Python 3". If you want to run Python scripts, you need to have three or four different Python runtimes installed, and that's asking a lot of both the distros and of users who need to keep everything straight, and probably even hack the #! at the beginning of scripts so that they work correctly.




Bullshit. We (python-core) are obsessed with backwards compatibility. Adding new features that aren't in old version is the source of this problem.

Python 3 is by far, the biggest intentional deviation from the "don't break existing scripts" mantra that's been in place for years.


Why didn't the official bittorrent client run on Red Hat Linux (w/o downgrading your Python) for at least three years?

Why was NLTK stuck on Python 2.4 for years? I might use Python to use NLTK, but why do I have to choose an old Python to get it to work... And what if I want to use it w/ software that needs Python 2.6?


When you add features as useful as set() datatypes, if-else expressions, generators, and comprehensions, people are going to use them. Python 2.2 code nearly always runs without modification on Python 2.3+ (the only exception would be collisions between variable names and new keywords). But someone targeting Python 2.6 has a huge hassle when deploying to older versions. This means that Python is actually adding useful new functionality; that is, the incompatibility is a symptom of a good thing.


Mercurial runs unchanged on 2.4 to 2.7, and it's not a trivial little piece of software.

Pretty much the only thing you need to do to make your Python code run on 2.x+ is "don't use features released after 2.x".


It depends on what you mean by running unchanged. Numpy and scipy also support 2.4 to 2.7 (and soon to 3.1) from the same codebase. But everytime a new version of python is out, we need to make some changes, albeit relatively minors. So it is not perfect either.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: