Ruby on Rails – Stand der Dinge

Ende Juli 2007 war Ruby on Rails genau drei Jahre alt. Angesichts der schnellen Verbreitung, die das Web-Framework hatte und hat, lohnt ein Blick auf die Erfolgsfaktoren.

vorlesen Druckansicht
Lesezeit: 18 Min.
Von
  • Thomas Baustert
  • Ralf Wirdemann
Inhaltsverzeichnis

Ruby on Rails ist ein Framework für die Entwicklung datenbankbasierter Webanwendungen in der Sprache Ruby. Mit Rails (oder RoR, wie es in Kurzform oft heißt) erstellte Anwendungen basieren auf einer reinen MVC-Architektur (Model View Controller) und kommen im Vergleich zu anderen Web-Frameworks ohne umfangreiche Konfigurationen und mit weniger Code aus. Die Entwicklung von Rails ist geprägt durch die Prinzipien "Konvention vor Konfiguration" und DRY (Don't Repeat Yourself). Rails bietet Support für Ajax, Webservices, Mailversand und berücksichtigt die einfache Testbarkeit der Anwendung von vornherein.

Als David Heinemeier Hansson 2004 das Framework aus der Projektmanagementsoftware Basecamp (der "Mutter" aller Rails-Anwendungen) extrahierte, ging es ihm nicht darum, ein neues Web-Framework zu erschaffen, das für alle Fälle geeignet ist und es jedem Recht macht. Zu oft haben sich gerade dadurch Frameworks als nur wenig handhabbar für die einfachen Dinge erwiesen. Vielmehr sollte Rails 80 % aller Fälle optimal abdecken und dafür die anderen 20 % unberücksichtigt lassen.

Diese Einschränkungen und die zugrunde liegenden Prinzipien gepaart mit der eleganten Programmiersprache Ruby machen Rails einfacher nutzbar als andere Web-Frameworks. Kein Wunder, dass es nach seinem Erscheinen für Begeisterung bei vielen gesorgt hat, die sich intensiv damit auseinandergesetzt hatten. Nur wenige Entwickler wollten danach wieder zurück zu PHP, ASP oder Java.

Allerdings sind Parallelen zum ersten Urteil über Java vor zehn Jahren zu erkennen: zu langsam, nicht genügend Bibliotheken, kein ausreichender Support oder zu wenige Entwickler. Galt es zu Beginn als "Spiel-Framework" für kleine Hobby-Anwendungen, hat sich die Meinung mittlerweile deutlich geändert. Selbst renommierte Unternehmen setzen auf Rails (siehe unten).

Ruby, Ruby on Rails sowie Werkzeuge für sie gibt es mittlerweile für alle gängigen Plattformen. Komplettpakete wie InstantRails für Windows oder Locomotive für Mac OS[†]X erleichtern die erste Kontaktaufnahme, zumal sie vollkommen autark arbeiten und keine Systemeinstellungen ändern. Der Ruby-Interpreter ist in C geschrieben und ermöglicht über natives Binden die Nutzung vieler C-Bibliotheken. Eine Unterstützung aller gängigen Datenbanken ist vorhanden (siehe die Onlinequellen).

Für ein Zusammenspiel mit Java gibt es unter anderen JRuby, das eine 100%ige Implementierung des Ruby-Interpreters in Java darstellt. Auf diese Weise können Entwickler aus einer Ruby-Anwendung heraus Java aufrufen – und umgekehrt. Sun hatte Mitte 2006 dafür die beiden ursprünglichen Entwickler Charles Nutter und Thomas Enebo eingestellt und so das Interesse an der Sprache signalisiert.

JRuby fördert die Integration von Ruby in der Java-Welt, obwohl die Grenzen und die Performanz im Einzelnen zu prüfen sind. Seit Ende August liegt die Version 1.0.1 vor, und ThoughtWorks hat schon seine Projektmanagementsoftware Mingle damit herausgebracht. Darüber hinaus stehen Alternativen wie YARV bereit. Ebenso gibt es mit Ruby.Net und RubyClr erste Interpreter für Windows (alle in den Onlinequellen zu finden). Für die Integration von Anwendungen in heterogenen Systemlandschaften über Webservices bietet Rails Unterstützung für SOAP/XML-RPC und REST. Bei Ersteren unterstützt es allerdings nicht den vollen Standard, und zukünftig wird sich Rails klar in Richtung des eng an HTTP angelehnten REST positionieren.

Bei den Werkzeugen hat der Trend zu Ruby und Rails ebenfalls fĂĽr Bewegung gesorgt. Neben dem Quasi-Standardeditor TextMate fĂĽr Macintosh (fĂĽr den es mittlerweile einen Windows-Clone mit Namen E Text Editor gibt) stellen IDEs wie Netbeans, IntelliJ, Visual Studio (Ruby in Steel), Eclipse, Aptana (RadRails) und andere zum Teil recht komfortable Plug-ins fĂĽr die Entwicklung bereit.

Während für andere Sprachen und Frameworks eine IDE eingesetzt wird, um den Entwickler von dem Aufwand für stupide XML-Konfiguration oder Codeerzeugung zu befreien, ist der Einsatz für Rails nicht zwingend notwendig. Eine professionelle Webanwendung lässt sich bei Rails mit einem einfachen Editor entwickeln.