»Mehr als die Vergangenheit interessiert mich die Zukunft, denn in ihr gedenke ich zu leben.« – Albert Einstein
28 Zukunft von Python
Nun, da sich dieses Buch dem Ende entgegenneigt und viele wichtige und interessante Themen behandelt worden sind, möchten wir Ihnen einen kleinen Ausblick geben, wohin sich Python in Zukunft entwickeln wird. Generell lässt sich die zukünftige Entwicklung in zwei grobe Richtungen aufteilen: Python 2.6 und Python 3000. Beide Versionen möchten wir in diesem Kapitel kurz erläutern, wobei Python 3000 das langfristigere und sicherlich interessantere Ziel ist und daher zuerst behandelt werden soll.
28.1 Python 3000 

Bislang wurde bei jeder neuen Python-Version darauf geachtet, dass alter Code nach Möglichkeit kompatibel zur neuen Version bleibt. Dies ist für die Entwickler von Python mitunter ein großes Problem, denn die Sprache Python entwickelt sich weiter, und alte Designentscheidungen haben sich als inkonsequent oder schlecht herausgestellt. Trotzdem müssen überflüssig gewordene Module oder Built-in Functions in jedem neuen Python-Release weiterhin mitgeschleppt werden, solange man die Abwärtskompatibilität wahren möchte.
Mit Python 3000, was der Codename für Python 3.0 ist, möchten die Entwickler mit der Abwärtskompatibilität brechen und die Sprache insgesamt konsequenter und logischer machen. Dazu werden einige teils gravierende Änderungen an der Sprache selbst durchgeführt. Außerdem wird die Standardbibliothek überarbeitet und werden viele, bereits als deprecated eingestufte Module entfernt.
Wir möchten hier die Änderungen, die mit Python 3000 in die Sprache einfließen, nicht im Detail diskutieren, sondern nur einen groben Überblick darüber geben, wohin sich Python entwickeln wird. Aus diesem Grund haben wir im Folgenden eine kurze Liste über die signifikantesten Änderungen von Python 3000 zusammengestellt:
- Das Schlüsselwort print wird durch eine Built-in Function print ersetzt.
- Der Divisionsoperator / wird bei numerischen Operanden immer eine Gleitkommadivision durchführen. Für eine Integer-Division muss der Operator // verwendet werden.
- In Anlehnung an List Comprehensions wird Python 3000 Dictionary Comprehensions und Set Comprehensions mit einem ähnlichen Zweck für die Datentypen dict und set unterstützen.
- Python 3000 wird mit Function Annotations eine flexible und optionale Syntax einführen, um beispielsweise den Datentyp von übergebenen Funktionsparametern zu überprüfen.
-
- Es werden standardmäßig Unicode-Strings verwendet. Zusätzlich wird es einen Datentyp bytes geben, der den »normalen« Byte-String speichert.
Um den Umstieg von Python 2.x auf Python 3000 bzw. Python 3.0 zu erleichtern, wird Python 3000 ein Programm namens 2to3 enthalten, das alten Python-Code automatisch an Python 3000 anpasst. Da dieses Programm lediglich eine syntaktische Konvertierung vornimmt und die Semantik Ihrer Programme nicht erfassen kann, bleibt Ihnen ein gewisses Maß an Arbeit beim Umstieg von Python 2.x auf Python 3000 wohl nicht erspart.
Im Folgenden werden einige Tipps aufgeführt, mit denen Sie den Aufwand beim Umstieg minimieren können:
- Verwenden Sie Python 2.6 und insbesondere den Python–3000-Kompatibilitätsmodus von Python 2.6. Näheres dazu erfahren Sie im nächsten Abschnitt.
- Leiten Sie alle eigenen Exception-Typen von der Basisklasse Exception ab.
- Leiten Sie alle eigenen Klassen von der Basisklasse object ab.
- Verwenden Sie den Operator // für Integer-Divisionen.
- Erstellen Sie Unit- oder Doctests mit größtmöglicher Abdeckung für Ihr Projekt. Auf diese Weise können Sie leichter Fehler entdecken, die aufgrund der Umstellung entstanden sind. Näheres zu Unit- und Doctests finden Sie in Abschnitt 21.5, »Automatisiertes Testen«.
-
- Nachdem wir uns mit der Zukunftsvision Python 3000 beschäftigt haben, wenden wir uns Python 2.6 zu.




bestellen





