Aus der Java-Welt sind wir mit großen IDEs wie Eclipse oder IntelliJ IDEA verwöhnt - hat man doch eine große Anzahl an Funktionen, die dem Entwickler viele Standardaufgaben abnehmen und aktiv beim Programmieren unterstützen. Das geht dank der dynamischen Natur von Ruby dort nicht so einfach, es gibt aber Ansätze, zumindest Teile der erreichten Bequemlichkeit von Java-IDEs auch für Ruby-Entwickler zur Verfügung zu stellen. So auch JetBrains RubyMine 1.0, das an IntelliJ anlehnt und seit gestern verfügbar ist.

Start

RubyMine gibt es für Windows ab Win2000, Mac OS X und Linux - die Installation erfolgte auf dem Testrechner (Vista Ultimate, 64bit) problemlos. Ein vorhandenes JRuby wurde erfolgreich erkannt und automatisch konfiguriert. 30 Tage darf RubyMine kostenlos getestet werden, benötigt aber eine Registrierung. Open-Source-Projekte können sich um eine dauerhaft kostenlose Lizenz bewerben.
Nach dem Start findet man erwartungsgemäß eine runde, aufgeräumte Oberfläche vor. Das Auschecken eines Projektes (Git, CVS, Subversion und Perforce werden von Haus aus unterstützt) geschieht intuitiv - hier zeigte sich jedoch ein erster Schwachpunkt: Das Speichern der Zugangsdaten funktionierte für den SVN-Account nicht, was dazu führte, dass das Passwort 10 mal eingeben musste, bis das Repository geladen und das Projekt ausgecheckt war.
Update, 06.05.2009: Zum Glück gibt es hier einen Workaround: Windows-Nutzer müssen einfach die Datei %RUBY_HOME%/bin/rubymine.exe.vmoptions öffnen und die Zeile -Dsvnkit.http.methods=Basic,Digest,NTLM ergänzen, in MacOS X kann man dafür die Einstellung /Applications/RubyMine 1.0.app/Contents/Info.plist benutzen. Vielen Dank an den hilfreichen Support von JetBrains.

Übersicht

rubymine_rails_navigator.jpg Die Fensteraufteilung entspricht der gängigen, sodass sich die meisten Entwickler sofort zurecht finden dürften: Projektnavigator links, großes Editor-Fenster in der Mitte, diverse Übersichten unten. Neben dem normalen Navigator bietet RubyMine einen Rails-Navigator an, in dem Elemente wie Actions, Helper, Views und Partials gruppiert dargestellt werden. Hilfreich sind auch Icons im Editor, um direkt zu den entsprechenden Views bzw. Actions zu springen, die man gerade bearbeitet.
RubyMine bietet u.a. Tools zum Verwalten seiner Ruby/JRuby-Installationen inklusive gems, seiner Tests, die zur Verfügung stehenden Webserver sowie eine Übersicht über Rake-Targets mit Möglichkeit zur Ausführung an.
Die Programmierung selbst wurde natürlich auch bedacht: Neben Standard-Features wie das automatische Beenden von If- und anderen Blöcken oder Strings oder die Komplettierung von Variablen- und Funktionsnamen gibt es innerhalb von Rails-Projekten ein weiteres Feature: Die Code-Vervollständigung schlägt bei User.find_[Strg+Space] z.B. auch User.find_by_name vor, welches ja dynamisch von Rails erzeugt wird. Mittels Warnungen sollen dem Entwickler mögliche Schwachstellen aufgezeigt werden. Im Testprojekt gab es hier allerdings mehr falsche Meldungen als echte Hinweise - eine Möglichkeit, einzelne Warnungen auszuschalten, war nicht zu finden.
Ein sehr interessantes Feature ist der Modellgraph, der sich auf Knopfdruck erstellen lässt. Anschließend kann man die erzeugten Kästen und Pfeile für die Modellklassen verschieben, Attribute aus- und einblenden und ihn schließlich drucken.

Debugging

Der Ruby-Debugger erleichtert das Analysieren der Anwendung und verarbeitet auch Breakpoints innerhalb von RHTML-Dateien. Dafür ist das gem ruby-debug-ide verantwortlich. Leider gibt es auch hier seltames Verhalten - nicht immer wird so in Funktion hinein oder heraus gesprungen, wie man das als Anwender erwartet, und - vorrangig in RHTML-Dateien - es stürzt schon mal der Server ab. Da diese Probleme aber auch im Aptana RadRails auftraten, ist der Fehler hier eher beim gem oder beim Server zu suchen.
Störend wirkt sich hier aber aus, dass der Webserver sowohl beim Absturz als auch beim manuellen Stopp nicht korrekt beendet wird und dadurch den Port blockiert. So muss hier jedes Mal der Taskmanager bemüht werden.

Fazit

JetBrains RubyMine bietet eine runde, intuitive IDE, welche einige Hilfen beim Entwickeln von Ruby- und insbesondere Rails-Anwendungen bietet. Die Version 1.0 hat noch ein paar kleine Macken, aber der Support von JetBrains ist Gold wert und so werden kommende Updates die Probleme sicher beseitigen.


Links

RubyMine
Developer-Forum