Linux Today: Linux News On Internet Time.

VNU Net: Python 3000 not backwards compatible, warns creator

Mar 27, 2000, 18:42 (7 Talkback[s])
(Other stories by Cath Everett)

By Cath Everett, VNU Net

Guido van Rossum, the creator of Python, has warned that Python 3000 will not be backwards compatible with versions 1.x of the open source scripting language.

Van Rossum, who is also technical director of the Python Consortium, said he intends to release two upgrades of the product by the end of the year, with version 1.6 due before the summer and 1.7 scheduled by the end of 2000. But he explained that he was also about to start work on Python 3000, which would involve a complete rewrite.

"Python 3000 is a monumental effort - all the code will be rewritten and the documentation revised. This is my one chance to reimplement Python and fix its efficiency problems. But how incompatible it will be is a very big open question and I don't have a concrete answer," he said.

He explained that this was why he was keen to build Python 3000 and 1.7 in parallel, and pass 3000 on to developers for review and testing before it was officially released at some unspecified time in the future. But he said he would also develop tools to help people migrate their applications from Python version 1.x to 3000.

"We may have to give people options, but I'm not real happy about introducing variants on a permanent basis. We'll already have two versions, one of which is old, and the increasing variability of a language is not a good thing in the long term," he added.

New functionality in Python 3000 will include more efficient free threading capabilities, optional static typing, and true unification of classes and types so that true object inheritance can take place. The language case will also be made insensitive.

Version 1.6 will support unicode, provide distributed utilities to make it easier to install third party modules as part of a Python application, and will include the ability to deprecate obsolete modules.

Version 1.7, conversely, will include a lot of functionality that was originally intended to go into release 1.6 and 2.0. This includes garbage collection that can detect cycles in Python date structures, increased unification of classes and types, and the ability to divide the interpreter into components so that users can use a third party compiler, parser or virtual machine if they desire.

Related Stories: