Python merupakan bahasa pemrograman untuk kegunaan umum yang juga bagus. Dari Python ke Ruby, Anda secara umum hanya perlu mempelajari perbedaan sintaks antara Ruby dengan Python.
Contoh Source Code
Berikut ini adalah contoh program untuk menjumlahkan dua angka (diinputkan dari keyboard) di Python:
Anda dapat menuliskan program tersebut di Ruby sebagai berikut:
Sumber: A Very Quick Comparison of Popular Languages for Teaching Computer Programming
Kemiripan Ruby dan Python
Sama dengan Python, di Ruby…
- Ada Ruby Interaktif (dinamakan
irb
). - Anda bisa membaca dokumentasi di command line (dengan
ri
, setara denganpydoc
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. Di Ruby hal ini tidak membutuhkan sintaks khusus, cukup
menggunakan petik tunggal atau petik ganda seperti biasanya, tapi Anda
juga bisa menggunakan heredoc dan 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 reference ke obyek.
- Meskipun keyword yang digunakan berbeda (Ruby menggunakan
raise
danrescue
), fitur exception setara dengan Python. - Anda mendapatkan fitur dokumentasi dalam kode (di Ruby disebut
rdoc
).
Perbedaan Ruby dan Python
Tidak seperti di Python, di Ruby…
- 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
\t
untuk tab) dan substitusi ekspresi:"Selamat Datang, #{nama}!"
akan menghasilkan string yang juga disisipkan isi variabelnama
. 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
, danprotected
untuk mengatur akses ke instance 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
, dannil
, sedangkan Python menggunakanTrue
danFalse
, danNone
. - Kalau dites logika untuk
true
, hanyafalse
dannil
yang dianggap bernilaifalse
. Semua nilai lain dianggaptrue
(termasuk0
,0.0
,""
, dan[]
). - Menggunakan
elsif
sebagai gantielif
. - Menggunakan
require
sebagai gantiimport
. 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 Ruby menyenangkan (fun!) dan membuat Anda sangat produktif.