Tuesday, May 25, 2010

Ruby vs Python



- Ada Ruby Interaktif (dinamakan irb).
- Anda bisa membaca dokumentasi di command line (dengan ri, setara dengan pydoc di Python).
- Tidak ada karakter khusus untuk akhir baris (newline biasa atau biasa kita sebut “enter”).
- Isi string bisa dipisah ke banyak baris seperti string triple-quoted di Python. DiRuby hal ini tidak membutuhkan sintaks khusus, cukup menggunakan petiktunggal atau petik ganda seperti biasanya, tapi Anda juga bisamenggunakan heredocdan sintaks lain (misalnya %q{ halo }) jika Anda suka.
- Buka kurung dan tutup kurung siku ([]) untuk list, buka kurung dan tutup kurung kurawal ({}) untuk hash (istilah Ruby untuk dict.)
- Array mempunyai fungsionalitas yang sama. Menambahkan array menghasilkan array gabungan. Memasukkan array ke dalam array lain menghasilkan array bersarang atau nested array: a3 = [ a1, a2 ]
- Obyek bersifat dinamis dan strongly typed.
- Semua adalah obyek, dan variabel hanya merupakan referenceke obyek.
- Meskipun keyword yang digunakan berbeda (Ruby menggunakan raise dan rescue), fitur exception setara dengan Python. Anda mendapatkan fitur dokumentasi dalam kode (di Ruby disebut rdoc).

Perbedaan Ruby dan Python
- String dapat diubah isinya (mutable.)
- Anda dapat membuat konstanta (variabel yang nilainya tidak akan diubah).
- Ada aturan penamaan (misalnya: nama kelas diawali dengan huruf kapital, nama variabel lokal diawali dengan huruf kecil).
- Hanya ada satu jenis tipe kontainer yang berisi daftar data, yaitu Array. Array bersifat mutable yaitu dapat diubah-ubah.
- Interpolasi string didukung menggunakan sintaks petik ganda. Interpolasi yang didukung adalah escape sequence (misalnya \tuntuk tab) dan substitusi ekspresi: "Selamat Datang, #{nama}!"akan menghasilkan string yang juga disisipkan isi variabel nama. Di Ruby, string berpetik tunggal (misalnya: 'halo semua') berfungsi persis seperti raw string di Python (tanpa interpolasi.)
- Tidak ada kelas “new style” dan “old style”. Cuma ada satu macam kelas.
- Anda tidak akan pernah langsung mengakses atribut. Di Ruby, semua menggunakan pemanggilan metode. Cara praktisnya adalah dengan menggunakan attr_reader, attr_writer, maupunattr_accessor.
- Buka dan tutup kurung untuk pemanggilan metode biasanya dihilangkan (opsional / boleh dipakai boleh juga tidak).
- Ada public, private, dan protected untuk mengatur akses keinstance member, yang biasanya di Python diakali menggunakan aturan penamaan _seperti_ __ini__.
- Menggunakan “mixin”, bukan multiple inheritance.
- Anda bisa “membuka” sebuah kelas kapan saja untuk mengubah atau menambahkan metode-metode ke kelas tersebut.
- Ruby menggunakan true, false, dan nil, sedangkan Python menggunakan True dan False, dan None.
- Kalau dites logika untuk true, hanya false dan nil yang dianggap bernilai false. Semua nilai lain dianggap true (termasuk 0, 0.0, "", dan []).
- Menggunakan elsif sebagai ganti elif.
- Menggunakan require sebagai ganti import. Cara penggunaannya sama.
- Penggunaan komentar biasanya di atas yang ingin didokumentasikan (jadi bukan di bawahnya.) Biasa digunakan untuk menghasilkan dokumentasi secara otomatis dari source code.
- Ada banyak shortcut yang bisa dapat Anda pelajari untuk melakukan hal-hal yang sering digunakan dengan lebih cepat. Shortcut tersebut membuat Rubymenyenangkan (fun!) dan membuat Anda sangat produktif.

0 comments:

Post a Comment