Ich komme schon seit Wochen nicht mehr zum Bloggen, weil ich ein paar Projekte zuendebringen muss, bevor ich richtig ins neue Jahr starten kann. (Leider ist es nicht meine Stärke, Dinge abzuschließen.) Dabei arbeite ich mit Plone und mit Drupal. Ich frage mich manchmal, wie ein Vergleich dieser beiden Content Management Systeme aussehen würde.
Ich würde es — aus der Perspektive eines technisch interessierten Users, nicht eines Entwicklers — so sagen: Man kann mit Plone mehr anfangen, aber die Eintrittsschwelle liegt deutlich höher. Für Websites, bei denen man die Systeme einfach out-of-the-box verwenden kann, spielen die Unterschiede keine große Rolle. Wenn man aber eigene Inhaltstypen entwickeln und das Layout der Seiten kontrollieren möchte, unterscheiden sich die Systeme deutlich. Die Lernkurve bei Drupal ist viel flacher, führt aber wahrscheinlich auch nicht so hoch wie bei Plone.
Für mich ist vor allem interessant, wie schwierig es ist, neue Inhaltstypen zu entwickeln, und wie aufwändig es ist, Layouts anzupassen oder zu erstellen. Bei Drupal benutze ich dazu das Content Construction Kit. Damit ist es relativ einfach, Inhaltstypen zu erstellen, die aus verschiedenen Feldern bestehen. Man klickt sie sich im Grunde zusammen. Für Daten oder Feldtypen, die der Drupal-Kern nicht anbietet, z.B. für Bilder, kann man zusätzliche Module installieren. Um den Inhalt in Listen darzustellen, z.B. auf Überblicksseiten, benutzt man das Modul Views, bei dem man mit einer Art wizard Abfragen an die Datenbank erstellt, mit denen man die gewünschten Inhalte zusammenstellt. Für das Layout erstellt oder verändert man Templates; dabei präsentiert einem das Modul Contemplate die Variablen, über die man die Inhalte in das Template einfließen lässt. Für Leute die Angst vor Code haben, ist das zwar nicht geeignet, man braucht aber keine Kenntnisse in PHP (der Sprache, in der Drupal geschrieben) ist.
Ein Problem bei Drupal: Es gibt eine Vielzahl von Modulen, mit denen sich der bewusst schmal gehaltene Funktionsumfang des Drupal-Kerns erweitern lässt; und man braucht Zeit und vielleicht auch etwas Gespür um herauszubekommen, wie ausgereift die Module sind. Was die Module dabei in der Datenbank verändern, sieht man als Drupal-User nicht. Wahrscheinlich ist die beste Strategie, mit so wenig Modulen wie möglich auszukommen und bei denen, die man wirklich braucht, via Google herauszukriegen, welche Erfahrungen andere mit ihnen gemacht haben. Ich bin z.B. erst nach einiger Zeit darauf gekommen, dass man für Bilder in unterschiedlichen Größen wohl besser das Modul ImageCache als das gängigere Modul Image verwendet.
Bei Plone ist es nicht unbedingt schwieriger, neue Inhaltstypen zu erstellen, allerdings muss man entweder in den Python-Code eingreifen oder mit der Unified Modelling Language (UML) arbeiten — was sich anspruchsvoller anhört, als es nach meinen ersten Erfahrungen ist. Inhaltstypen bei Plone werden als so genannte Archetypes angelegt. Wenn man einen nicht bereits vorhandenen Inhaltstyp braucht — bei mir geht es um eine Datenbank mit Beschreibungen historischer Darstellungen des Fürstentums Anhalt — muss man entweder einen Archetype neu schreiben oder ihn mit einem UML-Tool entwickeln und den Code generieren lassen. Wenn ich es richtig sehe, ist der zweite Weg der übliche. Ich habe ArgoUML als UML-Software installiert; außerdem braucht man das Pytonmodul ArchGenXML, das aus einem als XML exportierten UML-Schema den Archetype bzw. mehrere aufeinander bezogene Archetypes produziert. Was einem UML und ArchGenXML leider nicht abnehmen, ist die Erstellung der Templates für die Oberfläche. Nach den Erfahrungen, die ich mit einem älteren Prototyp meines Projekts gemacht habe, muss man dazu die Zope-eigenen Template-Sprachen TAL und METAL verwenden. Was sich bei Plone 3, der neuesten Plone-Version verändert hat, kann ich noch nicht sagen.
Ich mache gerade zum ersten Mal Bekanntschaft mit einem UML-Tool und bin davon ziemlich fasziniert (wobei ich nur ein Minimum an UML verwende). Man kann mit UML — so weit bin ich allerdings noch nicht — auch ganze Workflows für Plone-Applikationen entwerfen und den Code automatisch erzeugen lassen. Ich vermute, dass dabei dann erst die eigentlichen Stärken von Plone zum Tragen kommen.
Was würde ich antworten, wenn mich jemand fragt, ob sie für ein Projekt Drupal oder Plone benutzen soll? Uns stellt sich das Problem gerade an der FH, wo eine neue Website für die Design-Studiengänge entwickelt wird (an die sich die in den Wirtschaftsfachbereich verbannten Journalisten hoffentlich anschließen dürfen). Ich würde — wie wahrscheinlich jeder andere auch — zuerst sagen, dass es auf das Projekt ankommt. Wenn die Sicherheitsarchitektur und Workflows eine grosse Rolle spielen, dürfte Zope/Plone das stärkere System sein. Wenn es allerdings um eine normale
Content-Site geht, würde ich die Entscheidung vor allem davon abhängig machen, wer die Site entwickelt. Stehen wirklich Coder zur Verfügung, die sich außerdem etwas mit Python auskennen (der Programmiersprache, in der Plone geschrieben ist), dürfte es letztlich einfacher sein, mit Plone zu arbeiten. Wenn es darum geht, mit etwas Grundwissen eine dynamische Website auf die Beine zu stellen (vor allem eine Community-orientierte), dann ist wohl eher Drupal zu empfehlen. Außerdem hat Drupal den Vorteil, dass PHP- und MySQL-Knowhow relativ weit verbreitet ist, während Python leider immer noch zu unbekannt ist, obwohl es — finde ich — die Programmiersprache für Nichtprogrammierer sein könnte.
Da ich nicht Coder unterrichte, sondern Journalistinnen und PR-Leute, frage ich mich natürlich auch, ob ich mich gerade in Dinge versteige, die mit meinem Job nichts mehr zu tun haben. Es klingt vielleicht abstrus: Aber für den Unterricht kann ich möglicherweise am ehesten UML verwenden. Ich könnte mir vorstellen, dass man damit auch Nichttechniker sehr gut in die Entwicklug von Websites/Webapplikationen einführen kann — aber das ist ein anderes Thema.
(PS: Ich bin auf diesem Gebiet noch mehr Dilettant als auf einigen anderen. Ich bitte also um Korrekturen, wenn ich Unsinn geschrieben habe.)