Django vs. Plone

Django oder Plone? Erkundung des meistgeliebten Web Framework der Python-Welt.

Django wie Plone

Wie das? Gewiss nicht im Hinblick auf die Technologie, denn ein Vergleich von Django und Plone ist etwa so, als wolle man ein Rechenblatt mit einem DBMS vergleichen.

Trotzdem ist Django für mich wie Plone, wenn ich an die kritische Masse der Gemeinschaft denke, die beide Projekte haben vereinen können.

Das Ökosystem Plone kenne ich gut - es basiert auf einer echten Gemeinschaft, die viele der Sachen schaffen kann, die ich für meine Plone-Anwendungen brauche. Hier wird eine gemeinsame Richtung des Projekts beibehalten und Plone in Richtungen entwickelt, die für mich interessant und wertvoll sind.

Die Gemeinschaft von Django kenne ich weniger gut aber ich habe das Gefühl, dass es auch hier - wenn auch in anderer Form - eine Gemeinschaft gibt.

Darüber hinaus habe ich "entdeckt",  dass Django, genau wie Plone, Eigentum einer Stiftung ist, die extra zu diesem Zweck gegründet wurde.

Und so habe ich auch entdeckt, dass sich Tausende von Menschen auf der Webseite des "Django-Volkes" registriert haben und seit Kurzem bin ich auch dabei: http://djangopeople.net/miziodel/.

Es gibt auch eine Django Conference, zwar noch nicht auf dem Niveau der Conference Plone, aber es ist ein gutes Zeichen, dass es diese gibt.

Mehr als ein Web Framework...

Django ist ein Web Framework und das sagt viel über seine "Grundlagenfunktion". Es besitzt aber über Ergänzungen, die es auf Applikationsniveau ergänzen und damit lassen sich interessante Projekte machen.

Einige konkrete Beispiele? Für unsere Kunden arbeiten wir viel auf dem Sektor e-Commerce + Community. Das ließe sich alleine mit Plone nicht machen, denn viel der Entwicklung müsste von uns getragen werden.

Auch auf Django-Basis hätte ich ein paar Schwierigkeiten:

meiner Ansicht nach ist der Aufbau einer Community und in höherem Maß eines Systems für e-Commerce, die allein als wiederverwendbarer und flexibler Code aufgebaut sind und dabei auch noch robust und leistungsstark sind, ein Hirngespinst, wenn man alleine von den Grundlagen ausgehen will.

Es dauert lange, bis man den Code entwickelt hat und noch länger, um die Erfahrung zu sammeln, die man braucht, um die besten Lösungen zu erarbeiten.

Die Django Gemeinschaft hat ein paar Projekten ermöglicht, sich gut zu entwickeln und ich muss sagen, dass diese als Basis für unsere Anwendungen sehr nützlich waren: Pinax und Satchmo.

e-Business mit Satchmo

Satchmo ist ein konfigurierbares Framework um Online-Läden zu gestalten. Es gibt es seit über 3 Jahren und ein paar Dutzend Fallbeispiele. Hier findet man eine Reihe von bereits gelösten Problemen und lässt sich den eigenen Anforderungen anpassen.

Natürlich handelt es sich um einen Open Source Code (mit Lizenz BSD), mit aktuellen Unterlagen und einer anständigen Gruppe von Kontribuenten.

Sicher mussten wir es unseren Bedürfnissen anpassen, aber das lässt sich schnell und ohne Verluste erledigen. Ich werde in weiteren Post mehr darüber erzählen.

Das alles mit hervorragenden Resultaten, insbesondere wenn man diese mit der Arbeit vergleicht, welche die gleiche Lösung erfordert hätte, wenn man nur von Plone und dessen verschiedenen Erweiterungen ausgeht, die Plone zwar den eCommerce-Touch verleihen, der uns aber in diesem Fall nicht gereicht hat.

Community in Facebook-Stil mit Pinax

Pinax ist eine Django-Paketverteilung und zielt auf die Schaffung eines Community-Portals - eine Art Plattform auf der man seine eigenen Dienstleistungen aufbauen kann. Dabei werden die verfügbaren Basisbausteine aktiviert und manipuliert.

Unter den verschiedenen Funktionen gibt es die Anwenderregistrierung, Mail-Validierung, autonome Authentifizierung oder auf openOD basiertem Server beruhend, aber auch Blog, Inhalte, Anwendergruppen und vieles mehr.

Man muss allerdings verstehen, dass man kein Produkt, sondern eine Paketsuite hat: Pinax bietet eine Reihe von vordefinierten Projekte, die man sehr schnell als Ausgangsbasis für die eigene Anwendung benutzen kann.

Auch Pinax ist Open Source (wird mit MIT-Lizenz ausgegeben), mi ordentlich aufbereiteten Unterlagen und einer angemessenen Zahl von Kontribuenten.

Pinax hat sich wiederum als eine tolle Entdeckung erwiesen, so muss man das Rad nicht noch einmal erfinden und kann sich auf geteilte Patterns stützen, die bei Django recht flexibel sind.

Die gesparte Zeit kann nicht beziffert werden, aber bei unserem Projekt, das sich derzeit im Endtest befindet, haben wir die Community in kurzer Zeit aufgebaut, wenn man bedenkt, wie lange ich dafür mit Plone gebraucht hätte: Sie werden das selbst sehen, wenn das System online ist.

Einige Anmerkungen

Die Welt von Django ist noch ziemlich neu für mich und ich muss sie noch besser erkunden, um alle Schönheiten zu entdecken, die den Besuchern angeboten werden. Bis jetzt kann ich Folgendes sagen:

  • Wenn Sie Plone brauchen, dann benutzen Sie Plone! Es gibt keine andere Art und Weise, auf dessen Niveau im CMS zu kommen. ;)
  • Wenn Sie anfangen, mit Django zu arbeiten und Sie sind daran gewöhnt, Ihre Projekte mit Plone zu realisieren, dann bereiten Sie sich vor, dass Sie "programmatisch" vorgehen müssen, um die Sachen zu machen. Das Konzept der "Konfiguration" ist sehr wenig entwickelt.
  • Django hat seine sehr schätzenswerten Besonderheiten: Darüber spreche ich in den kommenden Post!
  • Django ist für Entwickler gedacht - da gibt es wenig Raum für diejenigen, die keine Entwickler sind. Entweder man wird dazu oder man erreicht schnell die Grenzen.

Teilen auf

Share |

Zu gleichen Themen

Kommentare

comments powered by Disqus