Meine erste Assoziation zu “Web-Framework” ist das Sprichwort: “Wer die Wahl hat, hat die Qual.” Dazu eine Liste auf Wikipedia: Webframeworks.
Seit Monaten installiere und teste ich die verschiedensten Entwicklungsumgebungen. Da fällt mir gerade ein, dass ich vor etwa 15 Jahren ein EDV-Kolleg besuchte und als Projekt hatte ich eine Entwicklungsumgebung für x86-Assembler vor. Da habe ich auch noch gerne mit Microcontroller (BASIC Stamp … ) gespielt und gelernt, dass man keine Programmiersprache lernt, sondern nur die Programmierlogik. Das heißt ich habe mich gleichermaßen mit Programmierlogik für die prozedurale Programmierung (Speicherbelegung, Flußdiagramm und v.a. Struktogramme; Umsetzung in C, Cobol, Assembler) und für die damals gerade kommende OOP (UML, Klassen, OO-Prinzipien, … mit Umsetzung in Java, Smalltalk, C++) herum geschlagen. JavaScript war vor Jahren ein nettes Spielzeug mit dem man aber in der Praxis nicht viel anfangen konnte, da vor den Web 2.0 Hype clientseitig praktisch nichts machbar war. Erst Google, MS, Yahoo und Co. sorgten dafür, dass heute fast jeder Ajax akzeptiert (ist ja auch die Standardeinstellung im IE) und damit und mit dem unglaublich rasant wachsendem Internet und der, damit verbundenen Zunahme an Webapplikationen entstanden neue Anforderungen an die Entwicklungswerkzeuge. Obwohl den Informatikern bereits bessere Prinzipien bekannt hätten sein sollen, begann man bei Webanwendungen wieder mit einem Mischmasch, wobei man versuchte, in einem Quirksmode die Logik für die Anwendung, die Datenbankanbindung, die Darstellung usw. an ein und derselben Stelle, z.B. einem PHP-file oder irgend einer anderen Active-Server-Page zu bearbeiten. Dann besann man sich und begann auch hier mit einer Trennung der Logik von Daten und Anzeige, was über diverse Template-Engines und Abstraktionen für die Datenbanken (ORMs) schließlich zu den Webframeworks.
Auf meinem Erkundungszug las ich über Vor- und Nachteile dieser und immer wieder begegnete mir die lächerliche Diskussion darüber, welches Framework und welche Programmier- bzw. Scriptsprache besser sei. Es ist mühsam, sich auf diese Art zu informieren und wenn ich hier einen Kommentar bekommen sollte, der in diese Richtung geht werde ich ihn mit Vergnügen löschen, da ich noch keine gute Internet_Inhalt_garbage_funktion habe, die das automatisiert für mich erledigen könnte.
Dazu ein Vergleich:
Programmiersprachen und Webframeworks sind Werkzeuge. Wenn mir jemand erklären will, welches Werkzeug das Beste ist, muss er zumindest selbst bessere Werkzeuge herstellen können. Das heißt, es kann nur darum gehen, zu welchen Zweck jemand am liebsten dieses oder jenes Werkzeug einsetzt um zum fertigen Werkstück zu kommen. Zeig mir dein Werkstück und ich sage dir wer du bist, ähm, ich meine natürlich, ich sage dir, welches Werkzeug du verwendet hast. Genau wenn das funktioniert, ist entweder das Werkzeug schlecht oder es wurde falsch eingesetzt und wurde selbst zum Werk, bzw. zu einem Teil davon. Noch ein Vergleich: “Wenn ein Maler sein Kunstwerk nicht umsetzten kann, weil er dazu nicht den richtigen Pinsel hat, entsteht vielleicht trotzdem ein Kunstwerk, aber es trägt die Handschrift des Werkzeugs und nicht die des Künstlers. ”
Ich schreibe mir hier einige persönliche Erfahrungen mit den verschiedenen Webframeworks auf, sammle Links dazu, hoffe auf ein paar Stimmen in der Umfrage und über eigene Erfahrungen als Kommentar freute ich mich ganz besonders.
Bis jetzt habe ich mich mit Symphony, Django, Web2py und Ruby on Rails gespielt, wobei ich immer den Apachen und MySQL auf Debian zur Zusammenarbeit überredet habe, da ich mich für den Vergleich wenigstens auf zwei gemeinsame Komponenten verlassen möchte. Es ist natürlich vorteilhaft, wenn man nicht an einen bestimmten Web- und Datenbankserver gebunden ist, aber für meine Bedürfnisse (private Spielerei eines Hobby-Coders, nur aus Interesse) ist die Grundvoraussetzung, dass das Webframework relativ einfach in genannter Umgebung verwendet werden kann. Dazu noch ein Vergleich, ich möchte nicht vorher Materialwissenschaften (also Chemie, Physik, Ingenieurwesen, Mineralogie, Kristallographie und Petrologie) studieren müssen, damit ich einen Hammer verwenden kann, mit dem ich mir dann doch die Finger zerquetsche, weil der Holzstil aus dem Metallkopf rutschte.