Die Programmiersprache Ruby

Blog| Forum| Wiki  

Hinweis: Es handelt sich bei dieser Seite um keine der beiden Mediawiki-FAQ-Seiten.

Inhaltsverzeichnis

Wie fange ich an?

siehe Erste Schritte

Wieso funktionieren in der irb unter Windows manche Tasten nicht?

Dies ist ein Fehler in der Software: Zeichen, für die die AltGr-Taste benötigt wird, können nicht eingegeben werden. Die genauen Umstände des Fehlers sind nicht bekannt (er tritt vermutlich nur bei Windows 2000 und XP auf), aber er kann behoben werden, indem in einem Verzeichnis (zum Beispiel in Eigene Dateien) eine Datei .inputrc mit dem folgenden Inhalt angelegt wird:

"\M-[": "["
"\M-]": "]"
"\M-{": "{"
"\M-}": "}"
"\M-\\": "\\"
"\M-|": "|"
"\M-@": "@"
"\M-~": "~"

Da das Erstellen einer Datei, deren Name mit einem Punkt beginnt, im Explorer nicht ohne weiteres möglich ist, muss hierfür die Kommandozeile bemüht werden, zum Beipsiel

notepad .inputrc

Außerdem muss die Umgebungsvariable $HOME auf dieses Verzeichnis gesetzt werden. Das geht am besten über Arbeitsplatz/Eigenschaften/Erweitert/Umgebungsvariablen.

Alternativ kann man irb ohne readline-Option starten:

irb --noreadline

Mehr zu Readline siehe: The GNU Readline Library.

Welche Version sollte ich nutzen?

Auf älteren Systemen befindet sich noch Ruby 1.6.7 oder 1.6.8.
Diese Version ist hoffnungslos veraltet, die einzigen Referenzen auf sie finden sich noch auf Seiten wie der deutschen Übersetzung der Pickaxe.

1.8.x ist die momentane Standardversion. Hinsichtlich der Versionsnummer ist sie zwar bereits von Ruby 1.9.x überholt worden, jedoch läuft sie - und zwar insbesondere in der Version 1.8.6 - noch auf vielen Webservern und kann durchaus noch verwendet werden. Tatsächlich wird der 1.8er-Zweig auch noch eine Weile weitergepflegt werden, wer aber jetzt mit Ruby beginnen möchte, sollte direkt mit 1.9 (siehe unten) einsteigen. Wer mit Ruby 1.9 aus welchem Grund auch immer nicht klarkommt, sollte aber eine aktuelle 1.8er-Version wie 1.8.7 verwenden.

Geht es um externe Bibliotheken, so liegt die 1.8er-Reihe bislang vor Ruby 1.9. Es gibt noch immer einige Gems, am populärsten davon ist Rails, die nicht mit 1.9.x kompatibel sind. Als Nutzer einer solchen Bibliothek sollte man selbstverständlich bei der 1.8er-Reihe bleiben oder sieht sich auf der Website http://www.isitruby19.com um, die alle Kompatibilitätsprobleme und -lösungen sammelt.

Die Version 1.9.x ist inzwischen bereits fertig und auch ein stabiles Release, obwohl man aufgrund der Versionsnummer vielleicht etwas anderes vermuten würde. Sie hat viel gegenüber ihrem Vorläufer 1.8.x (der aber noch weiter gepflegt wird) verändert, besonders die Änderungen an String (Encodings) und Regulären Ausdrücken (Oniguruma-Engine) sind ein großer Schritt in die Zukunftsfähigkeit von Ruby gewesen. Rails unterstützt Ruby 1.9.x aber noch nicht (gerade einige wichtige Gems funktionieren nicht), das wird sich aber beim Release von Rails 3 wahrscheinlich ändern. Wer also viel mit Strings und Regexps arbeitet, sollte zu dieser Version greifen, die Ruby auch in die Zukunft begleiten wird, da sie auf Ruby 2 hinarbeitet. Wer jetzt gerade in Ruby einsteigt, dem sei insbesondere aus diesem letzten Grund Ruby 1.9.x empfohlen.

Die Version 2 wird Ruby nochmal fundamental verändern. Man möchte sozusagen einen Schnitt machen und Ruby nochmal gänzlich neu implementieren. Hierbei sollen auch alle Unzulänglichkeiten und Probleme der Syntax ausgebügelt werden. Der Schritt ist auch nötig, damit man eine stabile Basis für die nächsten Jahre schafft. Wann die Version 2 herauskommen wird, ist noch nicht klar. Da Sprachen nicht von jetzt auf gleich aus dem Boden gestampft werden, wird wohl eher nach 2010 damit zu rechnen sein.

Wie erhalte ich den Integerwert eines ASCII-Zeichens?

1
2
3
4
5
6
7
8
# Strings verhalten sich in der Version 1.8.6 wie Arrays von Bytes
p 'A'[0]  #-> 65
# umgekehrt gibt's eine Methode
p 65.chr  #-> "A"
# ASCII-Werte auch als Literal, sehr nützlich
p ?A  #-> 65
# Unter 1.9: 
"A".ord #=> 65


Gibt es einen Styleguide?

Inofficial Ruby Guide by Ian Macdonald

Wie finde und korrigiere ich Fehler in einem Ruby-Programm?

Welche Bücher soll ich zu Ruby lesen?

Schau' mal in den Artikel Literatur.