|
|
Ruby ist eine objektorientierte, interpretierte Programmiersprache. Sie hat ihre Wurzeln in Perl, Smalltalk, Python, LISP, Bash und CLU, wobei Perl die wichtigste darstellt.
| Table of contents |
|
2 Syntax 3 Programmierbeispiele 4 Bücher 5 Weblinks 6 Siehe auch |
Merkmale der Sprache
Ruby ist komplett objektorientiert. Alle Daten sind Objekte, anders als bei Java oder Python sogar die Basistypen. Jede Funktion ist eine Methode. Mit sehr wenigen Ausnahmen enthält jede Variable eine Referenz auf das Objekt, nicht das Objekt selbst. Auch wenn Ruby selbst objektorientiert ist, kann man auch struktuiert und funktional programmieren.
Yukihiro "Matz" Matsumoto begann am 24. Februar 1993 mit der Entwicklung der Sprache. 1995 wurde sie erstmals veröffentlicht, die aktuell stabile Version ist 1.8.1, die auf der offiziellen Seite heruntergeladen werden kann. Matsumoto entwickelte Ruby nach dem "principle of least surprise", dem Prinzip der geringsten Überraschung, womit gemeint ist, dass die Sprache frei von Fallen und Widersprüchen sein soll, mit denen man bei anderen Programmiersprachen zu kämpfen hat. Der Name "Ruby" (engl. für Rubin) ist übrigens kein Acronym, sondern eine Anspielung auf Perl (engl. Perle).
Lange Zeit verbreitete sich Ruby wegen unzureichender englischer Dokumentation nur in Japan. Dort hat sie bereits einen Stellenwert wie Perl und Python, ist praxiserprobt und läuft stabil. Erst um die Jahrtausendwende startete "Matz" viele Aktivitäten, um die Sprache Ruby auch außerhalb Japans bekannter zu machen. Sie wurde sehr schnell begeistert aufgenommen und es entstanden zahlreiche Artikel und Dokumentationen in englischer und deutscher Sprache. Es wird jedoch noch einige Jahre dauern, bis sie auch in Europa so weit verbreitet ist, wie Perl oder Python.
Die Syntax von Ruby wirkt auf den ersten Blick sehr frei, da Anweisungen nicht wie in vielen Sprachen durch ein Semikolon abgeschlossen werden, solange nur eine pro Zeile angegeben ist, und Parameter von Methoden müssen nicht in Klammern gesetzt werden. Verboten ist es aber auch nicht, so dass man es zur Verdeutlichung jederzeit tun kann. Weiterhin fällt auf, dass bei Funktionen und Methoden der Rückgabewert nicht explizit angeben werden muss. Stattdessen wird automatisch der Wert der letzten Anweisung zurückgeben.
Abgesehen davon gibt es aber sozusagen keine Doppelspurigkeiten wie in Perl.
Anders als in Python werden Blockstrukturen nicht durch die Einrückung bestimmt, sondern wie bei den meisten Sprachen durch Schlüsselwörter (begin...end, while...end, ...).
Alle Programmierbeispiele lassen sich mit dem interaktiven Ruby-Interpreter irb testen.
>> "Ruby ist cool".length # analog für einen String
=> 13
>> "Rick".index("c")
=> 2
>> "Wort".swapcase
=> "wORT"
>> "rentner-rennen".reverse.capitalize
=> "Nenner-rentner"
>> #Arrays
?> [11, 5, 7, 2, 13, 3].sort
=> [2, 3, 5, 7, 11, 13]
>> [11, 5, 7, 2, 13, 3].sort.reverse
=> [13, 11, 7, 5, 3, 2]
>> ["Eins", "Zwei", "Drei"] + ["Eins", "Vier"] - ["Eins"]
=> ["Zwei", "Drei", "Vier"]
>> # Hashes (Assoziative Arrays)
?> {"vorname" => "Heribert", "nachname"=>"Maier", "alter"=>43}
=> {"alter"=>43, "nachname"=>"Maier", "vorname"=>"Heribert"}
Syntax
Programmierbeispiele
>> -199.abs # Die Zahl -199 ist ein Objekt der Klasse Fixnum (eine Unterklasse von Integer), dessen Methode abs wir aufrufen.
=> 199
10.times {
string1 = "Hello world".gsub(" ", ", ") # Ersetze alle Leerzeichen (' ') durch
# Komma mit Leerzeichen (', ') und speichere
# in string1
string1 += "!" # Hänge "!" an string1
puts string1 # Ausgabe der Variable string1, gefolgt von
# einem Zeilenumbruch
}Bücher
Weblinks
Siehe auch
Jack Ruby, der durch den Mord an Lee Harvey Oswald zur Verdunklung des Mordes an John F. Kennedy beitrug