PythonmaniaScript Different! |
|
|
Navigation
Artikel zu Python
Warum Python? Hallo Welt Wie alt ist der Kapitän? Schmetterlingskurve Apfelmännchen Dancing Python User-Agenten fakeMail() Template Engine Python & XML (1) wxPython (1) wxPython (2) wxPython (3) How To's ftp mit Python Filedialog Piddle und Mac OS X XML-RPC Blogger API Zope und Python ZWiki und Plone Navigation und DTML »Last Update« Book Reviews Python und Tkinter Python Cookbook Alte Artikel O'Reilly MacPython & Tkinter (d) MacPython & Tkinter (e) Modul W Easy Dialogs File Dialogs Archiv Oktober 2009 Juni 2009 Mai 2009 April 2009 März 2009 Februar 2009 Januar 2009 Dezember 2008 November 2008 Oktober 2008 September 2008 August 2008 Juli 2008 Juni 2008 Mai 2008 April 2008 März 2008 Februar 2008 Januar 2008 Dezember 2007 November 2007 Oktober 2007 September 2007 August 2007 Juli 2007 Juni 2007 Mai 2007 April 2007 März 2007 Februar 2007 Januar 2007 Dezember 2006 November 2006 Oktober 2006 September 2006 August 2006 Juli 2006 Juni 2006 Mai 2006 April 2006 März 2006 Februar 2006 Januar 2006 Dezember 2005 November 2005 Oktober 2005 September 2005 August 2005 Juli 2005 Juni 2005 Mai 2005 April 2005 März 2005 Februar 2005 |
Anzeigen
|
|
Warum Python?Python ist eine moderne, objektorientierte Programmiersprache. Sie wurde von Guido van Rossum entwickelt und nach der berühmten Comedy-Truppe "Monty Pythons Flying Circus" benannt (und nicht nach der - ebenfalls berühmten - Schlange) . Ja, warum Python?Python als Programmiersprache ist aus mehreren Gründen attraktiv. Zum einen lassen sich Programme in Python in der Regel bedeutend schneller entwickeln als in traditionellen Programmiersprachen wie C(++), Pascal oder auch Java. Zum andern ist es eine echte plattformunabhängige Sprache, die auf fast allen Betriebssysten vorhanden ist. Neben den Versionen für die "großen" Betriebssysteme Windows, Macintosh und Unix gibt es auch Versionen für OS/2, BeOS und viele andere »kleinere« Betriebssysteme. Mit Python lassen sich schnell und einfach kleine Programme entwickeln. Aber auch für große Entwicklungen ist Python aufgrund seiner Objektorienterung gut geeignet. Daher kann Python als »Rapid Application Development«-Tool (RAD) ebenso eingesetzt werden wie als Scriptsprache zur Systemverwaltung. Python ist von Anfang an konsequent objektorientiert entwickelt worden. Daher gibt es nicht die Ungereimtheiten, die traditionelle Sprachen mitbringen, denen die Objektorientierung erst nachträglich »aufgepfropft« wurde (C++, Object Pascal, Perl). Aber - im Gegensatz zu Java oder Smalltalk - wird niemand gezwungen, objektorientiert zu programmieren. Python ist - wie Oberon-2 - auch eine hervorragende prozedurale Programmiersprache. Irgendwie scheint Python auch Wurzeln im Bereich der Künstlichen Intelligenz zu haben. Funktionale Programmierkonstrukte, die Lisp, Scheme oder auch Mathematica beliebt gemacht haben, sind nämlich ebenfalls in Python integriert. Und Python bringt mit Tkinter ein mächtiges und leicht zu benutzendes Werkzeug zur Programmierung grafischer Benutzeroberflächen mit - und das ebenfalls plattformübergreifend. (Es soll nicht verschwiegen werden, daß es auch noch andere GUI-Tools für Python gibt (Wpy, WinPy oder das MacOS-Toolkit) - diese sind aber in der Regel nicht mehr plattformübergreifend und werden daher hier nicht behandelt). Und zum Schluß das Beste: Python ist freie Software, d.h. es ist kostenlos und im Sourcecode erhältlich. Python versus...
»Ich gebe Ihnen die zwanzig Prozent unten und die zwanzig Mit Python lässt sich fast alles programmieren, was das Programmiererherz begehrt. Nun gut, Device-Treiber werden wohl weiterhin in C programmiert werden und auch große numerische Berechnungen auf Supercomputern werden auch in Zukunft die Domäne von Fortran bleiben. Aber alles, was dazwischen liegt, und das sind sicher mehr als sechzig Prozent, läßt sich gut in Python erledigen. ...C(++), Pascal, Oberon und JavaProgrammierer, die schon einmal in C, Pascal, Java oder einer anderen traditionellen Sprache programmiert haben, werden es einfach finden, Python zu lernen. Alle Konstrukte klassischer, prozeduraler Programmiersprachen, wie etwa Schleifen oder Bedingungen sind vorhanden. Aber in Python ist alles etwas einfacher. Hier einige der wichtigsten Unterschiede.
Diese und andere Features von Python erlauben es, auch große Programme extrem schnell zu entwickeln. Auf der anderen Seite beruht die Flexibilität von Python darauf, daß zur Ausführung ein Interpreter benötigt wird. Ähnlich wie in Java ist es ein Bytecode-Interpreter - Python ist als eine semi-compilierende Sprache. Zwar sind einige der Bibliotheken, wie z.B. String-Parsing extrem optimiert und mindestens ebenso schnell (wenn nicht sogar schneller), als ähnliche C-Routinen, in den meisten Fällen sind Python-Programme langsamer als Programme in compilierten Sprachen. Jedoch ist für ca. 90 % der Applikationen die Geschwindigkeit irrelevant - die meiste Zeit verbringt das Programm damit, auf die Eingaben des Benutzers zu warten. Ich habe den Eindruck, daß Python zur Zeit schneller als Java ist - und Java wird für fast alles benutzt. ...Visual Basic, RealBasicVisual Basic (RealBasic auf dem Macintosh) verfolgt einen ganz anderen Ansatz. Der Programmierer »klickt« sich die Benutzeroberfläche auf dem Monitor zusammen und schreibt nur den Code für die programmspezifischen Teile. Da ich einige Jahre mit HyperCard gearbeitet habe, ist mir dieser Ansatz sympathisch. Daher habe ich zuerst mit RealBasic geliebäugelt, bevor ich micht für Python entschieden habe. Dafür gibt es im wesentlichen drei Gründe:
Eins vermisse ich jedoch schmerzlich. RealBasic bietet eine einfache Möglichkeit, auf das MIDI Musical Instruments Interface von QuickTime zuzugreifen und somit Töne zu programmieren. Wenn es so etwas plattformübergreifend und in Python gäbe ... ...Perl und Tcl/TkPerl und Tcl/Tk sind sicher die Sprachen, die die näheste Verwandschaft zu Python haben. Viele Python Programmierer haben früher in Perl programmiert, sich jedoch dann wegen der Klarheit und Eleganz für Python entschieden. Perl und Tcl/Tk waren ursrpünglich als Ersatz (und Weiterentwicklung) für UNIX-Shellscripte entworfen worden. (Wenn man Osterhout, dem Erfinder von Tcl/Tk glauben darf, stand beim Entwurf von Tcl/Tk HyperCard Pate.) Höhere Sprachkonstrukte sind erst nachträglich hinzugekommen und man merkt den dies den Sprachen an. So ist die Objektorientierung in Perl etwas merkwürdig, außerdem ist Perl voll von Seiteneffekten und magischen Variablen. Dies erlaubt es zwar, schnell ein kleines Script zusammenzuhacken, macht es in meinen Augen jedoch unbrauchbar für größere Projekte. Außerdem fehlt Perl eine plattformübergreifende GUI-Bibliothek (Perl/Tk ist nicht für den Mac verfügbar). Auf dem Gebiet der CGI-Programmierung ist Perl allerdings die mit Abstand meist genutzte Sprache und es gibt Mengen von freien Bibliotheken und Programmen gerade für diesen Zweck. Und auch die Regular Expressions von Perl sind so gut, daß sie, wenn auch mit Verspätung, seit der Version 1.5 in Python übernommen wurden. Tcl/Tk auf der anderen Seite ist die Sprache, die sich wie Python mit externen C-Prgrammen erweitern läßt oder es erlaubt, den Interpreter in C-Programmen einzubinden. Außerdem gibt es Tcl/Tk auf jeder Plattform auf der es auch Python gibt (schließlich benutzt Python ja die Tk-Bibliothek von Tcl . Tcl kennt jedoch nur einen Datentyp, den String, und ich persönlich finde die Syntax etwas krude. Das Angebot an Bibliotheken und zusätzlicher Software für GUI-Programmierung ist für Tcl/Tk (unter UNIX) zur Zeit noch größer als für Python. ...Lisp und SchemeLisp und Scheme sind die führenden funktionalen Sprachen und im Bereich der KI immer noch weit verbreitet. Mir reichen allerdings die funktionalen Konstrukte in Python völlig und in Lisp oder Scheme werde ich erst programmieren, wenn das Klammerschlußgesetz in Kraft getreten ist. (Um mir nicht den Zorn der Lispianer zuzuziehen: Dies ist natürlich eine rein persönliche Geschmacksfrage!) Und da selbst Mark Watson, einer der Scheme Gurus, zu Java geschwenkt ist... Woher nehmen und nicht stehlen?Die beste Anlaufstelle für alle Python betreffenden Fragen ist natürlich die Python Homepage. Hier gibt es Links zu den »Special Interst Groups« ebenso, wie Tutorials, Bibliotheken und sonstige Informationen zu Python. Und hier kann man natürlich legal und völlig kostenlos die jeweils neueste Version von Python herunterladen. Weitere Informationen zu Python kann man in folgenden Büchern erhalten:
Die den Büchern beiliegenden CD-Roms enthalten zum Teil allerdings veraltete Python-Versionen. Aktuell ist Version 2.0 und die Beispiele dieses Kurses habe ich mit der Version 2.0 für den Macintosh erstellt und unter 2.0 unter Windows 95 (auf einem Toshiba Libretto und Linux (SuSe Distribution 7.0) getestet. Da wir intensiv mit der Tk-Bibliothek für grafische Benutzeroberflächen arbeiten, sollten sie auf Ihrem Rechner auch Tcl/Tk in der neuesten Version installiert haben. Auf dem Mac erledigt der Installer das für Sie mit. InstallationAuf dem Macintosh ist die Installation sehr einfach. Sie wählen je nach Ihrem Macintosh aus, ob Sie die PPC oder die 68k-Version von Python vom Server ziehen wollen. (Falls Sie Ihren Mac in den letzten vier Jahren gekauft haben, ist es ein PowerMac und sie benötigen die PPC-Version . Nach dem Download müssen Sie zuerst (falls Ihr Downloadprogramm das nicht schon für Sie erledigt hat) die Datei mit StuffIt-Expander oder einem ähnlichen Programm entpacken entpacken. Danach erhalten Sie einen Installer, den Sie einfach doppelklicken. Den Rest erledigt der Installer für Sie - inklusive der bei früheren Distributionen noch notwendigen Konfiguration der SharedLibs. Auch unter Windows erledigt ein Installer die gesamte Arbeit für Sie. Aber auch hier müssen Sie mit WinZIP oder einem ähnlichen Programm die Distribution erst entpacken. Und unter Linux habe ich die Instalation mit dem SuSE-Paket Yast vorgenommen. Werbung: |
||