Wer sich einige Zeit mit Skripten beschäftigt, stellt schnell fest, dass der Schritt zum Programmieren nicht weit ist. Um diesen Schritt einfach zu gestalten, bietet sich die Sprache Python als Allzweckwerkzeug an.
Worum geht es? Um einen allgemeinen Überblick über die objektorientierte Programmiersprache Python. Deshalb sollen folgende Fragen beantwortet werden: Worin unterscheidet sich Python von anderen Sprachen, wer nutzt Python, was kann man mit Python machen, welche Werkzeuge sind wichtig und wo finden die Leser weitere Informationen.
Einleitung
Über die Sprache ist schon viel gesagt und geschrieben worden, weshalb nur die wichtigsten Fakten genannt werden: Python [1] wurde Anfang der neunziger Jahre von Guido van Rossum kreiert; es ist eine mächtige objektorientierte Programmiersprache, die über eine leistungsfähige Standard-Bibliothek verfügt und durch ein glasklares Design besticht.
Die Entwicklung Pythons ist nicht abgeschlossen, was bedeutet, das immer noch aufregende Konstrukte integriert werden (in Python2.2 zum Beispiel die Generators). Last not least ist Python Open Source und damit kostenlos. Sie müssen keine proprietären Werkzeuge kaufen und können es für jeden Zweck einsetzen.
Wenn Sie mit Python arbeiten, kommen Sie mit verschiedenen Konzepten (Prozedurale Programmierung, Objekt-Orientierte Programmierung, Funktionale Programmierung) in Berührung. Aber keine Angst: Ein Informatikstudium ist nicht notwendig. Im Gegenteil, die Sprache steht in dem Ruf, besonders einsteigerfreundlich zu sein. Probieren Sie es einfach.
Varianten
Jetzt wird es konkret: Worin unterscheidet sich Python von anderen Sprachen?
Python wird nicht kompiliert und gelinkt wie die Lowlevel Sprache C, es wird – ähnlich wie Java – in einen Zwischencode (Byte-Code) übersetzt und dann interpretiert. Damit ist es nicht so flink wie C, kann aber in Sachen Ausführungsgeschwindigkeit mit Perl, Ruby, PHP und Java allemal mithalten.
Sollten Performance-Fragen oberste Priorität haben, kann man Python mit eigenen C-Modulen bereichern. Ein spannendes Thema, wenn auch nicht gerade für Einsteiger geeignet. In diesem Kontext lohnt die Beschäftigung mit Pyrex (http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/).
Mit Pyrex lassen sich C-Typen (wie int) und Python-Typen problemlos mischen; danach wird das Ganze zu einer C-Erweiterung für den Interpreter kompiliert. Auf der Web-Seite finden Neugierige alle notwendigen Informationen nebst Beispielen. Und wenn wir schon beim Thema sind: Man kann Python nicht nur erweitern, sondern den Interpreter in andere Sprachen, wie Java und C++, einbetten.
Übrigens existiert überdies eine Python-Implementierung in Java (http://www.jython.org). Was ist darunter zu verstehen? Sie erhalten in ihren Python-Programmen vollen Zugriff auf die Java-Klassenbibliotheken (JDBC oder Swing).
PHP hat als Server-Erweiterung Popularität erlangt; mit Python kann man aber auch robuste Applikationen schreiben. Schauen Sie sich mal nach Zope (http://www.zope.org, http://www.zope.com), Eric (http://www.die-offenbachs.de/detlev/eric3.html) oder Wing IDE (http://archaeopteryx.com) um. Auf der Python-Seite finden Sie weitere Tipps und Anregungen.
Geheimwaffe
Wer arbeitet eigentlich mit Python? Mittlerweile nutzen viele Unternehmen die beliebte Sprache. Da wäre Industrial Light & Magic (“Shrek”), die Python unter anderem für Animationen einsetzen.
Google, Yahoo und Inktomi (weiland als Infoseek bekannt) nutzen Python für ihre komplexen Suchmaschinen und für administrative Zwecke, IBM und Microsoft arbeiten in manchen Bereichen ebenfalls mit Python.
Die amerikanische Firma Red Hat nutzt Python für die Installation/Konfiguration und für das Package-Management ihrer Distributionen, Disney Feature Length Animation verwendet Python für den Animations-Herstellungsprozess.
Für den wissenschaftlichen Bereich sei stellvertretend die NASA genannt, die Python für verschiedene Projekte nutzt (unter anderem für ein internes CAD/CAM-System). Rechnet man Zope (ein Content-Management System, es ist in Python und C geschrieben) dazu, wird die Liste noch umfangreicher, woraus sich ersehen lässt, dass sich Python für sehr unterschiedlichste Anwendungsbereiche eignet.
Anwendungsgebiete
Aus dem bereits Gesagten geht es hervor: Mit Python können Sie wirklich sehr viel machen. Eine Ausnahme ist die Entwicklung von Echtzeit-Anwendungen oder von Treibern; dass sind klassische Domänen für C und Assembler. Wobei sich auf diesem Sektor in Zukunft Einiges tun könnte. Vielversprechende Projekte wie Psyco und Minimal Python sind ambitionierte Versuche, die Performance Pythons erheblich zu verbessern.
Aber sonst ist vom Wegwerfskript, der Internet-Programmierung inklusive Datenbankanbindung sowie der XML Verarbeitung, bis hin zur Entwicklung grafischer Oberflächen, alles drin – der Aufwand ist bei weitem geringer als bei Sprachen wie Java oder C/ C++, da Python-Code, dank der klaren Syntax, einfach besser wartbar ist. Ist ja auch klar: Weniger Quelltext lässt sich besser überschauen.
Python bietet desweiteren Bindings zu bekannten Grafik-Bibliotheken wie Qt (PyQt), Gtk (PyGtk), Tk (Tkinter) und wxWindows (wxPython).
Für server-seitiges Skripting, dass Einbetten von Pythoncode in HTML, steht mit SPYCE (http://spyce.sourceforge.net) ein effizientes Werkzeug zur Verfügung, dass immer beliebter wird und sich hinter PHP/ASP/JSP nicht verstecken muss.
Selbstverständlich existieren Module für die klassische CGI-Programmierung. Und Administratoren kommen ebenfalls auf ihre Kosten, denn Python eignet sich ebensogut wie Perl für die Aufgaben der Systemverwaltung, da Pythons Möglichkeiten der Textverarbeitung und seine Systemnähe keinen Vergleich zu scheuen brauchen.
Werkzeugkiste
Welche Werkzeuge braucht man, wenn man mit Python arbeiten will? Eine wichtige Quelle für Software sind die Vaults of Parnassus [2]; Ankündigungen neuer Applikationen (oder neuer Versionen bereits existierender Programme) findet man für gewöhnlich in der Newsgroup comp.lang.python.announce.
Doch stöbern Sie zuerst in ihrer Distribution: Da sind schon interessante Programme zu finden (im Verzeichnis Tools der Python-Distribution). Denn mit jeder Distribution erhalten Sie die Entwicklungsumgebung IDLE (ins Verzeichnis Tools/idle wechseln, dann auf der Shell python idle.py eingeben). IDLE ist ein einfacher Editor, mit dem man aber sofort loslegen kann.
Die Bedienung ist intuitiv und selbsterklärend und für kleine Aufgaben braucht man meistens nicht mehr. Weiterhin ist die interaktive Shell ein unentbehrliches Hilfsmittel für den Entwickler. Hiermit lassen sich Code-Schnipsel interaktiv testen, dass spart selbstredend viel Zeit beim Entwickeln.
Mit dem simplen Aufruf von python (auf der Shell) erhalten Sie Zugriff. Falls Sie Python 2.2 installiert haben, geben Sie erst python auf der Shell ein und dann:
>>>import this
Was Sie zu Gesicht bekommen, sind ein paar Goldene Regeln (Zen of Python). Es lohnt, sie zu lesen und zu beherzigen.
Auch soll erwähnt werden, dass natürlich kommerzielle Entwicklungsumgebungen wie Komodo (http://www.activestate.com/) oder Black Adder (http://www.thekompany.com/products/blackadder/) angeboten werden. Dafür muss man Geld auf den Tisch legen; wenn ein wichtiges Projekt ansteht, ist es sinnvoll, darüber nachzudenken.
Schlussendlich soll der Klassiker unter den Editoren zu seinem Recht kommen, der XEmacs. Wie sollte es anders sein, der XEmacs verfügt über einen eingebauten Python-Mode. Das bedeutet, dass der XEmacs Python Quelldateien automatisch erkennt und den Code einfärbt. Experimentieren Sie, es lohnt sich. Ein weiteres nützliches Tool ist der PyChecker (http://pychecker.sourceforge.net/). Wie der Name impliziert, prüft dieses Werkzeug Python-Dateien auf Syntaxfehler.
Fazit
Es gäbe beileibe mehr zu sagen, auch über die engagierte Community, aber der Platz ist knapp. Generell ist http://www.python.org ein guter Startpunkt. Alles was in der Python-Welt von Bedeutung ist, finden Sie dort: Einsteiger-Tutorials, wichtige Links, Events, Büchertipps, die Special Interest Groups und die Python Enhancement Proposals (Verbesserungsvorschläge) Und und und. Unten finden Sie eine kleine Auswahl an Links und Büchern.
Infos
[1] http://www.python.org [Das Hauptquartier der Pythonistas
[2] http://htpp://www.vex.net/parnassus/ Python Software
[3] http://python.delta-c.de Kais Python Site
[4] http://www.schockwellenreiter.de Der Schockwellenreiter
[5] http://www.python.de Die deutsche Python Site
[6] http://starship.python.net/ Die Community
[7] http://www.python-in-business.org Business
[8] http://www.stackless.com Stackless Python
[9] http://www.pyzine.com Das Python Journal






