Das Zend Framework ist seit dem letzten Artikel zu der Entscheidung Zend oder Rails nach anfänglichem Stocken im Entwicklungsprozess bei Version 1.5 angekommen. Auch Ruby on Rails hat mit dem Sprung auf inzwischen Version 2.0.2 einen großen Sprung gemacht. Wer ist also mein persönlicher Sieger in diesem Rennen? Welches Framework eignet sich aus meiner Sicht am Besten für die Entwicklung von Web-Projekten.

Um es vorweg zu nehmen: Mein persönlicher Favorit ist Ruby on Rails!

Doch die brennende Frage ist natürlich das WARUM:

  • 1. Ruby statt PHP: Natürlich klingt es unlogisch die eigenen mühsam erarbeiten PHP-Kenntnisse links liegen zu lassen und sich in eine junge rein objektorientierte Sprache einzuarbeiten. Doch, und das bestätigte mir bisher jeder ehemalige Java- oder PHP-Entwickler – die Mühe ist nicht groß Ruby zu lernen und der Nutzen ist überwältigend. Ruby ermöglicht es eleganten, gut lesbaren und gut wartbaren Code zu schreiben.
  • 2. Vision-Driven-Community: Egal ob in den Mailing-Listen oder auf Entwickerkonferenzen, die Grundeinstellung und Vision der Community ist freundlich, ansteckend, international und produktiv. Es geht darum gemeinsam etwas neues, besseres und eleganteres zu schaffen … siehe auch die Keynote der RailsConf 2007 von David Heinemeier Hansson in Portland.
  • 3. Skalierbarkeit: Inzwischen wurde vielfach bewiesen, dass Rails-Applikationen sich gut skalieren lassen auch wenn die Performance etwas schlechter sein soll. Doch unter dem Strich braucht man so etwas mehr Hardware als bei einem Zend Framework Projekt, doch dafür gewinnt man eine schnellere Entwicklung und bessere Wartbarkeit. Twitter, Qype und Xing machen es vor. Insbesondere die Twitter-Entwickler plaudern gerne über die Skalierbarkeit, wie Britt Selvitelle auf der RailsConf Europe 2007 in Berlin.
  • 4. REST: Mit der Version 2.0 wurde die Programmierung nach dem REST-Prinzip konsequent im Ruby on Rails Framework implementiert. Damit lassen sich einfach Schnittstellen zu anderen Systemen schaffen – und werden alte, aber gute und durchdachte Features des http-Protokolls wiederentdeckt. Siehe auch das PDF von b-simple zum Thema RESTful-Rails.
  • 5. Datenbank-Migrationen: Rails bietet mit Migrations ein mächtiges System Datenbankstrukturen einfach und in Einzelschritten skriptbasiert zu erstellen – und, wenn nötig diese Einzelschritte auch wieder rückgängig zu machen. Für die Entwicklung nach dem Prinzip des „Pragmatic Programming“ ist das ein perfektes Werkzeug um Tabellen zu erstellen, zu erweitern und mit Daten zu füllen. Für das Zend Framework ist ein solches Feature als Proposal angedacht … doch wann es kommt und wie es funktionieren wird ist noch völlig unklar.
  • 6. Test-Driven-Development: Rails ist weiterhin Vorreiter was die eingebauten Test-Infrastruktur für automatisierte Unit-Tests, Functional-Tests und Integration-Test. Zend Framework versucht zwar mit dem ZFTestManager aufzuholen – doch noch immer fehlt eine schlüssige Integration in das Framework.
  • 7. MultiView: In Rails lassen sich Inhalte je nach Anfragetyp darstellen – sollen sie nun als CSV-Datei, RSS-Feed, HTML-Seite oder als spezielle iPhone-Seite Angezeigt werden – SlashDotDash zeigt wie man der eigenen Rails-Applikation ein iPhone-optimiertes User-Interface verpassen kann.

Bestimmte Projekte eignen sich allerdings nur bedingt für Rails:

  • … wenn die Applikation auf einem Shared-Hoste-Webspace laufen muss: Rails wurde zur Realisierung von professionellen Webapplikationen konzipiert. Ein einfaches Webspace-Paket bei einem Hoster wie 1und1 oder Strato eignet sich nicht für das Deployment einer Rails-Applikation. Shared-Hoster wie DreamHost bilden dabei eine Ausnahme. Allerdings gibt es inzwischen eine Reihe von speziellen Hostern die von der Privat- bis zur Enterprise-Lösung spezifische Hosting-Lösungen anbieten. Und natürlich läuft Rails bestens auf einem eigenen Server bzw. Root-Server. Ezra Zygmuntowicz, einer der Gründer von EngineYard, Bruce Tate und Clinton Begin plaudern in dem neuen Buch Deploying Rails Applications: A Step-by-Step Guide aus dem Nähkästchen.
  • … wenn die Applikation auf einem Windows Server laufen muss: Ruby on Rails wurde bisher für Unix-basierte Systeme optimiert. Das bedeutet, dass es schnell üblichen Web-Server-Infrastrukturen wie die verschiedenen Linux-Distributionen oder auch Mac OS X läuft. Auf einem Windows Server muss man jedoch mit einem Zentel der Performance rechnen. Daher ist ein Deployment auf einem Windows Server nur in kleinen Intranet-Installationen praktikabel.
  • … wenn man einfach nur mal schnell das aktuelle Datum auf einer statischen Website eingeblendet werden soll. Dann lohnt sich weder die Nutzung von Rails wie auch von Zend Framework. 😉
  • … wenn man als Entwickler kein Wort Englisch versteht. Zwar gibt es inzwischen eine ganze Reihe Rails-Büchern in deutscher Sprache. Doch ohne Englischkenntnisse fehlt der Anschluss zur internationalen Community und lassen sich die vielen Tips und Tricks, die in Blogs gepostet werden oder Screen-Casts wie Peepcode oder Railscasts nicht nutzen. Im Zweifel hilft da nur eines: Englisch lernen 😉

My2Cents

Share This