Musings on python by a fairly long-term user.
Posted Oct 21, 2008 0:19 UTC (Tue) by jamesh
In reply to: Musings on python by a fairly long-term user.
Parent article: Fedora and long term support
Why do you think it is bad for a language to improve over time? Often language improvements let developers do things they couldn't do before or let them express things more concisely (which usually results in fewer bugs). It has managed to do this while maintaining good source level backward compatibility.
Python certainly isn't the only language to have seen improvements in recent years (generics in Java and C# come to mind).
What you seem to be complaining about is libraries and applications that have made use of these features without thought for compatibility with older versions of Python. There are a number of causes for this:
- The code can't be written without the feature.
- Not using the feature would result in significantly more verbose or more error prone code.
- The developer is not aware that the feature isn't available in older versions of Python.
- The developer does not consider compatibility with the old version important.
I can understand you being annoyed at the second two cases, but just as often it is one of the first two. When I was working on version 2.0 of PyGTK, I moved the minimum Python version requirement up from 1.5 to 2.2 because I needed the new class system introduced in that release. It caused some short term pain, but was the right thing to do. Similarly, Django uses the decorator syntax introduced in 2.4 to good effect, which cuts off support for 2.3.
At some point, the benefits of the new syntax just outweigh the downsides of requiring the newer version (where this point occurs depends heavily on what platforms you're targeting of course).
to post comments)