Die Programmiersprache Python wurde in dem frühen 1990 von Guido van Rossum am Stichting Mathematisch Centrum entwickelt. Benannt wurde sie nach der BBC-Show Monty Python's Flying Circus. Seit dem durlchlebt die Sprache zahlreiche Änderungen und ist mittlerweile in der Version 2.5 verfügbar. Gedacht war Python als ein Neuentwurf der Lernsprache ABC und als Grundlage des Betriebssystems Amoeba.
Das Ziel von Python ist eine möglichst einfach und übersichtliche Sprache, mit enormen Funktionsumfang und nur wenigen Schlüßelwörtern. Im Vordergrund standen weiterhin kurze Entwicklungszeiten und den Programmierer nur so weit einzuschränken, wie es unbedingt nötig ist.
Verwaltet, verföffentlicht und vorangetrieben wird Python seit 2001 von der Python Software Foundation (PSF). Dabei handelt es sich um eine nicht auf Profit ausgerichtete Organisation, die durch Sponsoren aus verschiedensten Bereichen untersützt wird.
Bei Python handelt es sich um eine typische Hochsprache, die sehr abstraktes Programmieren zuläßt. Der Benutzer muss sich wenig um Low-Level-Probleme kümmern und es stehen ihm eine große Menge an komplexen Befehlen zur Verfügung. Datentypen wie Komplexen Zahlen, Strings, Tupel, Listen und Dictionaries sind bereits als Standard-Datentypen implementiert und können dem entsprechend einfach verwendet werden.
Wie viele andere Sprachen auch, wird Python interpretiert. Dies ist in zwei Varianten Moeglich: Der Quellcode kann vorkompiliert an den Interpreter zur Ausführung geschickt werden, oder auch als Quelltext, der dann zunächst intern noch kompiliert werden muss.
Wie jede neuere Sprache ist auch Python objektorientiert. Dies bedeutet aber nicht, dass man dazu verpflichtet ist, mit Klassen zu arbeiten. Wie bei C++, und im Gegensatz zu beispielsweise Java, ist es bei Python auch möglich, außerhalb von Klassen Funktionen und Variablen zu deklarieren. Auf die Schlüßelwörter private, protected und public, wie sie in den meisten anderen objektorientierten Sprachen zu finden sind, wird vollkommen verzichtet und dem Programmierer überlassen. Möchte man eine Methode oder ein Attribut denn noch verstecken, muss man dies durch Ableitungen realisieren. Um Methoden als private zu kennzeichnen, muss dessen Name mit zwei Unterstrichen beginnen. Durch name-mangling wird diese dann versteckt, ist aber weiterhin von außen zugreifbar.
Da Python für besonders schnelle Entwicklung konzipiert wurde, sind eine ganze Reihe an vorgefertigten Modulen verfügbar. Diese mögen zu nächst weniger erscheinen als bei Java, jedoch sind die mitgelieferten Module noch einfacher zu verwenden. So gibt es beispielsweise vorgefertigte Klassen, mit denen man durch wenige Befehle POP3- und SMTP-Server abfragen kann.
Hinzu kommt noch die Möglichkeit, Python-Module in einer anderen Sprache zu verfassen, um so beispielsweise zeitkritische Vorgänge zu beschleunigen. Vorgesehen ist hier primär der Einsatz von C bzw. C++.
Da es sich bei Python bereits um eine interpretiert Sprache handelt, wurde sie so ausgelegt, dass sie auf möglichst vielen Plattformen ausführbar ist. Für alle großen und mittelgroßen Betriebssysteme sind auch entsprechende Interpreter verfügbar. Zur Zeit wird stark an der Etablierung auf mobilen Endgeräten, wie Smartphones und PDAs, gearbeitet. Ein Beispiel da für ist die Nokia S60 Serie, für die ein Python-Interpreter verfügbar ist. Zu Problemen kann ist mit in anderen Sprachen angefertigten Modulen kommen. Diese müssen gesondert mitgeliefwert werden, da sie unter Umständen noch für das Zielsystem compiliert werden müssen.
Im vorangeganen Absatz wurde Python in eine sprachliche Kategorie eingeordnet und die wichtigsten Eigenschaften erläutert. Dieser Abschnitt befasst sich etwas konkreter mit der Sprache und der Syntax, um einen kurzen Überblick zu geben.
Im Gegensatz zu den meisten anderen Sprachen verwendet Python für das Statement-Grouping keine eigenen Schlüßelwörter, bzw. Zeichen (wie beispielsweise BEGIN und END in Pascal), sondern lediglich die Einrückung. Whitespace am Anfang einer Zeile bekommt also eine Bedeutung zugesprochen. Als Hinweis sei gegeben, das ein Tabulator im Allgemeinen gleichzusetzen ist mit acht Leerzeichen. Daher ist es sinnvoll innerhalb eines Modules nur mit Leerzeichen, oder nur mit Tabulator einzurücken. Ansonsten kann es leicht zu Fehlern in der Block-Bildung kommen.
Variablen müssen durchgängig nicht deklariert werden. Dies geschieht automatisch, so bald eine solche das erste Mal verwendet wird. Der Typ wird implizit aus dem zugewiesenen Wert ermittelt und kann sich während des Programmablaufs ändern. Gleiches gilt für Methoden-Parameter, für die lediglich ein Name angegeben werden muss. Wie bei anderen Sprachen auch, führt eine implizite Deklaration von Variablen leicht zu Problemen, da der Compiler, bzw. Interbreter im Zweifelsfall eine neue Variable anlegt, order irgendwie versucht auf eine bestehende zuzugreifen.
Im Allgemeinen ist Python syntaktisch und programmiertechnisch sehr elegant gehalten. Die Statements sind relativ kurz, eindeutig und müssen niemals, wie sonst üblich, mit einem Semikolon oder Punkt abgeschlossen werden. Hinzu kommt die Block-Bildung durch Einrückung, welches vielen Programmen ein einheitlichen Aussehen gewissermaßen aufzwängt.
Beispiel Code-Ausschnitt:
Python ist besonders für Projekte geeignet, bei denen eine kurze Entwicklungszeit im Vordergrund stehen, aber tortzdem eine gewisse Geschwindigkeit der Anwendung erreicht werden muss. Möglich ist dies, durch die gut durchdachte Sprache und die Implementierung von zeitkritischen Bereichen in C.
Mitlerweile gibt es eine ganze Reihe an Unternehmen und Organisatioen, die ganze, oder auch Teilprojekte mit Python realiseren. Dazu gehören beispielsweise die NASA, die mit Hilfe von Python Missions-Planungen durchführt, oder aber auch Industrial Light and Magic.
Sehr beliebt ist Python außerdem dort, wo eine Script-Sprache innerhalb einer Anwendung benötigt wird. Durch die einfache Verknüpfung mit C, bzw. C++, ist daher ein großer Teil der Computerspiele-Industrie mit Python durchzogen. Implementiert werden vorwiegend die Bereiche der Spielelogik und der KI (Battlefield 2, Civilizations 4).