Login
Newsletter
Werbung

Mi, 20. Juni 2007, 14:50

Software::Entwicklung

Status von Python 3000

Der Python-Initiator Guido van Rossum hat eine Zusammenfassung des aktuellen Standes des Projekts Python 3000 gegeben.

Python 3000 ist der Codename einer neuen Version der objektorientierten Skriptsprache Python (Python 3.0). Die neue Version soll im Gegensatz zu den letzten Versionen inkompatibel mit früheren Ausgaben werden. Damit bahnt sich ein ähnlicher Einschnitt wie bei Perl 6 an, selbst wenn die Zahl der inkompatiblen Änderungen überschaubar bleibt.

Python 3000 entstand aus dem Wunsch, die im Lauf der Zeit erkannten Mängel von Python zu beheben, die sich nicht auf kompatible Weise beseitigen ließen. Auch aus der Gemeinschaft der Anwender kamen Verbesserungsvorschläge, die in einem Python Enhancement Proposal mit der Nummer 3000 gesammelt wurden. Inzwischen sind noch weitere Dokumente mit Nummern ab 3000 entstanden, die sich auf Python 3000 beziehen.

Besorgte Python-Nutzer können gleich einen Blick auf PEP 3099 werfen, in dem das Team festlegt, was sich in Python nicht ändern wird. So wird Python 3000 keine Neuimplementation von Python, das Schlüsselwort self wird man weiter explizit hinschreiben müssen, die Syntax wird nicht änderbar sein, »lambda« und etliches mehr bleiben erhalten.

Der aktuelle Zeitplan sieht vor, Python 3.0 im August 2008 fertigzustellen. Eine erste Alphaversion ist für August 2007 geplant. Ursprünglich wollte man zwei Monate früher so weit sein. Einige Monate vor Python 3.0 wird noch Python 2.6 erscheinen, das vollständig kompatibel zu Python 2.5 sein soll. Es soll jedoch bereits einige Features und die Syntax von Python 3.0 kennen und sich in einem Modus betreiben lassen, der Entwickler warnt, wo ihr Code geändert werden muss, damit er mit Python 3.0 läuft. Zur weiteren Unterstützung des Übergangs zu Python 3.0 soll ein Konvertierungsprogramm erstellt werden, das die Syntax von Python 2.x automatisch in 3.0-Syntax übersetzt. Dieses Tool wird jedoch voraussichtlich mit einer kontextfreien Grammatik und nicht mit eingehender Typanalyse arbeiten, so dass es in Einzelfällen fehlerhaft übersetzen kann. In diesen Fällen soll man den Quellcode seines Python 2.6-Programms anpassen und erneut übersetzen und testen.

Eine der Neuerungen von Python 3 wird die Behandlung von Strings sein, die an Java angelehnt werden soll: Sie werden mit Unicode repräsentiert, während Binärdaten durch einen Datentyp »bytes« dargestellt werden sollen. Die Ein- und Ausgabebibliothek soll aufgrund der String-Änderungen und aus anderen Gründen neu geschrieben werden. Binäre Streams werden durch ein Flag »b« beim Öffnen gekennzeichnet. Alle anderen Streams sind Text-Streams; diesen wird eine Kodierung zugeordnet. Das Statement »print« wird zu einer Funktion und die von C bekannte Formatierung mit Prozentzeichen wird durch format-Methoden abgelöst.

Auch im Klassen- und Typsystem ändert sich einiges. Alle Klassen sind nun implizit von der eingebauten Klasse »object« abgeleitet. Es gibt eine neue Syntax für Metaklassen. Klassen können ein eigenes Dictionary besitzen. Die Basisklassen einer Klasse können bei der Erzeugung einer Klasse dynamisch angegeben werden. Eine Reihe von abstrakten Basisklassen wurde definiert, von denen man eigene Klassen ableiten kann. Ob es auch generische Funktionen geben wird, ist noch offen. Ein Vorschlag existiert, scheint jedoch eingeschlafen zu sein.

Weitere signifikante Änderungen gibt es bei den Exceptions, die nun sämtlich von BaseException oder Exception abgeleitet sein müssen. Die Ganzzahlen werden auf einen einzigen Typ (mit unbegrenzter Größe) reduziert, Iteratoren oder »Iterables« treten an die Stelle von Listen und die Bibliotheken werden bereinigt. Einige Module sollen umbenannt, veraltete Funktionen entfernt werden.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung