Hoi,
"Streng objektorientiert" bedeutet, dass es keine primitiven Datentypen
gibt wie int, char und boolean in anderen Sprachen, sondern dass das
alles auch Objekte sind.
Genau so ist es. Wenn man in Ruby einer Variablen i den Wert 10 zuweist, dann
wird in Wirklichkeit ein Objekt der Klasse Integer erstellt und die Methode '='
ausgefuehrt.
Das heißt, dass man zum Beispiel Variablen
addiert, indem man a.plus(b) statt a+b schreibt
Nun, in Ruby sind die Operatoren Methoden.
und einen String
ausgibt, indem man s.print() statt print(s) schreibt.
Das Klassenkonzept sieht etwas anders aus: print() ist eine Methode der Klasse
'IO'.
Auch Konstanten sind in Ruby IMHO Objekte,
Ja.
so dass man etwas wie "Hello World".print() schreiben kann -- zumindest in
der Theorie.
IO.print("Hello World")
Man sollte zu Ruby noch wissen, dass es nicht Format-frei ist. Lokale Variablen
muessen klein geschrieben werden, Klassennamen beginnen mit einem grossen
Buchstaben und Konstanten muessen komplett gross geschrieben werden. Globale
Variablen muessen mit $ beginnen und Instanz-Variablen mit einem @. Ausserdem
benutzt Ruby ein POD-Aehnliches Format fuer eine eingebettete Dokumentation.
Die Einbettung von Regular Expressions ist weitgehend Perl nachgeahmt.
Ruby bietet die Definition von eigenen Iteratoren und hat 38 reservierte
Woerter. Kommentare werden durch '#' eingeleitet, mehrzeilige Kommentare sind
nicht moeglich. Mehrfachvererbung ist durch Mixin moeglich. Auch
try-catch-Konstruktionen sind moeglich, aehnlich wie in Java, allerdings mit
einigen Erweiterungen (ensure, z. B.).
Gruesse,
CK