Eigentlich ist Ruby ja schon länger eine solide Sprache, aber als Software Entwickler spielt nicht nur die Sprache selber eine Rolle, sondern auch die Entwicklungsumgebung und die Integration und der Betrieb der Applikationen. Und gerade in diesen Punkten hat sich einiges getan in letzter Zeit.
IDE
Ist zwar im Ruby on Rails Umfeld die Verwendung von Textmate der Stand der Dinge (zumindestens bei den Rails Persönlichkeiten), ist der gelegentliche Ruby Entwickler doch manchmal froh um etwas Unterstützung durch eine intelligente IDE. Gerade die Code-Vervollständigung und auch einen integrierten Debugger können doch extrem hilfreich sein und die Entwicklungsgeschwindigkeit zusätzlich erhöhen.
Lange Zeit hatte man keine grosse Auswahl für eine IDE, neben Textmate wurden hauptsächlich die Plugins RDT und RadRails für Eclipse verwendet. Andere IDE’s der ersten Stunde wie Mondrian und FreeRIDE kamen nie richtig aus den Kinderschuhen heraus und werden nicht mehr aktiv weiterentwickelt. Kommerzielle Angebote wie Komodo IDE und Arachno Ruby IDE konnten mich selber nie richtig Überzeugen. Komodo IDE lief auf meinem Macintosh einfach zu langsam und beide machten noch nicht ganz einen ausgereiften Eindruck (Der Ehrlichkeit halber muss ich hier erwähnen, dass mein letzter Versuch mit diesen IDE’s doch schon etwa 6 Monate zurück liegt).
Seit RadRails von Aptana übernommen und auch Chris Williams, der Hauptentwickler von RDT, angestellt wurde, war Aptana lange Zeit meine erste Wahl. Aptana ist eine wirklich gute IDE die viel mehr bietet als nur Ruby und Rails. Gerade aber das war der Punkt für meine Suche nach einer anderen IDE, da nach der Einführung des AIR und iPhone Plugin die IDE viele kleine Fehler hatte und die Integration der Ruby spezifischen Plugins nicht wirklich schnell vonstatten ging.
Zur etwa gleicher Zeit war dann plötzlich DLTK in aller Munde, welches ein neuer Ansatz für die Verwendung von Script-Sprachen in Eclipse versprach. Die ersten Demos waren auch recht überzeugend, waren doch einige Features wie die Code-Vervollständigung und auch Code-Outline besser Implementiert. Jedoch beschränkt sich DLTK auf Ruby und die Rails Unterstützung kam nie in Fahrt. Dies hat nun CodeGears (die Borland IDE Abteilung) mit ihrem neuen Produkt 3rdRails nachgeholt. Ich frage mich jedoch, wer bereit ist 299$ für eine IDE auszugeben, welche nicht mehr bietet als andere freie Produkte.
Neben Eclipse haben nun auch andere Platzhirsche aus der Java IDE Welt Ruby Unterstützung in ihre Produkte integriert: Für IntelliJ gibt es ein Ruby Plugin, welches aber leider noch keinen Debugger beinhaltet. Leider kauft man hier eine vollständige Java IDE (eine wohlgemerkt sehr gute), welche Ruby eher nebenbei mitbringt. Eine billigere nur-Ruby Version würde wohl für mehr Leute interessant sein, die z.B. gar keine Java IDE benötigen.
Mein aktuelle Lieblings IDE für Ruby und Ruby on Rails ist NetBeans. Ehrlich gesagt mochte ich zu beginnt die IDE rein vom Aussehen nicht besonders gut. Nach ein paar Wochen Arbeit damit bin ich aber restlos überzeugt: Die IDE wirkt trotz ihres Beta Stadiums sehr ausgereift und bietet mir doch alles was ich für die Ruby on Rails Entwicklung brauche. Der von Sun angestellt Entwickler Tor Norbye berichtet auf seinem Blog über die Fortschritte der Netbeans Ruby Implementation. Neben der offiziellen Beta kann auch immer der aktuellste Build installiert werden. Sogar die bekannten TextMate Code Snippets sind verfügbar!
Es gibt auch noch einige IDE’s welche nur auf Windows laufen und die ich mangels Windows installation nie angeschaut habe: Ruby on Steel und RDE on Windows
Da jeder seine eigenen Vorlieben hat, ist es wohl unumgänglich sich selber ein Bild von einer IDE zu machen und eine gewisse Zeit damit zu Arbeiten. Hier ein Versuch einer Liste von verfügbaren Ruby IDE’s:
- 3rd Rails (kommerziell, Java)
- Arachno Ruby IDE (komerziell, Windows/Linux/MacOS)
- Aptana (gratis, Java)
- DLTK Plugin (gratis, Java)
- FreeRide (gratis, Ruby)
- IntelliJ (kommerziell, Java)
- Komodo IDE (komerziell, Windows/Linux/MacOS)
- Mondrian IDE (gratis, Ruby)
- NetBeans (gratis, Java)
- RDE on Windows (gratis, Windows)
- Ride Me (gratis, Windows)
- Ruby on Steel (komerziell, Windows)
IDE’s welche in Java bzw. Ruby erstellt wurden, laufen auf allen Betriebssystemen, wo auch ein entsprechender Interpreter verfügbar ist.
Wer keine IDE’s mag und lieber mit einem Editor arbeitet, findet auch ein grosses Angebot: RubyJEdit für jEdit, TextMate, e-TextEditor, rails.vim für VIM und auch Emacs.
Ruby vs. Java
Eine immer wieder geführte Diskussion ist Ruby vs. Java. Ich persönlich finde beide Sprachen (und ihre Frameworks) toll, von daher ist es keine Frage des ‘oders’. Mit JRuby existiert ein in Java geschriebener Ruby Interpreter. Damit ist es möglich eine Ruby (on Rails) Applikation in einem Java Container wie Tomcat laufen zu lassen. Nebenbei kann man so auch ganz einfach auf existierenden Java Code zugreifen und das Beste aus beiden Welten verbinden: Tor Norbye demonstriert dies in einem Video. In vielen Fällen läuft JRuby bereits schneller als im originalen Ruby Interpreten, kein Wunder wenn man bedenkt, wie viele Mannjahre Entwicklungsarbeit in einer JVM stecken…
Einen ganz anderen Ansatz verfolgt XRuby. Im Gegensatz zu JRuby interpretiert XRuby den Ruby Code nicht, sonder kompiliert daraus Java Bytecode. Dies dürfte die Ausführungsgeschwindigkeit noch etwas steigern. Ruby on Rails lässt sich aber noch nicht mit XRuby kompilieren.
Für Entwickler aus der Java Welt dürfte ToughtWorks ein Begriff sein, ist doch deren Chief Scientist Martin Fowler eine Koriphäe der Enterprise Java Entwicklung und hat einige wichtige Bücher dazu geschrieben. Fowler selber beschäftigt sich schon seit einiger Zeit mit allem Rund um Ruby. ToughtWorks hat in letzter Zeit einige wichtige Persönlichkeiten aus der Java und Ruby Welt angestellt: Ola Bini, JRuby Entwickler und Author von ‘Practical JRuby on Rail’ sowie auch Ye Zheng, Entwickler von XRuby. ToughtWorks bietet auch einen RubyWorks getauften Rails Software Stack und Support dazu an, wichtige Stützpfeiler für einen Enterprise Einsatz.
Netbeans unterstützt übrigens JRuby und auch das originale Ruby von Yukihiro “Matz” Matsumoto.
Ausblick
ThoughtWorks selber gibt auf der RubyWorks Seite selbst an, dass in den USA bereits 40% der Consulting Projekte mit Ruby on Rails durchgeführt werden. Die Verfügbarkeit von guten Entwicklungsumgebungen und auch die immer engere Integration von Ruby in Java dürfen diese Tendenz vermehrt unterstützten. Auch gibt es immer mehr Rails Entwickler mit fundiertem Wissen, oftmals ehemalige Java (oder .NET) Entwickler mit zusätzlichen Wissen aus der Enterprise Welt.
Ruby und Rails ermöglichen somit benutzerfreundliche Web 2.0 Anwendungen mit kurzer Entwicklungszeit und Anbindung an robuste und bewährte Java Systeme.
Man kann nur hoffen, dass man von dieser Entwicklung auch bald etwas in der Schweiz spürt, was bis jetzt eindeutig nicht der Fall ist…
Update: Der Compiler Modus von JRuby ist nun fertig gestellt. Somit dürfte man mit den nächsten Release auch Ruby on Rails Applikationen direkt kompilieren und danach in einem Java Container ausführen können.
Kommentare
benjie, Florian, Peter, peter pan, Techtmeier [...]
michi, Jacko_Momocini, michi, Jacko_Momocini, michi [...]
michi, flöschen
michi, Golfplätze Schweiz, michi, Blankster, michi [...]
michi, Christian, michi, michi, Lukas Eppler