Python
Inhaltsverzeichnis |
Entwicklung, Geschichte
Der Erfinder der Sprache war Guido van Rossum der in den 1980er-Jahren an einer holländischen Universität damit begann, eine Nachfolgesprache für "ABC", eine Lehrsprache, zu entwickeln. Beeinflussen liess er sich dabei vor allem vom direkten Vorgänger, manche Elemente entstammen allerdings auch C oder der Bourne Again Shell, das Modul-System kommt auf Prinzipebene von Module-3, Perl steuerte indirekt Regular Expressions bei. Die erste Version, 0.9.0, wurde im Jahre 1990 für die breite Masse über Newsgroups öffentlich zugänglich gemacht, bereits damals zeichneten sich die Prinzipien der Sprache stark und klar ab. Die erste stabile Version, 1.0, erblickte das Licht der Welt allerdings erst vier Jahre später, die darauffolgende Version 2.0 (die einige heute selbstverständliche Features mit sich brachte wie beispielsweise eine vollständige Garbagecollection und Unicodeunterstützung) lies weitere sechs Jahre auf sich warten und erschien im Oktober 2000. Neben Änderungen an der Sprache selbst brachte dieses Release gröbere Umbauten in Bezug auf die Menschen rund um die Entwicklung von Python herum sowie in Bezug auf lizenzrechtliche Probleme als auch organisatorische Schwierigkeiten ebenfalls Änderungen mit sich. Die letzte große Änderung an der Sprache selbst wurde mit der Version 2.2 vorgenommen; hier wurde an Variablen und Klassen Veränderungen vorgenommen um einige nicht-objektorientierte Dinge objektorientiert zu machen.
Neben dem Python-Zweig 2.x gibt es seit dem Jahre 2008 Python 3, eine stark geänderte Version der Sprache die nach momentanem Stand parallel entwickelt wird. Der Grund für Python 3 waren einige Fehler in dem Sprachkonzept selbst die repariert werden sollten was zur Folge hatte und hat dass die Abwärtskompatibilität zu Python 2 nicht mehr gegeben ist. Auch wenn Python weiterhin eine Sprache ist die multiple Programmierparadigmen unterstütz so liegt der Fokus der Entwicklung bei der Version 3 darauf, Coderedundanzen zu vermeiden beziehungsweise zu entfernen, auch wenn die ursprüngliche Philosophie beibehalten wurde.
Die Namensgebung kommt nicht, wie das Logo vermuten lässt, von einer Reptilie sondern stammt aus dem Repertoire einer britischen Komödiantentruppe, "Monty Python", auf deren Sketche aus dem Stück "Flying Circus" der Autor anspielen wollte, gleichzeitig ist es auch eine Referenz auf eines der Hauptziele der Sprache, es soll Spaß machen die Sprache zu nutzen. Nichtsdestotrotz ist die Fehlinformation auch durch bestimmte Erweiterungen und Toolkits die Schlangennamen tragen relativ weit verbreitet.
Verbreitung, Projekte
Python wird an den verschiedensten Orten von verschiedensten Menschen für verschiedenste Einsatzzwecke genutzt, dabei reichen die Projekte von Kleinstprojekten bis hin zu multinationalen, großen Konzernen die einen Teil ihrer Infrastruktur mittels Python realisiert haben, beispielsweise Google, Youtube oder das MMO "Evolution Online". AmigaOS basiert zu einem Teil auf Python, das 100$-Laptop-Projekt benutzt es für die Erstellung seiner graphischen Benutzeroberfläche. Es gibt dutzende, wenn nicht hunderte, Webframeworks die auf Pythonfüßen (Oh, ein Paradoxon!) stehen, dazu zählen Django, web2py oder SQLAlchemy (.. um nur die bekanntesten Exemplare aufzuzählen). Viele Applikationen des täglichen Gebrauchs bieten die Möglichkeit, eigene Plugins und Erweiterungen in Python zu schreiben, der VLC-Mediaplayer, Blender oder Thunderbird. Der Python-Interpreter wurde auf die verschiedensten Plattformen portiert, selbst auf Mikrocontrollern ist es möglich Python-Code zu übersetzen mittels PyMite, einem eigens zu diesem Zweck entwickelten Interpreter.
Entwicklungsumgebungen
Wie für jede größere (oder kleinere) Programmiersprache gibt es speziell auf dadurch entstehende Bedürfnisse angepasste Entwicklungsumgebungen, für Python sind die folgenden die bekanntesten Exemplare:
- Komodo IDE (Kostenpflichtig, Windows)
- PyCharm (Kostenlos, Multiplattform)
- EasyEclipse (Eclipse mit einigen Anpassungen für Pythonentwicklung, kostenlos, Multiplattform)
- Stani's Python Editor (Kostenlos, Multiplattform)
Als Autor dieses Artikels sei mir aber der persönliche Einwurf gestattet, dass ich persönlich vor allem Anfängern nur davon abraten würde, eine dieser Entwicklungsumgebungen zu benutzen. Der Funktionsumfang ist für kleine Programme oder Projekte viel zu groß, man wird mir Funktionen und vermeintlichen Hilfestellungen erschlagen die einen dann schlussendlich von dem Wichtigsten abhalten, nämlich Code zu schreiben. Ein guter "Mittelweg" ist es, einen Texteditor zu nehmen der gewisse Verbesserungen bietet die für Programmierer nützlich sind, automatische Einrückung, Syntax-Highlighting oder das Einbinden des Interpreters. Notepad++ macht diesen Job unter verschiedensten Windowsversionen relativ gut, unter MacOS, Unix und Linux stehen euch sowieso die wohl ultimativsten wenn auch gewöhnungsbedürtigen Editoren zur Verfügung, namentlich vi(m) und emacs.
Lernmaterial
Wie bei jeder größeren Sprache gibt es frei verfügbar tonnenweise Material für Leute, die die Sprache lernen sollen. Die Qual der Wahl bringt allerdings auch das Problem mit sich dass zwangsweise nicht alle Unterlagen von gleicher Qualität sind und unter Umständen
Das führt mich nun auch zu meinem nächsten Themengebiet in diesem Artikel, dieser wäre die Frage ..
Python Version 2? Version 3?
Oftmals stellt sich für Anfänger die Frage, ob sie ihre Zeit nun in die neueste Version der Sprache investieren sollten oder doch in das "stabilere" Python 2. Hierzu ist es wichtig sich einmal die gröbere Unterschiede zwischen den zwei Versionen anzusehen und auf diese etwas genauer einzugehen - dies ausführlich zu tun würde den Rahmen dieses Artikels um hunderte Male sprengen, darum wird einfach einmal ein gröberer Überblick gegeben:
- Das Statement print ist nun eine Funktion, print(), dies äussert sich syntaktisch wie folgt:
Old: print "The answer is", 2*2 New: print("The answer is", 2*2) Old: print x, # Trailing comma suppresses newline New: print(x, end=" ") # Appends a space instead of a newline Old: print # Prints a newline New: print() # You must call the function! Old: print >>sys.stderr, "fatal error" New: print("fatal error", file=sys.stderr) Old: print (x, y) # prints repr((x, y)) New: print((x, y)) # Not the same as print(x, y)!
Python 2.7 war und ist das letzte signifikante Release und laut den Entwicklern wird es auch kein neues Release der 2.x-Branch mehr geben, der Fokus der Entwicklung liegt jetzt auf Python 3 was gleichzeitig auch bedeutet dass Verbesserungen für die Standardlibraries nicht mehr in Python 2.x einfliessen werden, en general gesagt werden nur mehr "Codecleaning"-Arbeiten vollzogen.