TITLE OF PAPER: Guido Keynote URL OF PRESENTATION: _URL_of_powerpoint_presentation_ PRESENTED BY: Guido REPRESENTING: Guido CONFERENCE: PyCON 2004 DATE: 20040324 LOCATION: Ballroom LOCATION OF NOTES: (where will these be stored on the net????) -------------------------------------------------------------------------- REAL-TIME NOTES / ANNOTATIONS OF THE PAPER: {If you've contributed, add your name, e-mail & URL at the bottom} What will the future bring for Python? "Damned if I know" Python 2.2 Its passed on. This is an "Ex release" [parrot sketch link] No more 2.2 releases. Python 2.3 Bug fix release Python 2.4 (and beyond) Raymond Hettinger has done a bunch of performance improvements (in specific areas) Better, faster, bigger. More libraries, C code See Misc/NEWS in CVS (subscribe to checkins mailing list) [link below] It's not design by committee -- yet. Current Issues Guido discussed unresolved features for 2.4 in gory technical detail. This involved explanations discussions of tradeoffs and some polling of the audience. Decorator Syntax PEP 318 - stolen from C# A function that takes a descriptor and returns a descriptor, may also have a lot of parameters passed to it. Want a list of expressions Where does the decorator go? Position in fn definition [classmethod] def foo(cls, arg1, arg2): (like C#) def [classmethod] foo(cls, arg1, arg2): The "Barry Warsaw" model. def foo [classmethod] (cls, arg1, arg2): (doesn't break python-mode.el) Guido likes it because the decorators effect how you read the the argument list. Likely candidate def foo (cls, arg1, arg2) [classmethod]: Current PEP and patch. Problem with long argument lists, and "losing" the decorators def foo (cls, arg1, arg2): [classmethod] Vote by "noise" went for Guido's choice mostly Generator expressions sum(x**2 for x in range(10)) A = range(10) F = [] for i in range(10): F.append(x*i for x in A) At the end of the loop, everything gets multiplied times 9, which is a problem. The problem is with the capture of free variables in the expression above. Guido's opinion is to just let the example fail to work as desired. Few people will write things like this, and more like the sum() example. Improve function call performance by reducing size of stack frames (Armin Rigo) Python 3.0 "Maybe when I retire, I'll have time for Python 3.0" More things to become iterators There's not much more you can do to squeeze addition performance out of the inner loop. Wholesale replacement of lists with iterators is desirable delete xrange(), iterkeys(), no need with interators zip(), map(), filter() to become iterators, reducing the need for itertools Very easy to add list() when you need an actual list, which is the exception. sorted() will not be an iterator because it needs the whole list in order to sort it. Learn from IronPython, etc pregeneration of code variations Q: what about self"dot"attribute? A: dot is not going away Q: An iterator version of sorted? For example, to get the first 5? A: Hettinger working on a fibonacci heap version of this. Q: Relative import issue resolved by 2.4? A: Anthony Baxter says no -- some of it, but not unless resolving of more issues. Followup: what's the process for resolving? Guido is a bottleneck. Things can change if there is a champion in the community. Guido want to read a relatively small amount of text in order to be able to make a decision. Would accept a patch to allow use of parenthesis in import to reduce need for backslash. ".." style relative import has flip flopping semantics in Guido's mind (and the community's mind). Neil S. suggests a flag to the interpreter, but Guido believes that it leaves the package author out of the loop. Q: website and logo A: "That's a sad tale". Controversy over the logo and website design. Fueled by trying to sell Python to communities that are traditionally uninterested in Python. Q: BitTorrent A: 1M d/l's month. "I've never even seen it". Example of good packaging of a Python application -- you don't have to get Python first. Q: GIL vs freethreading A: GIL is going to stay. We tried getting rid of it. Greg Stein spent a lot of time on it, replacing the GIL w/ lots of tiny locks. It was 50% slower. Design for multiple processes vs multiple threads. Q: Groovy -- can the JCP design a language A: It's hard to design a new language, its also hard to get a language to be popular. Dislikes groovy because it flatters perl much more than python. Q: Where is spambayes going A: 25k d/l's month Q: Will python 3k be built in python? A: Ask Armin (Rigo) and Laura (Creighton). If they succeed it's possible for Pypy to be the base for Python 3K. Guido thinks it's about as likely as Python 3K being written on top of Parrot... Q: Std library additions for 2.4? A: See the NEWS file, but ... New collections module containing deque (fast two-headed queue); statistics module(?); ... Q: Can we get rid of binary floating point? A: As soon as decimal is equally fast. Q: Python packaging painful - any solutions to not letting user screw you up with multiple versions? A: Bittorrent works well. Not aware of other efforts in that regard? Guido would build a special version of python and force the application to start that version of python. Q: re Decorators for Fns. Have you considered magic things like meta-classes? A: yes, considered, but it's a different case than for fn decorators. Q: Zelle's CS1 book? A: Seems to be just what I'd hoped -- basic CS concepts (data structures, algorithms) using Python for examples, from a longtime CS instructor. Highly recommended. Q: Favorite thing of python? Happiest bit? A: Community. "That just makes my heart overflow with warmth" Q: Security A: Agrees with Mitch Kapor that security is important. Disbelieves that capabilities will solve the problem, and that python would be a different language after being capabilityized. Q: Learned much about security in Python? A: Not from elemental work. But good security requires a lot of time to understand well. Q: XML Parsing? A: many choices in stdlib, most require handlers at attr/element level. rather clumsy. came up with solution to encode dtd-like thing in classes, then ... stuff happens ... exception raised? Q: wxPython A: That's the best GUI toolkit given a number of constraints. The only reason wxPython isn't the standard Python GUI toolkit is that tkInter was there first. Believes wxPython is the most mature cross platform toolkit Q: What about interfaces A: "I have a whole bunch of ideas about that" for Python 3000: interfaces and optional static typing -------------------------------------------------------------------------- QUOTES: "I used to have boring slides, so I changed the color scheme and the fonts" (and his t-shirt -- multiple T-shirts to match the colors of his intro slide) "We're hiring one good windows programmer, sort of like Tim Peters but non-smoking" "Maybe when I retire, I'll have time for Python 3.0" "Imitation is the sincerest form of flattery, with regard to Groovy" "I don't like ruby because it flatters Perl more than Python" -------------------------------------------------------------------------- REFERENCES: {as documents / sites are referenced add them below} python parrot: http://www.davidpbrown.co.uk/jokes/monty-python-parrot.html python CVS NEWS: http://cvs.sourceforge.net/viewcvs.py/python/python/dist/src/Misc/NEWS current NEWS as of keynote: http://cvs.sourceforge.net/viewcvs.py/*checkout*/python/python/dist/src/Misc/NEWS?rev=1.961 PEP-318: http://www.python.org/peps/pep-0318.html Comment on generator expressions: http://mail.python.org/pipermail/python-dev/2004-March/043494.html PEP 289 (generator expressions): http://www.python.org/peps/pep-0289.html PEP 328 (relative & multiline imports): http://www.python.org/peps/pep-0328.html Groovy: http://groovy.codehaus.org/ -------------------------------------------------------------------------- CONTRIBUTORS: {add your name, e-mail address and URL below} Bob Kuehne, rpk@blue-newt.com, http://www.blue-newt.com Chris Petrilli, petrilli@amber.org, http://www.amber.org/~petrilli/ Ted Leung, twl@osafoundation.org, http://www.sauria.com/blog Ian Jones, ianjones@umich.edu John Carnell, jcarnell@netchange.us, http://netchange.us Russell Finn, rsf@sprucehill.com, http://www.sprucehill.com/rsf/blog/ [future] -------------------------------------------------------------------------- E-MAIL BOUNCEBACK: {add your e-mail address separated by commas } rpk@blue-newt.com,petrilli@amber.org,ianjones@umich.edu -------------------------------------------------------------------------- NOTES ON / KEY TO THIS TEMPLATE: A headline (like a field in a database) will be CAPITALISED This differentiates from the text that follows A variable that you can change will be surrounded by _underscores_ Spaces in variables are also replaced with under_scores This allows people to select the whole variable with a simple double-click A tool-tip is lower case and surrounded by {curly brackets / parentheses} These supply helpful contextual information. -------------------------------------------------------------------------- Copyright shared between all the participants unless otherwise stated...