Verfasst: Dienstag 1. April 2008, 14:02
Mir scheint hier "Frameworks" etwas zu locker genommen zu werden. Als Web-Framework in der Python-Welt verstehe ich Pylons, TurboGears und Django. Alle bestehen aus Komponenten, die entweder (wie bei den ersten beiden) eigenständig sind oder nur im Rahmen des Frameworks erhältlich oder benutzbar sind (trifft für das Meiste bei Django zu).
Für Web-Entwicklung sollte man sich unbedingt Komponenten bedienen. Eine Template-Engine ist *immer* eine gute Idee, praktisch egal, wie wenig Code man erzeugt. Kommt eine Datenbank ins Spiel, entfaltet gerade SQLAlchemy seinen wahren Wert, weil es vom verwendeten DBMS abstrahiert (und damit ein Wechseln ermöglicht) und man kein SQL mehr schreiben muss (was oft sehr ähnlich aussieht, wenn es um die einfachen, gängigen Fälle simpler Abfragen geht), sondern sowas sehr kompakt, flexibel und einheitlich programmatisch in Python formulieren kann.
An weiteren Komponenten Fallen mir da solche für URL-Handling, Sessions, Caching, Formularauswertung und mehr ein.
Ein Framework trifft letztlich meist eine Vorauswahl aus solchen Komponenten und integriert diese mehr oder weniger stark mit ein wenig Glue-Code. Dies mag für 80% der Fälle eine Lösung sein, ist dennoch aber nicht die einzige. Die Komponenten einzeln zu verwenden oder selbst zu integrieren, ist meist sehr einfach und problemlos, dabei zugleich mit mehr Unabhängigkeit und Freiheit verbunden, etwa was Auswahl, Austausch und schrittweises Ergänzen angeht.
Ergo: Ohne Frameworks kommt man auch sehr gut aus, aber man sollte sich schon *sehr* (!) genau überlegen, ob man wirklich nicht auf Komponenten zurückgreift, die die gewollten Wege vereinfachen und optimieren. In Bezug auf eigene Lösungen sollte man sich im Klaren darüber sein, dass man damit praktisch nie an die Qualität von populären und täglich eingesetzten (Open Source-)Produkten heran kommt, die täglich mit Bugreports und Patches verbessert werden.
Für Web-Entwicklung sollte man sich unbedingt Komponenten bedienen. Eine Template-Engine ist *immer* eine gute Idee, praktisch egal, wie wenig Code man erzeugt. Kommt eine Datenbank ins Spiel, entfaltet gerade SQLAlchemy seinen wahren Wert, weil es vom verwendeten DBMS abstrahiert (und damit ein Wechseln ermöglicht) und man kein SQL mehr schreiben muss (was oft sehr ähnlich aussieht, wenn es um die einfachen, gängigen Fälle simpler Abfragen geht), sondern sowas sehr kompakt, flexibel und einheitlich programmatisch in Python formulieren kann.
An weiteren Komponenten Fallen mir da solche für URL-Handling, Sessions, Caching, Formularauswertung und mehr ein.
Ein Framework trifft letztlich meist eine Vorauswahl aus solchen Komponenten und integriert diese mehr oder weniger stark mit ein wenig Glue-Code. Dies mag für 80% der Fälle eine Lösung sein, ist dennoch aber nicht die einzige. Die Komponenten einzeln zu verwenden oder selbst zu integrieren, ist meist sehr einfach und problemlos, dabei zugleich mit mehr Unabhängigkeit und Freiheit verbunden, etwa was Auswahl, Austausch und schrittweises Ergänzen angeht.
Ergo: Ohne Frameworks kommt man auch sehr gut aus, aber man sollte sich schon *sehr* (!) genau überlegen, ob man wirklich nicht auf Komponenten zurückgreift, die die gewollten Wege vereinfachen und optimieren. In Bezug auf eigene Lösungen sollte man sich im Klaren darüber sein, dass man damit praktisch nie an die Qualität von populären und täglich eingesetzten (Open Source-)Produkten heran kommt, die täglich mit Bugreports und Patches verbessert werden.