|
|
|||||||||
|
Pythoneers Move to Digital Creations ==================================== The most significant news in this two-week span was the five Pythoneers (GvR, Fred Drake, Jeremy Hylton, Tim Peters, Barry Warsaw) leaving BeOpen and being hired by Digital Creations. The terms of their hiring seem quite liberal. From GvR's announcement: "We will be spending part of our time on core Python development (including Jython and Mailman) and part of our time on Python infrastructure improvements that also benefit Zope." And, a few paragraphs later: "All future work we do on Python as Digital Creations employees will be owned by a non-profit organization yet to be created. We think of this new organization as the Python Software Foundation. In the meantime (while the PSF is under construction) I will own such copyrights personally." http://www.python.org/digicool.html No official statement from DC has been made as of this writing, though Paul Everitt has made some informal statements: "I'd like to start by saying that Guido and I have known each other a long time now. Barry too. We all really like each other, but we also know how to disagree constructively." http://weblogs.userland.com/zopeNewbies/discuss/msgReader$831 There was only a slight amount of paranoia triggered by the news. Some people wondered if DC would begin dictating Python's development, or start slanting the standard library toward Zope (discouraging enhancements to the Web development tools, for example). This scenario seems quite improbable. Instead, my crystal ball says it's more likely that certain language features and proposals will be given more of GvR's attention than they've previously gotten. For example, Jim Fulton, Zope's primary architect, has long been interested in ways to specify interfaces in Python: http://www.foretec.com/python/workshops/1998-11/dd-fulton-sum.html So interfaces may suddenly become a bit more interesting to Guido. Mending the class/type dichotomy would also be useful for Zope, and that means the odds of ExtensionClass or some equivalent functionality, being added to Python have probably just increased. (See "Other Matters", below, for an example. ) But I do expect Guido will keep calling the shots as to exactly how any such new features fit into the language. Whither Tk? =========== It was an eventful two weeks for scripting languages in general, really. On October 20th that a company called Interwoven announced that it will be acquiring Ajuba Solutions, formerly known as Scriptics. Scriptics was the company founded by John Ousterhout to provide support for the Tcl scripting language and the Tk GUI toolkit. However, Interwoven isn't interested in Tcl/Tk at all and will not be funding its development. Ajuba knew this was coming, of course, and over the past few months efforts have been made to open up Tcl/Tk development to the community, taking such steps as moving the CVS trees to SourceForge, electing a Tcl Core Team with 14 members, and specifying processes for proposing and voting on core changes (the Tcl equivalent of PEPs). http://dev.scriptics.com/community/coreteam/ http://sourceforge.net/projects/tcl http://sourceforge.net/projects/tktoolkit However, this process is still in its infancy, and the announcement caused much worrying in the Tcl/Tk user community about the language's future and its continued maintenance. This affects Python because Tk, through the Tkinter module, is the GUI most commonly used with Python. Tkinter is included in the source distribution, it's the most extensively documented, and it's the most portable, supported on the Big Three platforms, namely Windows, Unix, and MacOS. Fredrik Lundh first posted a note about the announcement, and Eric S. Raymond raised the question of what this meant for Tkinter: "This raises anew a question I've been meaning to bring up for the last week: is it finally time to move away from Python's dependence on Tcl/Tk for GUI support?" http://www.python.org/pipermail/python-dev/2000-October/016753.html People were split on this question, though Guido was receptive to the idea ("Yes, it may be time to have this discussion again.") and pointed out some reasons to stick with Tkinter: "Tk has two very high quality widgets: the Canvas and Text widgets are unsurpassed in functionality and robustness by other widget sets. You can draw more lines or characters per second in most toolkits, but few toolkits offer the convenience of marks and tags, not having to deal with refresh events, being able to group objects, move them around, change attributes, etc., etc., etc." http://www.python.org/pipermail/python-dev/2000-October/016754.html Greg Wilson's reaction was "Yes please", and he went on to explain what factors kept him using Tkinter for a recent course: http://www.python.org/pipermail/python-dev/2000-October/016757.html /F thought Tk was still a good choice, and said " ... and trust me, the Python 2.0/Tk8.4/Tkinter3000 combo will rock ;-)". Tkinter3000 is an improved Tk interface that /F has been working on, with more flexibility and better performance. http://tkinter.effbot.org /F also hoped that the Tcl Core Team would become more receptive to making it easier to use Tk from other languages without Tcl having to be in the middle, which would let the maintainers of Tkinter and the Perl/Tk interface participate more in Tk's development. Eric S. Raymond speculated about the success of Tcl's new development model: "Good for Tcl: Osterhout's rather lame attempts to develop under a mixed model have almost certainly come to an end in favor of an Apache-like model funded by big Tcl users." http://www.python.org/pipermail/python-dev/2000-October/016763.html Greg Ewing wondered if stdwin should be revived. GvR and Raymond both thought that far too much work, and not productive of very good results. "And stdwin would really look pathetic in this time", GvR observed. Python isn't tied very tightly to Tk, of course; well-maintained and reasonably complete bindings exist for many different GUI toolkits, such as Qt, GTk+, wxWindows, Windows MFC, and a few more. http://www.thekompany.com/projects/pykde/ http://www.daa.com.au/~james/pygtk/ http://wxpython.org/ http://http://www.oreillynet.com/pub/a/217 wxWindows is probably the most obvious second candidate, since it actually supports all of the Big Three platforms, and no other toolkit does. Robin Dunn, author of the wxPython binding, posted to discuss the status of wxWindows on the Mac: "My understanding is that the version in CVS is nearly up to date with the features in the MSW and GTK versions, though I haven't had a chance to use it myself. ... The next step I guess is getting it wrapped up in wxPython..." http://www.python.org/pipermail/python-dev/2000-October/016764.html There was no clear final decision, and my crystal ball didn't deign to give an answer. Given all the uncertainties, it's probably best to wait and see. If Tk's development continues to progress and becomes more open to languages other than Tcl, Tkinter will probably continue to be the most common Python GUI. If not, we can consider this question in another 6 months, which will give wxWindows and wxPython time to develop on the Mac platform. And who knows? Maybe something else will happen, such as Qt or GTk+ being ported to the Macintosh. Gradual Migration ================= Paul Prescod suggested that we should start thinking about how to make the transition to the vaporware Python 3000 easier: "Rather than delaying painful backwards-compatibility breakage I think we should make it less painful. We should decide where we are going long before we ask our users to move there. I think we should start including alternatives to syntaxes and features that we know are broken. Once people move to the alternatives we can 'reassign' or remove the original syntax with much less pain." http://www.python.org/pipermail/python-dev/2000-October/016776.html Reaction was enthusiastic, GvR commenting: "I think the proper approach is to start a separate migration process for each of these proposed changes. Each should be paced separately (the pace may depend on how hard to swallow the change is for users as well as how hard it is to implement the new functionality) and for each, a separate PEP in the 3000 series should be started." http://www.python.org/pipermail/python-dev/2000-October/016780.html Paul got approval to write PEP #5: "Guidelines for Language Evolution". http://python.sourceforge.net/peps/pep-0005.html Along the way, Tim Peters commented: "Not just to be my usual self <wink>, but I do see a from-scratch rewrite as being less likely as the years go by. There's nothing I know of in Guido's plans that can't be done incrementally instead -- and if he doesn't either, selling a total-rewrite project to an employer is probably impossible. The most successful projects I've seen and been on *did* rewrite all the code routinely, but one subsystem at a time." http://www.python.org/pipermail/python-dev/2000-October/016819.html Other matters ============= Neil Schemenauer posted a proposal for a core change that would make ExtensionClass better able to simulate a Python instance: "Extension classes can never pass the PyInstance_Check predicate. I've searched for all occurances of PyInstance_Check in the 2.0 source. In many places that PyInstance_Check occurs a more general 'is this an instance-like type' check would seem to be more suitable." http://www.python.org/pipermail/python-dev/2000-October/016797.html Guido thought this simply papers over the problem in this one particular case, and said "Rather than formalizing the exceptions made for instances, we should work on eradicating the differences between classes and types. I believe that the plans for rich comparisons would or could also take care of this. I hope I'll have more time soon to explore this." Jim Fulton, in a brief followup, said "Me too." Barry Warsaw proposed adding a function to the sys module which would return the stack frame for getting the stack frame of the function's caller: http://www.python.org/pipermail/python-dev/2000-October/016802.html People liked the idea; M.-A. Lemburg, Greg Ward, and Ka-Ping Yee all had their own implementations of this function already. ?!ng reminded the list of his inspect.py module which provides this function, and other functions for inspecting live Python code, and suggested it for inclusion in the standard library: http://lfw.org/python/inspect.py No resolution was arrived at. |