Von Ruby nach Java
Java ist ausgereift. Es ist erprobt. Und es ist schnell (entgegen dem, was die Anti-Java-Fraktion vielleicht immer noch behauptet). Es ist auch ziemlich wortreich. Wenn Sie von Java zu Ruby wechseln, erwarten Sie, dass sich die Code-Größe erheblich verringert. Sie können auch erwarten, dass es weniger Zeit kostet, schnelle Prototypen zusammenzustellen.
Ähnlichkeiten
Wie bei Java wird auch in Ruby...
- Der Speicher wird über einen Garbage Collector für Sie verwaltet.
- Objekte sind stark typisiert.
- Es gibt öffentliche, private und geschützte Methoden.
- Es gibt integrierte Dokumentationstools (Rubys heißt RDoc). Die von RDoc generierten Dokumente sehen javadoc sehr ähnlich.
Unterschiede
Im Gegensatz zu Java wird in Ruby...
- Sie müssen Ihren Code nicht kompilieren. Sie führen ihn einfach direkt aus.
- Es gibt mehrere verschiedene beliebte GUI-Toolkits von Drittanbietern. Ruby-Benutzer können zum Beispiel WxRuby, FXRuby, Ruby-GNOME2, Qt oder Ruby Tk ausprobieren.
- Sie verwenden das Schlüsselwort
endnach der Definition von Dingen wie Klassen, anstatt Codeblöcke in geschweifte Klammern einschließen zu müssen. - Sie haben
requireanstelle vonimport. - Alle Member-Variablen sind privat. Von außen greifen Sie über Methoden auf alles zu.
- Klammern bei Methodenaufrufen sind meist optional und werden oft weggelassen.
- Alles ist ein Objekt, einschließlich Zahlen wie 2 und 3,14159.
- Es gibt keine statische Typüberprüfung.
- Variablennamen sind nur Bezeichner. Ihnen ist kein Typ zugeordnet.
- Es gibt keine Typdeklarationen. Sie weisen einfach neuen Variablennamen nach Bedarf zu, und sie "entstehen" einfach (d.h.
a = [1,2,3]anstelle vonint[] a = {1,2,3};). - Es gibt kein Casting. Rufen Sie einfach die Methoden auf. Ihre Unit-Tests sollten Ihnen bereits vor der Ausführung des Codes mitteilen, ob Sie eine Ausnahme sehen werden.
- Es ist
foo = Foo.new("hi")anstelle vonFoo foo = new Foo("hi"). - Der Konstruktor heißt immer "initialize" anstelle des Namens der Klasse.
- Sie haben "Mixins" anstelle von Interfaces.
- YAML wird tendenziell gegenüber XML bevorzugt.
- Es ist
nilanstelle vonnull. ==undequals()werden in Ruby anders behandelt. Verwenden Sie==, wenn Sie die Äquivalenz in Ruby testen möchten (equals()in Java). Verwenden Sieequal?(), wenn Sie wissen möchten, ob zwei Objekte identisch sind (==in Java).