Einleitung

"Geschichte"

Yukihiro "Matz" Matsumoto begann 1993 mit der Entwicklung von Ruby und veröffentlichte die erste Version Ende 1995. Seine Motivation war es, eine Sprache zu erschaffen, "die mächtiger als Perl und objektorientierter als Python sein sollte". Dabei sollte die Sprache dem Entwickler das Programmieren erleichtern, indem sie möglichst wenige Fehlerquellen (einfache und prägnante Syntax) und wenige Überraschungen enthält. Deshalb sagt man, Ruby folge dem "principle of least surprise". Durchsucht man das Internet nach Dokumenten zu Ruby so findet man häufig sehr positive Aussagen zur ruby, die erahnen lassen, das Matz seinen Prämissen sehr nahe gekommen ist.

Anfangs verbreitete sich Ruby nur in Japan, da es keine oder kaum Dokumentationen auf nicht-Japanisch gab. Erst seit dem Jahr 2000 ist Ruby dabei, die Welt zu erobern. In Japan wird Ruby bereits als die zweitgebräuchlichste Skriptsprache nach Perl, aber vor Python gehandelt. Mittlerweile ist die internationale ruby-community auf eine beachtliche Größe angewachsen, so dass die Weiterentwicklung und Erweiterung der Sprache immer schneller voranschreiten.

Nur irgendeine Skriptsprache?

Als Skriptsprachen werden im allgemeinen interpretierte Sprachen bezeichnet, die einen hohen Abstraktionsgrad bieten und bereits relativ komplexe Funktionen, wie beispielsweise die Verarbeitung regulärer Ausdrücke zur Verfügung stellen. Sprachen wie Perl, Python oder Ruby werden deshalb auch als Very High Level Languages (VHLL) bezeichnet.

Der wichtigste Unterschied von Ruby zu anderen Skriptsprachen besteht in der Verwendung von Objekten. Während diese in Sprachen wie Perl oder PHP etwas künstlich nachträglich in die Sprache integriert wurden, sind Sie in Ruby tief in der Struktur der Sprache verankert. Ruby zeichnet sich nämlich durch eine durchgehende Objektorientierung, wie sie beispielsweise von Smalltalk bekannt ist, aus. Es wurde also auf eine inkonsequente Trennung von Objekten und Basis-Datentypen (wie z.B. Java) verzichtet und sämtliche Klassen bilden Unterklassen der Klasse Object.

Ein großer Nachteil von interpretierten Sprachen ist der relative hohe Ressourcen-Verbrauch, der sich vor allem in langen Laufzeiten niederschlägt. Deshalb bieten Perl, Python und Ruby Schnittstellen zu C, so dass sehr rechenintensive Programmabschnitte (bottlenecks) in C ausgelagert werden können. Da Ruby in C entwickelt wurde, funktioniert die Zusammenarbeit mit C besonders problemlos.

Das Besondere an ruby ist, dass nicht versucht wurde, das Rad neu zu erfinden, sondern dass Konzepte anderer Programmiersprachen, die sich als nützlich und praktisch erwiesen haben, nachgeahmt oder sogar noch optimiert wurden.