Rapid Application Development
Eine der wichtigsten Kompetenzen der IT-Branche im sog. Web2.0 ist - neben der Implementierung von interaktiven Inhalten - sicherlich das Rapid Application Development. Nur die Unternehmen, die schnell auf veränderte Umstände reagieren können, werden in der Lage sein, auf dem Markt zu bestehen.
Gerade für diese Anforderung haben sich bereits in den letzten Jahren sog. Frameworks entwickelt, die dem Programmierer viele Routinearbeiten abnehmen sollen. Mit den aktuellen Anforderungen der Webentwicklung und dem Wissen in der Chefetage über diese Möglichkeiten, erfahren diese Frameworks einen regelrechten Boom.
Aktuell existieren sehr viele in PHP geschriebenen Applikationen, die “from the scratch”, also ohne irgendwelche Hilfen, erstellt wurden.
Gerade bei PHP neigt man als Programmierer sehr leicht dazu, Code doppelt anzulegen. PHP-Code ist in seltenen Fällen und nur mit hoher Selbstdisziplin gut lesbar und verständlich aufzubauen und damit insgesamt eher etwas schwerfälliger zu warten. Dies ist aber nicht zuletzt auch durch die allgemeine Struktur der Sprache selbst bedingt.
Inzwischen gibt es allerdings auch für PHP diverse Frameworks, die anderen erfolgreichen Systemen nachempfunden sind. Symfony und CakePHP verfolgen somit auch das MVC-Konzept, abgeguckt vom Shooting-Star Ruby on Rails.
Problem ist allerdings hier, daß die Benchmarks für diese PHP-basierten Systeme so schlecht sind, daß man diese nicht unbedingt für große Websites nutzen sollte. Aber selbst wenn auch nur kleinere Websites erstellt werden müssen, sollte man sich überlegen, ob nicht ein Wechsel zu einer anderen (Script-)Sprache eine lohnende Investition in die Zukunft sein könnte: Die wirklich ernst zunehmenden Frameworks basieren auf Python und Ruby.
Info: Die meisten Frameworks orientieren sich am MVC-Konzept. Damit ist die Trennung von Model, View und Controller (also Programmlogik, Reaktion und Aufbereitung von Inhalten und die HTML-Ausgabe) gemeint. Weitere Infos hierzu auch unter http://de.wikipedia.org/wiki/Model_View_Controller. Alle im Folgenden beschriebenen Frameworks sind Open Source und stehen zum freien Download zur Verfügung.
1. Python-Frameworks
Aus dem Python-Lager gibt es 2 sehr interessante Frameworks: Zope/Plone und Django.
1.1 Zope/Plone
Zope ist eigentlich ein Application Server, der weitestgehend in Python geschrieben wurde. Aus Performancegründen wurden einige Teile in C+ verfasst. Zope kann damit ohne einen Apache-Server laufen. Wenn gewünscht kann man aber auch zope_mod für Apache installieren, sodass Apache die Zope-Objekte ausliefert.
Auf Zope setzt nun Plone auf, welches Zope um ein Content Management Framework erweitert. Neben den Features, die ein CMS mitbringt, können hier nun auch einige Konzepte des Rapid Application Developments angewendet werden. So kann bspw. eine Datenbank-Struktur in ArgoUML definiert, in XML-Format exportiert und in Plone importiert werden. Anschließend hat Plone das definierte Datenbank-Layout erstellt und bereits ein passendes Frontend/Backend erstellt, welches sich nun nach belieben modifizieren lässt.
Das System ist insgesamt recht flexibel und leicht erweiterbar. Zu beachten ist jedoch, daß die Performance - gerade bei froßen Internetpräsenzen - recht schwach ist. Man muss in einem solchen Fall also mit einer hardwareseitigen Skalierung rechnen, was aber laut Entwickler ohne Probleme möglich ist. Aber auch Beispiele aus der Praxis zeigen, dass es hier keine Probleme geben sollte. Die Lufthansa, das Magazin “Die Zeit”, die NASA und viele andere Unternehmen nutzen Zope/Plone sehr erfolgreich.
Für Zope/Plone spricht das ausgeklügelte Sicherheitskonzept, welches man quasi “out of the box” zusätzlich erhält.
1.2 Django
Django ist ein relativ junges Framework, welches zum jetzigen Zeitpunkt noch nicht die Version 1.0 erreicht hat. Obwohl es sich also noch im Beta-Stadium befindet, läuft es bereits recht stabil und wird ebenfalls von einigen großen Sites, wie z.B. von einigen amerikanischen Verlagen, genutzt. Django ist ingesamt wesentlich schneller als Zope/Plone. Das verwundert allerdings auch nicht, da Zope/Plone wesentlich mehr Komponenten bereitstellt und eigentlich ja auch mehr als CMS auftritt.
Django nutzt ebenfalls das MVC-Konzept, allerdings recht locker und nicht so streng, wie das bei der im folgenden beschriebenen Konkurrenz der Fall ist.
Für Django liegt das zur Zeit geringste Literatur-Angebot der hier vorgestellten Frameworks vor.
2. Ruby-Framework
Basierend auf der Scriptsprache Ruby erblickte Ruby on Rails im Jahre 2004 das Licht der Welt. Entwickelt wurde und wird es von David Heinemeier Hansson (37signals.com), der die erste Version damals als Basis für eine Auftragsarbeit konzipierte. Ruby on Rails liegt aktuell in der Version 1.2.3 vor und wird inzwischen auch von größeren Projekten, wie z.B. Twitter, genutzt.
Ruby selbst ist eine sehr elegante und schlanke Sprache, die leicht zu lesen und einfach zu warten ist. Im Vergleich zu PHP zählen in Ruby on Rails erstellte Applikationen bis zu 90% weniger Codezeilen. Allerdings muss man dazu sagen, daß es sich ja bei Ruby on Rails um ein Framework handelt und der direkte PHP-Vergleich damit etwas hinkt. Aufgrund der Spracheigenschaften von Ruby kommt man aber auch beim Vergleich Ruby on Rails mit Symfony immer noch zu deutlichen Unterschieden.
Ruby on Rails bietet im Vergleich zu Django die ausgefeilteren Techniken für ein schnelles Entwickeln. Wer bspw. einmal mit ActiveRecord (Datenbank-Abstraktion) gearbeitet hat, möchte Datenbankzugriffe nie wieder anders programmieren. Allerdings ist auch Ruby on Rails langsam (zumindest momentan noch). Rechzeitige Überlegungen bzgl. der Skalierung sind also unbedingt notwendig.
Es bleibt also abzuwarten, wie sich die jeweiligen Systeme weiterentwickeln. Sicher scheint jedoch die zunehmende Bedeutung von Frameworks, die die Entwicklungsarbeit extrem beschleunigen und damit kostengünstiger machen können. Fehleranfällige Routinearbeiten gehören somit der Vergangenheit an. Nicht nur aus Sicht der Programmierer ist eine solche “Zeitverschwendung” eigentlich nicht einzusehen.
Jedes der Frameworks hat seine spezifischen Vor- und Nachteile. Letztenendes hängt es damit an den jeweils zu erfüllenden Anforderungen des Projektes. Eine allgemeingültige Aussage (”das ist das Beste”) läßt sich deshalb kaum treffen.
Geändert am: 11.09.2007
Einsortiert: Strategie, Programmierung | WONG IT
Navigation: Vorheriger Artikel / Nächster Artikel




Kommentare
(Bisher ein Kommentar)Tobias2 / 27.10.2007, 12:23
Sehr aufschlußreich und verständlich geschrieben. Danke!
Was denken Sie?