Kamis, 24 Maret 2011

Kemiripan dan perbedaan Ruby dengan Java

Kemiripan Ruby dan Java

Sama seperti Java, di Ruby…
  • Memory diatur secara otomatis melalui garbage collector.
  • Obyek diperlakukan secara strongly typed.
  • Metode bersifat public, private, atau protected.
  • Ada tool untuk dokumentasi dalam kode (di Ruby dikenal dengan sebutan RDoc). Dokumentasi yang dihasilkan oleh rdoc kelihatan sangat mirip dengan yang dihasilkan oleh JavaDoc.

Perbedaan Ruby dan Java

Tidak seperti Java, di Ruby,...
  • Anda tidak perlu meng-compile kode Anda. Anda cukup menjalankan saja langsung melalui interpreter Anda.
  • Ada perbedaan toolkit GUI. Rubyist dapat mencoba WxRuby, FXRuby, Ruby-GNOME2, atau yang sudah disertakan dengan Ruby seperti Tk.
  • Anda menggunakan keyword end setelah mendefinisikan macam-macam hal di Ruby seperti class, sebagai pengganti kurawal buka dan kurawal tutup di sekitar blok kode.
  • Anda menggunakan require di Ruby, bukan import.
  • Semua anggota variabel adalah private. Dari luar, Anda mengakses semua variabel tersebut lewat bantuan metode. Anda bisa mengotomatisasi proses ini menggunakan bantuan attr_reader, attr_writer, maupun attr_accessor.
  • Buka dan tutup kurung di saat pemanggilan metode biasanya opsional (boleh dipakai boleh juga tidak) dan biasanya tidak dipakai.
  • Semua adalah obyek, termasuk angka (obyek bertipe Fixnum) seperti 2 dan 3.14159.
  • Tidak ada static type checking. Semua pengecekan tipe bersifat dinamis tapi tetap strongly typed.
  • Nama-nama variabel hanya label. Nama variabel tidak punya type yang terkait dengan keberadaan variabel.
  • Tidak ada deklarasi tipe. Anda cukup assign ke nama variabel baru jika diperlukan dan sudah otomatis dibuatkan oleh Ruby (contoh a = [1,2,3] sudah cukup di Ruby, tidak membutuhkan deklarasi eksplisit misalnya int [] a = {1,2,3};).
  • Tidak ada casting. Solusinya, cukup panggil metode yang diinginkan. Anda dapat menggunakan unit test untuk mengecek kesalahan pada kode atau adanya exception.
  • Di Ruby, foo = Foo.new( "hi"), bukan foo = new Foo( "hi" ).
  • Konstruktor selalu dinamakan initialize, bukan sama nama kelas tersebut seperti di Java.
  • Anda punya “mixin” yang bisa menggantikan interface.
  • YAML lebih banyak digunakan ketimbang XML.
  • null disebut nil di bahasa Ruby.
  • Penanganan untuk == berbeda dengan equals() di Ruby. Gunakan == kalau Anda ingin test ekivalensi di Ruby (kalau di Java pakai equals()). Di Ruby, gunakan equal?() kalau Anda ingin mengetahui apakah dua obyek sama atau tidak (di Java pakai ==).

Tidak ada komentar:

Posting Komentar