Is Python moving too fast? (was Re: Is python commercializationazing? ...)
Alex> When I told people that the 1.5.2 release I was using, the latest Alex> one, had been 100% stable for over a year, I saw lights of wistful Alex> desire lighting in their eyes (at least as soon as they understood Alex> that here, for once, 'stable' did NOT mean 'dead':-).... Oh well, Alex> it was nice while it lasted; now, the perception of Python will Alex> switch back from "magically stable and sound beyond ordinary Alex> mortals' parameters" to "quite ready to change core language for Alex> the sake of a marginal and debatable minor gain", i.e., "just Alex> another neat thing off the net". I began using Python in early 1994, probably around version 1.0.1. In the intervening 6+ years, Python has had what I consider to be five significant releases: 1.1 (10/11/94), 1.2 (4/10/95), 1.3 (10/8/95), 1.4 (10/25/96) and 1.5 (12/31/97). (1.5.1 was released 4/13/98 and 1.5.2 was released 4/13/99). So, while it's been a bit over a year since 1.5.2 was released, Python really hasn't changed much in over 2.5 years. Guido and his core team have been very good at maintaining backward compatibility while improving language features and performance and keeping the language accessible to new users. We are now in the midst of several significant changes to the Python development environment. From my perspective as a friendly outsider, here's what I see: 1. For the first time in it's 10+ year history, the language actually has a team of programmers led by Guido whose full-time job is to work on the language. To the best of my knowledge, Guido's work at CNRI and CWI focused on other stuff, to which Python was applied as one of the tools. The same observation can be made about the rest of the core PythonLabs team: Tim, Barry, Fred & Jeremy. All had other duties at their previous positions. Python was an important tool in what they did, but it wasn't what they got measured by in yearly performance reviews. 2. For the first time in its history, a secondary development team has surfaced in a highly visible and productive way, thanks to the migration to the SourceForge CVS repository. Many of those people have been adding new ideas and code to the language all along, but the channel between their ideas and the core distribution was a very narrow one. In the past, only the people at CNRI (and before that, CWI) could make direct changes to the source code repository. In fact, I believe Guido used to be the sole filter of every new contribution to the tree. Everything had to pass his eyeballs at some point. That was a natural rate limiter on the pace of change, but I believe it probably also filtered out some very good ideas. While the SourceForge tools aren't perfect, their patch manager and bug tracking system, coupled with the externally accessible CVS repository, make it much easier for people to submit changes and for developers to manage those changes. At the moment, browsing the patch manager with all options set to "any" shows 22 patches, submitted by 11 different people, which have been assigned to 9 different people (there is a lot of overlap betwee the gang of 9 and the gang of 11). That amount of parallelism in the development just wasn't possible before. 3. Python is now housed in a company formed to foster open source software development. I won't pretend I understand all the implications of that move beyond the obvious reasons stated in item one, but there is bound to be some desire by BeOpen to put their stamp on the language. I believe that there are key changes to the language that would not have made it into 2.0 had the license wrangling between CNRI and BeOpen not dragged out as long as it did. Those of us involved as active developers took advantage of that lull. (I say "we", because I was a part of that. I pushed Greg Ewing's original list comprehensions prototype along when the opportunity arose.) 4. Python's user and programmer base has grown dramatically in the past several years. While it's not possible to actually measure the size of the user community, you can get an idea of its growth by looking at the increase in list traffic. Taking a peek at the posting numbers at http://www.egroups.com/group/python-list is instructive. In January of 1994 there were 76 posts to the list. In January of 2000 that number grew to 2678. (That's with much less relative participation today by the core developers than in 1994.) In January of 1994 I believe the python-list@cwi.nl (with a possible Usenet gateway) was the only available discussion forum about Python. Egroups lists 45 Python-related lists today (I took their word for it - they may stretch things a bit). There are at least three (maybe four) distinct dialects of the language as well, not to mention the significant growth in supportef platforms in the past six years. All this adds up to a system that is due for some significant change. Those of us currently involved are still getting used to the new system, so perhaps things are moving a bit faster than if we were completely familiar with this environment. Many of the things that are new in 2.0 have been proposed on the list off and on for a long time. Unicode support, list comprehensions, augmented assignment and extensions to the print statement come to mind. They are not new ideas tossed in with a beer chaser (like "<blink>"). From the traffic on python-dev about Unicode support, I believe it was the most challenging thing to add to the language. By comparison, the other three items I mentioned above were relatively simple concepts to grasp and implement. All these ideas were proposed to the community in the past, but have only recently gained their own voice (so to speak) with the restructuring of the development environment and growth in the base of active developers. This broadening of the channel between the development community and the CVS repository will obviously take some getting used to. Once 2.0 is out, I don't expect this (relatively) furious pace to continue. -- Skip Montanaro (skip@mojam.com) http://www.mojam.com/ http://www.musi-cal.com/ [Completely unrelated aside: I've never voiced an opinion - pro or con - about the new print syntax, either on python-list or python-dev. This will be my only observation. I have used the following print statement format for several years when I wanted to insert some temporary debugging statements that I knew I would later remove or comment out: print ">>", this, that, and, the, other, stuff because it would make it easier to locate them with a text editor. (Right shift, while a very useful construct, is hardly common in my programming.) Now, I'm happy to say, I will no longer have to quote the ">>" and it will be easier to get the output to go to sys.stderr...]
[Skip Montanaro]
I began using Python in early 1994, probably around version 1.0.1.
And it's always good to hear a newcomer's perspective <wink>. Seriously, it was a wonderful sane sketch of what's been happening lately. Some glosses:
... From my perspective as a friendly outsider, ...
Nobody fall for that ingratiating ploy: Skip's a Python Developer at SourceForge too. And glad to have him there!
... 3. Python is now housed in a company formed to foster open source software development. I won't pretend I understand all the implications of that move ... but there is bound to be some desire by BeOpen to put their stamp on the language.
There is more desire on BeOpen's part-- at least at first --to just pay our salaries. Many people have asked for language or library changes or enhancements in the past based on demanding real-world needs, but until very recently the only possible response was "huh -- send in a patch, and maybe Guido will check it in". Despite the high approachability of Python's implementation, often that's just too much of a task for the people seeking solutions. But if they want it enough to pay for it, or aren't even sure exactly what they need, they can hire us to do it now (shameless plug: mailto:pythonlabs-info@beopen.com). I doubt there's any team better qualified, and while I've been a paid prostitute my whole career, you can still trust Guido to keep us honest <wink>. For example, that's how Python's Unicode features got developed (although at CNRI).
I believe that there are key changes to the language that would not have made it into 2.0 had the license wrangling between CNRI and BeOpen not dragged out as long as it did.
Absolutely. You may <snort> have missed some of the endless posts on this topic: we were *going* to release 2.0b1 on July 1st. I was at Guido's house late the night before, everything was cooking, and we were mere hours away from uploading the 2.0b1 tarball for release. Then CNRI pulled the plug in an email, and we've been trying to get it back into the outlet ever since. When it became clear that things weren't going to settle at once, and that we needed to produce a 1.6 release too with *only* the stuff developed under CNRI's tenure, that left us twiddling our thumbs. There were a pile of cool (but, as you said later, old!) ideas Guido wanted to get in anyway, so he opened the door. Had things turned out as we *hoped*, they would have gone into 2.1 instead, and that's all there was to that.
... All this adds up to a system that is due for some significant change.
Sure does. But it's working great so far, so don't jinx it by questioning *anything* <wink>.
... Once 2.0 is out, I don't expect this (relatively) furious pace to continue.
I suspect it will continue-- maybe even accelerate --but *shift*. We're fast running out of *any* feasible (before P3K) "core language" idea that Guido has ever had a liking for, so I expect the core language changes to slow waaaaay down again. The libraries may be a different story, though. For example, there are lots of GUIs out there, and Tk isn't everyone's favorite yet remains especially favored in the std distribution; Python is being used in new areas where it's currently harder to use than it should be (e.g., deeply embedded systems); some of the web-related modules could certainly stand a major boost in consistency, functionality and ease-of-use; and fill in the blank _________. There are infrastructure issues too, like what to do on top of Distutils to make it at least as useful as CPAN. Etc etc etc ... there's a *ton* of stuff to be done beyond fiddling with the language per se. I won't be happy until there's a Python in every toaster <wink>. although-*perhaps*-light-bulbs-don't-really-need-it-ly y'rs - tim
participants (2)
-
Skip Montanaro -
Tim Peters