Guido Van Rossum's keynote - Python 2.5: September 12 - Python 3000: a new revision of the language - Philosophy - Don't design a whole new language - Fix early design bugs - Allow incompatible changes within reason - Remove deprecated features - Consider the best feature going forward - Process - Alpha release in 2007, final in 2008 - Python 2.x to be supported in parallel, with some backports - Changes - New keywords - Some "iterator objects" not lists - All strings Unicode - Binary I/O redesign - But not dict.keys rather than dict.keys(), change meaning of for-else, operator priorities - Migration - Compiler can't; pychecker-like will help - Instrumented Python 2.x that warns of doomed code - Basic cleanup - Kill classic classes - Exceptions must derive from BaseException - int/int = float - int = long - Absolute import by default - Kill ancient modules - Some syntactic changes - repr(x) instead of `x` - except E1, E2 as err: - Movement away from lists, toward iterators - list comprehensions become syntactic sugar for list(generator expression) - range() becomes xrange() - zip() becomes izip() - lambda lives! - strings - bytes and str instead of str and unicode - in 2.x, pure-ASCII strings are compatible with unicode - change I/O library - print becomes a function - print(x,y,z,file=f) - dict views instead of lists