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
, atauprotected
. - 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 seperticlass
, sebagai pengganti kurawal buka dan kurawal tutup di sekitar blok kode. - Anda menggunakan
require
di Ruby, bukanimport
. - Semua anggota variabel adalah
private
. Dari luar, Anda mengakses semua variabel tersebut lewat bantuan metode. Anda bisa mengotomatisasi proses ini menggunakan bantuanattr_reader
,attr_writer
, maupunattr_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 misalnyaint [] 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")
, bukanfoo = 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
disebutnil
di bahasa Ruby.- Penanganan untuk
==
berbeda denganequals()
di Ruby. Gunakan==
kalau Anda ingin test ekivalensi di Ruby (kalau di Java pakaiequals()
). Di Ruby, gunakanequal?()
kalau Anda ingin mengetahui apakah dua obyek sama atau tidak (di Java pakai==
).
Tidak ada komentar:
Posting Komentar