Allgemein (69)
Rating: 0 (0)


[b]Perl + Catalyst + DBIx + Template Toolkit[/b] Das Catalyst-Framework ist in der Perl-Gemeinde zum Erstellen von Webapplikationen recht beliebt und wird in der Regel mit der Datenbank-Abstraktion DBIx und der Template-Engine TT kombiniert. Seit gut einem Jahr bin ich gewungen, für ein großes kommerzielles Projekt diese Kombination zu benutzen. Hier ein paar Gedanken dazu: Catalyst: - Struktur: Gerade noch ok. An sich ist das MVC-Model recht gut umgesetzt und brauchbar, solange man sich an die gedanklichen Vorgaben des Systems hält. Will man aus dem Schema F ausbrechen, kommen die Probleme... - Dokumentation: Katastrophal! Von Perl-Modulen ist man eh einiges schlechtes gewöhnt und Catalyst macht hierbei keine Ausnahme. Die Dokumentation ist unübersichtlich, unvollständig und an vielen Stellen fehlerhaft. Es gibt einige Code-Beispiele, die aber nur sehr einfache Wünsche abdecken und kaum auf komplizierteres umzusetzen sind. Für Plugins wie das eingebaute DBIx und TT wird man auf deren Doku verwiesen, auf Catalyst-spezifische Besonderheiten wird aber kaum eingegangen. - Erweiterbarkeit: Katastrophal! Angeblich ist Catalyst sehr gut erweiterbar... nur ist nirgends anständig dokumentiert, WIE! Ohne ein gründliches Studium der Catalyst-Quellen kommt man nicht weit und die sind perl-typisch bis zum gehtnichtmehr obfuscated. Sogar langjährige Perl-Profis verzweifeln daran. - Performance und Resourcenverbrauch: Katastrophal! Catalyst läuft als Applikationsserver mit einem eigenen HTTP-Server, über mod_perl oder FastCGI. Die Runtime-Performance ist zwar an sich recht gut, für einen Applikationsserver aber enttäuschend. Der eingebaute HTTP-Server strotzt vor Fehlern. Die mod_perl-Variante bläst jeden Apache-Prozess auf geradezu lächerliche Speichergröße auf. FastCGI ist die einzig sinnvolle Möglichkeit, allerdings stellt sich hier das Problem, dass mod_fastcgi für Apache2 zumindest unter Linux ein absoluter Graus ist. Thema RAM: Der RAM-Verbrauch ist absolut unakzeptabel! Das von mir mitentwickelte Projekt verbraucht PRO PROZESS inzwischen über 100MB RAM! Zudem benötigt ein Restart des Applikationsservers über eine Minute, was die Entwicklung zäh wie Kaugummi macht (vor allem, da man vieles dank der schlechten Doku nur per Trial+Error herausfinden kann). DBIx: - Struktur: An sich ganz nett. Wer keine Ahnung von SQL hat und keine Lust hat, sich ein paar Stunden damit zu befassen, kommt mit DBIx schnell zu Ergebnissen. Allerdings steigt die anfangs flache Lernkurve schon bei mittelschweren Aufgaben stark an, kompliziertere Abfragen lassen sich auch nach wochenlangem Studium der Doku nicht lösen. Pfui! - Doku: Wie üblich katastrophal. Sie st unvöllständig, strotzt vor Fehlern und lässt kompliziertere Dinge einfach aus. - Performance: "DBIx is intended for ease of use, not for performance." Das sagt alles. Die überladene Objekt-Struktur führt bei größeren Datenmengen zu einer unakzeptablen Performance und ebenso unakzeptablem Resourcenverbrauch. [b]Fazit: FINGER WEG VON CATALYST![/b]