PHP ist bei Webapplikationen weit verbreitet, aber wenn du Ruby on Rails verwenden willst oder eine Programmiersprache suchst, die für allgemeinere Fälle ausgelegt ist, ist Ruby sicher einen Blick wert.
Gemeinsamkeiten
Genauso wie in PHP ist Ruby…
- Ruby ist eine dynamisch typisierte Sprache, so dass man sich keine Gedanken um die Deklaration von Variablen machen muss.
- Ruby kennt Klassen und die gleichen Mechanismen für die
Zugriffskontrolle wie PHP 5 (
public
,protected
undprivate
) - Einige Variablen beginnen mit $, genau wie in PHP (aber nicht alle).
- Es gibt auch das Schlüsselwort
eval
- Natürlich kennt auch Ruby string interpolation, wenn doppelte
Anführungstriche verwendet werden – man kann also
"#{foo} und #{bar}"
schreiben. Und wie in PHP funktioniert das bei einfachen Anführungstrichen nicht. - Es gibt auch heredocs.
- Wie in PHP 5 gibt es auch in Ruby Exceptions.
- Es gibt eine ziemlich umfangreiche Standard-Bibliothek.
- Standard-Arrays und Assoziative-Arrays (Hashes) funktionieren wie in
PHP, man braucht nur weniger zu tippen: aus
array('a' => 'b')
wird einfach{'a' => 'b'}
. true
undfalse
verhalten sich wie in PHP, abernull
wird mitnil
bezeichnet
Unterschiede
Im Gegensatz zu PHP hat Ruby…
- Es gibt auch strenge Typisierung: man muss explizit Funktionen zur
Typkonvertierung aufrufen. Z.B.
to_s
oderto_i
- strings, numbers, arrays, hashes, etc. sind Objekte. Also statt abs(-1) schreibt man in Ruby -1.abs
- Parameter bei Methodenaufrufen brauchen nicht in runde Klammern gesetzt werden – außer, falls notwendig, um Mehrdeutigkeit zu vermeiden.
- Die Ruby Standard Bibliothek ist in Modulen und Klassen organisiert.
- Objekte bringen Reflection-Eigenschaften bereits mit. Die Verwendung
einer besondern
Reflection
Klasse, wie in PHP 5, ist nicht notwendig - Variablen sind Referenzen
- Es gibt keine
abstract
Klassen und auch keine @interface@s - Hashes und Arrays sind verschiedene Typen in Ruby.
- nur
false
undnil
liefern false:0
,array()
und""
ergeben in Bedingungen true. - fast alles ist Methodenaufruf, sogar
raise
(throw
in PHP).