Musings on python by a fairly long-term user.
Posted Oct 18, 2008 17:14 UTC (Sat) by maney
In reply to: Fedora and long term support
Parent article: Fedora and long term support
You need to understand that I love Python - it's been my language of first choice for most things (viz., applications-level work) for years now. I mean, heck, Python saved my from PHP! <wink>
But the way the language changes - no, it's not so much that it changes that's a problem. At the language and base library level they really do a pretty good job of minimizing the necessity of writing backwards incompatible code. It's the way nearly everyone else doing Python library, framework, and application development seems unable to resist using every new feature the moment it becomes available, with little or no apparent consideration as to whether the benefit, as opposed to the shinyness, of doing so really should outweigh consideration for backwards compatibility.
The Django web framework is a blessed exception to this tendency, but alas it's an all too rare one. The typical Python project relies (at least in its actively developed trunk) on features available only in the very latest release of the langauge, even when they're merely syntactic sugar for something that's been easy enough to do for years; the typical Python project also lasts only a few years, if that, before becoming abandonware. Of course a lot of opensource projects go that way no matter the implementation language...
So anyway, before I wander further off track, I don't think a two year old version of a langauge is obsolete by any sane criteria. The language developers seem to agree - not only 2.4 but even 2.3 has had a minor version release this year. I think this churn is a real issue - it's not an original thought, but consider how beneficial the relative stagnation of the Perl language seems to have been for its adoption. A language really shouldn't be a source of frequent new shinyness - it's role is to be the platform on which you build stuff, and stability in that base platform is a real help to application developers, at least ones who need to deploy to more than a handful of boxes they keep in a froth of constant updates. Consider again Django - it's changed amazingly in the three years between the initial public release and its long overdue 1.0 release, but I believe it still works with Python 2.3, as was originally targeted as a goal. I know for a fact it runs under 2.4 just fine, though I can't speak to the vast majority of the third-party apps out there...
to post comments)