Ruby ist eine objektorientierte, interpretierte Programmiersprache. Sie hat ihre Wurzeln in Perl, Smalltalk, Python, LISP, Bash und CLU, wobei Perl zeitweise großen Einfluss hatte.
Yukihiro "Matz" Matsumoto begann am 24. Februar1993 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. Viele Entwickler sagen, Ruby folge dem "principle of least surprise", dem Prinzip der geringsten Überraschung, womit sie meinen, dass die Sprache frei von Fallen und Widersprüchen ist, mit denen man bei anderen Programmiersprachen zu kämpfen hat. Der Name "Ruby" (engl. für Rubin) ist übrigens kein Akronym, sondern eine Anspielung auf Perl (engl. Perle).
Lange Zeit verbreitete sich Ruby wegen unzureichender englischer Dokumentation nur in Japan. Dort hat es 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 Ruby auch in Europa so weit verbreitet ist wie Perl oder Python.
Einheitliche Dokumentation direkt im Quellcode, ähnlich JavaDoc (rdoc)
Ruby ist komplett objektorientiert. Alle Daten sind Objekte, anders als bei Java sogar die Basistypen. Mit sehr wenigen Ausnahmen enthält jede Variable eine Referenz auf das Objekt, nicht das Objekt selbst. Weiterhin gibt es (im Gegensatz zu prozeduralen Programmiersprachen) keine Funktionen sondern lediglich Methoden - um den Umstieg von prozeduralen Programmiersprachen zu erleichtern erlaubt es Ruby jedoch Methoden global zu definieren welche zur Basisklasse hinzufügt werden sowie Methoden ohne expliziten Empfänger aufzurufen. Dadurch kann man, obgleich Ruby selbst objektorientiert ist, auch strukturiert und prozedural programmieren.
Syntax
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 angegeben werden muss. Stattdessen wird automatisch der Wert der letzten Anweisung zurückgegeben.
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,._..).
Programmierbeispiele
Alle Programmierbeispiele lassen sich mit dem interaktiven Ruby-Interpreter irb testen.
>> -199.abs # Die Zahl -199 ist ein Objekt der Klasse Fixnum (eine Unterklasse von Integer),
# dessen Methode ''abs'' wir aufrufen.
=> 199
>> "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" }
# Gibt zehn mal hintereinander "Hello, world!" in einer neuen Zeile aus
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
}
# Gibt die Datei text.txt Zeile für Zeile auf der Standardausgabe (Bildschirm) aus
File.open("text.txt") do |file|
file.each_line do |line|
puts line
end
end
Bücher
Programming Ruby - The Pragmatic Programmer's Guide von David Thomas und Andrew Hunt. ISBN_0-201-71089-7(Onlineversion - Übersetzung - Diese wurde von Freiwilligen übersetzt und ist daher nicht genau das folgende Buch)
Programmieren mit Ruby - Handbuch für den Pragmatischen Programmierer von David Thomas und Andrew Hunt ISBN_3-827-31965-X
Dieser Beitrag ist aus der XML-Version der deutschen WikiPedia® entwickelt worden und unterliegt inhaltlich den GNU FDL-Lizenzbestimmungen. Linkziele außerhalb der wikipedia-Inhalte unterliegen den Urheberrechten der jeweiligen Anbieter
( DirectDownloads ) Kalenderblätter druckfertig aufbereitet für Schmuckblätter zum Selbstdrucken im Word DOC6/RTF Format, je Euro 5 über Click&BuyJAN | FEB | MÄRZ APRIL | MAI | JUNI JULI | AUG | SEPT OKT | NOV | DEZ
Das Geschenk für jeden Anlass, nicht nur bei 'runden' Jubiläen Andere Einzeltage oder Zahlungsarten bitte HIER bestellen
Diese Web Site verdient ihr Geld durch Produktverkäufe (CD-ROM, downloads) und in erster Linie durch Anzeigen. Wenn Sie als Webmaster zuverlässige Partner suchen für Ihr eigenes Anzeigenschäft, dürfen Sie sich gerne auf unsere Empfehlungen stützen:
z.B.: GigaCash & ProfiWin