"Ruby on Rails" oder "Django with Python"

Einführung

 

Die Entwicklung von Webanwendungen wird heute stark durch Frameworks geprägt. Sie ermöglichen es dem Entwickler sich verstärkt auf die eigentliche Aufgabenstellung zu konzentrieren.

Ruby on Rails ("Rails") ist das Webdevelopment-Framework von Ruby und geniesst auch ausserhalb der Ruby-Gemeinde einen guten Ruf als technologisch fortschrittliche, hoch produktive Entwicklungsumgebung. Was Rails für Ruby ist Django für Python. Dennoch ist Django kein Rails Clone sondern eine eigenständige Lösung für eine ähnliche Zielgruppe.

Aufgrund von Internetstatistiken kan man abschätzen, dass im Jahr 2007 Python etwa vier mal häufiger verwendet wird als Ruby, Rails aber sechs mal mehr als Django. Im Vergleich zu Java und J2EE sind beide Frameworks noch jung und sind erst daran, sich auf dem Markt zu etablieren.

Die Gegenüberstellung soll Programmierern eine Entscheidungshilfe sein, welche ihre eigenen Webanwendungen schreiben wollen und dazu das für sie best geeignete Framework evaluieren.

 

Gegenüberstellung

Django and Rails sind beides Lösungen für eine vergleichbare Aufgabenstellung, bieten eine vergleichbare Architektur und einen ähnlichen Lösungsweg. Ist jemand schon mit einer der Sprachen Python oder Ruby vertraut, so fährt er gut von diesem Wissen zu profitieren und auf das assoziierte Framework zu setzen.

 

Für Leute die weder mit Ruby noch mit Python vertraut sind (oder mit beiden), kann die tabellarische Gegnüberstellung helfen, für seinen Typ von Anwendungen das für ihn geeignete Framework zu finden:

Eigenschaft
Rails
Django
Modellgenerierung aufgrund DB-Schema Teil des Entwicklungsmodells Modell-Definitionen der Applikation bestimmen DB-Schema
Internationalisierung Rudimentär Basisunterstützung (Unicode, GNU gettext)
Designerfreundliche Templates Bei disziplinierter Programmierung oder unter Verwendung von Werkzeugen Dritter Gute Unterstützung von Nichtprogrammierern
Admin-Interface Über Plugins (AutoAdmin Generisch
Plugin Support Ausgereift und oft verwendet Vorhanden
JavaScript und AJAX Prototype und Scriptaculous Teil von Rails. Einfache Nutzung über RJS Framework An den Programmierer respektive Bibliotheken dritter delegiert
Programmierstil Prägnant (viele Konventionen) Explizit
Primärer Fokus Generische Applikationen Kundenspzifische CMS-Lösungen
Relative Geschwindigkeit Gut Vielleicht 15% schneller als Rails
GIS-Support GeoRuby GeoDjango, Mapnik, PyWPS, pyshapelib, Shapely

Aktuelle Grenzen

Die Herausforderung besteht darin, die agile Entwicklungsarbeit mit den klassischen Zielen des Projektmanagement - Planbarkeit von Resourcen, Zeit und Projektzielen - erfolgreich zu verbinden. Bei der parallelen Unterstützung mehrerer Datenbanken, gar mehrerer Write-Master, stossen die Lösungen, aber nicht nur die beiden hier gegenübergestellten, an ihre Grenzen. Auch die Unterstützung höherer Datenbanktechnologie wie Stored Procedures lassen sich nicht generisch zusprechen.

Nach Oben