Mod-python, Frameworks und Webentwicklung
Immer wieder erlebt man den schon fast religiös ausgetragenen Konflikt der unterschiedlichen Programmiersprachen, Systeme und Ansätze. Deshalb möchte ich bezüglich Python ein paar Fakten auflisten.
mod-python ist kein Framework
Es wurde nie als solches entwickelt und wer ein Framework braucht um Webseiten zu erstellen der sollte auf andere Produkte zurückgreifen: WebFrameworks. Wenn man sich für ein Framework entschieden hat, dann ist man meist dadurch bereits auf eine Technologie im Webserver festgelegt.
Caching Effekte
Häufig kritisiert werden caching Effekte bei mod-python. Dazu ein Auszug aus der FAQ:
Global objects live inside mod_python for the life of the apache process, which in general is much longer than the life of a single request. This means if you expect a global variable to be initialised every time you will be surprised.
Dadurch wird der Apache, insb. der Python Prozess gerne mal ziemlich aufgeblasen. Allerdings kann man das auch gezielt ausnutzen. Beispiele dafür sind Objekt Pools (z.B.: MySQL Verbindungen), oder große Datenmengen die nur einmal initialisiert werden müssen. Natürlich muss man dazu wissen was man vorhat, da dadurch Nutzer übergreifender Zugriff auf Daten möglich sein kann.
Versionssalat
Das ist leider ein sehr unangenehmes Thema. Besonders bei Benutzung weiterer Bibliotheken, z.B. der MySQL Anbindung gibt es immer wieder Probleme mit nicht kompatiblen Versionen. Dazu sei folgendes erwähnt: durch die Nutzung von subprocess kann die Prozesssperre von Python umgangen werden und es können mehrere Python Prozesse, auch unterschiedlicher Versionen, miteinander kommunizieren.
Frontend – Backend Trennung
Jeder sollte sich bewusst sein, dass ein gekapseltes Backend einige Vorteile bringt: Änderungen an der Logik erfordern keine Änderung des Frontends, die Technik bleibt dem Anwender verborgen, er sieht nur http://domain/mehtode.py. Damit meine ich explizit nicht den Nutzer. Via Python kann ich bereits für Programmierer eine API zur Verfügung stellen auf deren Quellcode sie keinen Zugriff haben.
Tatsächlich gehört mod-python zu Software deren Einsatz wirklich nur dann möglich ist wenn man weiß was man macht, allerdings entfaltet sie damit auch erst ihre Mächtigkeit. Die hier genannten Probleme sind alle nicht von der Hand zu weisen. Falls ihr aber einen Anwendungsfall für mod-python habt, könnt ihr alle diese Probleme auch tatsächlich lösen ohne großen Mehraufwand.
About the Author
Computer sollen uns in Beruf und Alltag unterstützen. Damit das funktioniert müssen wir einen einfachen und intuitiven Zugang zu unseren Programmen, Daten und Systemen haben.