Ich hatte eigentlich vor den Artikel mit dem Titel “Neues Spielzeug” zu publizieren, aber als Spielzeug kann man Ruby on Rails, trotz seiner derzeitigen Version (1.1.6), nicht bezeichnen. Ich persönlich komme aus der Perl und PHP-Ecke, habe mit Ruby oder dem Framework Ruby on Rails erst durch meine jetzige Firma angefangen. Nach 2 Tagen Einarbeitung und dem ersten Programm, war ich schlichtweg begeistert wie einfach und logisch doch alles ist.
Ruby on Rails Features:
- Strukturiert: Ich bekomme eine feste Struktur vorgegeben, in der ich entwickeln kann.
- Koventionen: In Ruby on Rails gilt “Konvention über Konfiguration”. Im Gegensatz zu diversen Java-Frameworks wie z.B. Spring, muss man nicht erst ein paar Seiten XML schreiben, bevor es mit der Problemlösung losgeht.
- Modellierung: ORM ist bereits enthalten (genannt ActiveRecord) und die Klasseninhalte (das Mapping) wird automatisch erstellt.
- Deployment: Es wird anfänglich zwischen 3 Systemen unterschieden (development, test und production) und es können weitere hinzugefügt werden. Das macht es sehr einfach bestimmte Sachen zu Testen. Über Capistrano kann man dann ein das deployment zum Produktivsystem anstoßen.
- Migrationen: Für die Datenbank gibt es eine Migrationsstruktur. Wenn wir also eine neue Softwareversion mit Datenbankänderungen haben, so können wir Migrationsdateien (Up-, Downgrade) erstellen, die dann automatisch bei einem Deployment ausgeführt werden können.
- Dokumentation: Für sein System kann man eine komplette API-Dokumentation erstellen lassen. Hat man Graphviz und den Rails Application Visualizer installiert, gibt es sogar grafischen Relationsdiagramme.
Alles in allem, bekomme ich also eine komplette und vor allem durchdachte Entwicklungsumgebung an die Hand, in die ich mich nicht umständlich einarbeiten muss und die sich auf praktische Probleme konzentriert.
Hilfe
Die Ruby Community ist groß und es gibt [http://www.rubyonrails.org/docs reichlich Dokumentation] und auch fertige Plugins wie z.B. den SaltedLoginGenerator mit dem man in 5 Minuten (oder weniger) ein komplettes Authentifizierungsystem fertig hat.
Nachteile
Nachteile von Ruby on Rails sind mir bis jetzt noch nicht so aufgefallen. Es ist lediglich etwas schwierig deutsche Provider zu finden, die Rails-WebHosting (nicht Ruby WebHosting) anbieteten. Ich selbst kann es verstehen, da die Konfiguration im ISP Umfeld ggf. etwas schwierig ist. Meiner Meinung nach, liegt das Problem unter anderem am Einsatz von Apache als Webserver. Ruby on Rails + FastCGI haben bekannterweise Probleme unter Apache stabil zu laufen. Einen guten Artikel mit mehreren Lösungsvorschlägen gibt es von James Duncan Davidson.
Vor dem durchlesen dieses Artikel hatte ich ebenfalls daran gedacht, das Apache einfach als Proxy zu Lighttpd fungiert. Ein ISP braucht dann ggf. nicht die gesamte Infrastruktur umstellen oder Angst um die Stabilität des Apache zu haben.
Ruby versus Java
Ich halte generell nichts von solchen Glaubenskriegen und überlasse Euch die Meinungsbildung. Hier ein paar “Ruby versus Java”-Links.
- Ruby vs Smalltalk vs Objective-C vs C++ vs Java vs Python …
- Is Ruby Replacing Java? — Not So Fast
- Ruby vs. Java: A matter of taste
Videos und Potcasts zum Thema