PHP digunakan di banyak aplikasi web, tetapi jika Anda ingin menggunakan Ruby on Rails atau hanya menggunakan bahasa yang secara umum lebih mudah disesuaikan, maka ada baiknya Anda mempertimbangkan menggunakan Ruby.
Contoh Source Code
Berikut ini adalah contoh program untuk menjumlahkan dua angka (diinputkan dari keyboard) di PHP:
Anda dapat menuliskan program tersebut di Ruby sebagai berikut:
Kemiripan Ruby dan PHP
Seperti di PHP, kalau di Ruby…
- Ruby dynamically typed, sama seperti di PHP, jadi Anda tidak perlu khawatir akan kewajiban untuk mendeklarasikan variabel.
- Ada class, dan Anda dapat mengatur akses kontrol ke setiap member
sama seperti di PHP 5 (
public
,protected
, danprivate
) - Beberapa variabel dan variabel global dimulai dengan tanda dolar ($), seperti di PHP (tetapi sebagian besar variabel yang Anda gunakan sehari-hari tidak diawali dengan tanda $)
- Ada
eval
juga. - Anda bisa menggunakan interpolasi string. Daripada melakukan
"$foo is a $bar"
, Anda bisa melakukan"#{foo} is a #{bar}"
, sama seperti di PHP, ini tidak berlaku untuk string yang menggunakan petik tunggal (harus petik ganda). - Ada heredocs untuk mengisi string lebih dari satu baris dengan mudah.
Ruby juga mempunyai beberapa cara lain untuk mengisi string misalnya
dengan sintaks
%q{ string }
dan%Q{ string #{foo} }
- Ruby punya fitur exception, seperti PHP 5
- Ada library standar yang lumayan besar. Plus ribuan library lain di Rubygems, Ruby Application Archive dan plugins untuk Ruby on Rails.
- Array dan hash bekerja sebagaimana mestinya, jadi Anda tinggal
mengganti kebiasaan
array('a' => 'b')
menjadi{'a' => 'b'}
. true
danfalse
berperilaku sama seperti di PHP, tetapinull
disebutnil
Perbedaan Ruby dan PHP
Tidak seperti di PHP, di Ruby…
- Ruby menggunakan strong typing. Anda perlu memanggil
to_s
,to_i
dan seterusnya untuk mengkonversi antarastring
,integer
dan seterusnya, daripada bergantung pada bahasa untuk melakukannya. Ini memastikan bahwa program tidak akan melakukan kesalahan yang tidak Anda inginkan, dan mempermudah debugging. - String, number, array, hash, dan seterusnya adalah obyek. Dalam
pemrograman berorientasi obyek sebenarnya, yang digunakan adalah
-1.abs
, bukanabs(-1)
- Ketika memanggil metode, tidak ada keharusan untuk memakai tanda
kurung, kecuali kalau ingin mengklarifikasikan parameter yang mana
yang masuk ke pemanggilan metode tertentu yang mana (agar tidak
ambigu). Contoh:
puts "Ruby keren"
adalah sama persis denganputs("Ruby keren")
. - Library standar dan extension dikelompokkan di module atau mixin dan class (kelas).
- Ruby tidak menggunakan penamaan berbasis underscore untuk memisahkan
bagian-bagian library seperti di PHP (Contoh:
mysql_connect
). Ruby mengorganisasi library ke dalam struktur module dan class yang lebih mudah diingat. (penjelasan) - Reflection sudah merupakan fasilitas bawaan setiap obyek. Anda tidak
perlu menggunakan kelas
Reflection
seperti di PHP 5. - Variabel merupakan reference.
- Tidak ada class bersifat
abstract
atau deklarasiinterface
- Hash dan array tidak boleh ditukar-tukar, karena keduanya termasuk dua kelas yang berbeda.
- Hanya
false
dannil
yang bernilai false, semua nilai selain itu mengembalikan nilaitrue
dalam conditional (0
,array()
, dan""
dianggap bernilaitrue
) - Hampir semua statemen di Ruby adalah pemanggilan metode, bahkan
raise
juga merupakan pemanggilan metode (kalau di PHP ekivalen denganthrow
).