Dass Python im Vergleich zu PHP die schönere und auch flexiblere Sprache darstellt, war mir schon immer klar. Deshalb schreibe ich umfangreichere Cron-Jobs, manchmal auch kleine »Shell«-Scripte in Python.
Bei der Verwendung im Web ist Python bei mir jedoch –leider– sträflich vernachlässigt worden. Das liegt sicherlich an der Vielzahl möglicher Implementierungen (CGI, FastCGI, SCGI, mod_python, die dann über WSGI wieder zusammengeführt werden sollen) und an der damit einhergehenden Unsicherheit der meisten Hoster, aber auch an der Unsicherheit der Kunden, die von PHP bereits gehört haben, aber Python noch gar nicht kennen.
Alleine bin ich mit dieser Problematik auch nicht. Bei Hotscripts stehen 86 Python Programme/Scripts 11135 Scripte und Programme in PHP gegenüber – Knapp 130 mal mehr.
Dennoch ist Python im Web sehr gefragt. Es läuft schnell, stabil, hochgradig objektorientiert und verleitet nicht so sehr zur Vermischung von Code und Design wie PHP das tut. In großen Umgebungen ist Python längst zu Hause – wie Zope eindrucksvoll zeigt. Aber auch kleinere Anwendungen kann man in Python schreiben – meistens aber eben Individual-Anwendungen. Dafür gibt es in Python hervorragende Frameworks. Django und TurboGears beispielsweise. Auf dem Mac sind die beiden schnell installiert. Django habe ich gerade auch erfolgreich auf Dreamhost getestet – mit Apache und FastCGI.
Wenn ich mir die Frameworks dann im Detail genauer anschaue, weiß ich nicht, warum um RubyOnRails ein derartiger Wind gemacht wird, während Python immer noch fast ein Schattendasein fristen muss
Vielleicht liegt es wirklich an der Einstiegshürde der verschiedenen Möglichkeiten, mit dem Webserver zu kommunizieren. Bei Ruby ist es da einfacher: Es existiert zwar mod_ruby, aber die ganze Geschichte ist eher (Fast)CGI-zentriert. Und damit lässt sich auch die weite Verbreitung von PHP erklären: Als der Welt die CGI-Schnittstelle zu langsam wurde, wartete PHP mit einem schnellen Apache-Modul und einer rein auf die Webentwicklung ausgelegten Umgebung auf, die zudem noch leicht zu erlernen ist.