Als Web-Developer hat man die Qual der Wahl: Welche Script-Sprache lernt man? Welche eignet sich für die zukünftigen Projekte am Besten? Welches Framework erleichtert einem die Arbeit und nimmt einem lästige Basisarbeit ab? Dazu kommt noch, dass Script-Sprachen und Frameworks meist von Open-Source-Communities entwickelt werden. Hinter PHP steht neben der Open Source Community auch noch die Firma Zend als eine treibende Kraft. Es stellt sich also dazu noch die Frage: Welche Projekte entwickeln sich am besten weiter? Gegenüber der etablierten Lösung PHP entwickelt sich die Community insbesondere um das in der Scriptsprache Ruby geschriebene Framework Rails rasant und verspricht klares, strukturierte, elegantes und vor allem schnelles Coding. Welcher Weg ist daher der richtige?
Wenn man nach der aktuellen Verbreitung geht müsste man sich für PHP entscheiden – laut Zend arbeiten mehr als 4,5 Mio. Entwickler weltweit mit PHP. Auch die meisten aktiven Web-Open-Source Projekte arbeiten derzeit mit PHP als Scriptsprache: Joomla oder TYPO3 als Content-Management-Systeme, das Shopsystem osCommerce oder die Blogsoftware WordPress, mit der auch dieser Blog läuft, sind alle in PHP geschrieben worden. Auch ich bin so zu PHP gekommen, denn um diese Open-Source-Software einzusetzen und insbesondere um sie nach den eigenen Wünschen zu erweitern, kommt man um PHP nicht herum.
Wenn es allerdings um die Realisierung von neuartigen Softwarelösungen geht, die von Grund auf gecodet werden müssen, sieht die Welt bei genauerem Hinsehen etwas anders aus. Dann wird nämlich schnell klar, dass PHP als Scriptsprache zwar sehr mächtig ist, man als Entwickler jedoch viele wiederkehrende Herausforderungen immer wieder mit eigenem Code lösen muss. Viele dieser Probleme, wie die Datenbankanbindung, das URL-Mapping, den Umgang mit Sessions, die Authentifizierung von Nutzern oder das Caching von Inhalten sind für jede Webanwendung ähnlich. Jeder Entwickler kann sich so seine eigenen Lösungen basteln und versuchen diese Lösungen so zu verallgemeinern, dass er die Lösungen wiederverwenden kann … oder er nutzt ein Framework, bei dem einige Entwickler bzw. eine ganze Community diese Vorarbeit schon geleistet haben. Ein solches Framework entwickelt derzeit Zend für PHP5. Das Projekt hat in den letzten Monaten wieder Fahrt aufgenommen und das Zend Framework ist inzwischen bei dem Beta-Release 0.9.2 angekommen. Der erste Release Candidate 1.0.0 soll noch Mitte diesen Jahres erscheinen. Für den professionellen Einsatz ist das Framework derzeit daher noch mit mehr als Vorsicht zu genießen – bietet jedoch eine Fülle von Erleichterungen für die Entwicklung von Applikationen.
Bei der Beschäftigung mit dem Zend Framework bin ich immer wieder über „Ruby on Rails“ oder „the Rails way“ gestossen. Wie das immer so ist, weiss man im Nachhinein gar nicht, warum man sich mit dieser Technologie nicht schon viel früher befasst hat 😉 Denn die Vorteile sind auf den ersten Blick überwältigend: Mit Ruby on Rails, kurz RoR oder Rails, lassen sich elegant Applikationen in kurzer Zeit entwickeln. Der Code ist Dank der von Smalltalk inspirierten Sprache Ruby und intelligenten Konventionen für die Programmierung sehr einfach lesbar. Rails schafft es dank verschiedener Rapid-Prototyping-Mechanismen, wie dem Scaffolding in Migrations-Scripten für Datenbankveränderungen, Web-Applikationen on the fly zu entwickeln – ganz im Sinne des Agile Software Development.
Eleganterer Code, schnellere Entwicklung, Rapid Prototyping bei der Software Entwicklung … klingt alles wunderbar. Doch hat die Sache einen Haken, außer dass meine PHP-Bücher im Schrank verstauben? Und wieso nutzt dann nicht alle Welt Rails anstatt PHP?
- Rails ist noch jung … das Framework wurde erst 2004 von dem dänischen Programmierer David Heinemeier Hansson veröffentlicht. Doch die Community wächst rasant. Und man darf Rails nicht mit PHP vergleichen, sonder mit dem Zend Framework, dass sich derzeit noch im Betastadium befindet. Das ist also kein Nachteil, sondern ein Vorteil.
- Rails läuft nicht bei jedem Hoster … hier hat PHP derzeit natürlich die Nase vorne – denn PHP gehört inzwischen bei jedem ernst zu nehmenden Hoster mit dazu. Doch die Zahl der Shared-Hoster mit Rails-Unterstützung wächst. Für professionelle Projekte braucht man jedoch meist sowieso einen eigenen Server – und hier lässt sich Ruby on Rails problemlos installieren. Diesen Aspekt muss man sicher individuell abwägen.
- Rails hat derzeit eine geringere Performance … bestätigen viele Entwickler, allerdings ist eine Skalierung auch mehrere Server ohne Probleme möglich. Die extreme Reduzierung des Entwicklungsaufwands bedingt höhere Hardwareanforderungen. Das muss in der Projektplanung beachtet werden – ist jedoch in meinen Augen kein Nachteil.
Interessantes Detail der Ruby on Rails Community ist, dass viele der Entwickler auf dem Mac arbeiten. Und auch Apple begeistert sich für Ruby on Rails. Schon jetzt steckt in Mac OS X die Scriptsprache Ruby und mit Leopard (OS X 10.5) wird jeder Mac auch mit Rails ausgeliefert.
Die Entscheidung muss jeder Entwickler selbst treffen … Ich werde in nächster Zeit auf alle Fälle von meinen Erfahrungen in der Welt der Edelsteine und Schienen berichten.
So, let’s get on Rails 😉
Quellen: Agile Manifesto 2001, Ruby on Rails, Zend Framework
Hallo.. Bist Du jetzt zu einer Entscheidung gekommen?
Ich stehe gerade nämlich auch vor der Frage „Zend“ oder „Rails“. Wobei ich mehr Erfahrung in Rails gesammelt hab als in Zend. Die Geschwindigkeit von Rails hindert mich zur Zeit noch etwas am Einsatz. Ich würde in den nächsten Monaten eine Community aufziehen da ist Performance natürlich alles.
Gruß,
Synth
Hi Synth,
danke für die Nachfrage … die Anwort und mein Rat sind einfach nimm Ruby on Rails … die Begründung nehme ich in in Kürze zum Anlass für einen neuen Blogeintrag 😉
Im Steno-Stil: Ruby-on-Rails ist eleganter … besser lesbar … besser wartbar … verkürzt die Entwicklungszeit … lässt sich inzwischen prächtig skalieren.
Insbesondere für eine Community-Site, die immer wieder erweitert und verbessert werden soll würde ich daher unbedingt Ruby on Rails nehmen. Nicht umsonst migieren Qype und Xing zu Ruby on Rails 😉
aloha, hast du schon einen blogeintrag zu diesem thema verfasst? konnte leider bisher keinen entdecken.
mich interessiert deine meinung wirklich sehr da ich momentan überlege mich in ror einzuarbeiten nachdem ich jetzt schon seit fast 10 jahren php programmiere.
was auch interessant wäre was du für erfahrungen in sachen performance gemacht hast, sofern du darüber etwas sagen kannst.
Hi Ben & Synth,
… Euer Interesse ehrt mich 😉 Leider muss ich noch um ein kleines Bischen Geduld bitten … aber ich bin dran.