Kamis, 24 Maret 2011

Kemiripan dan perbedaan Ruby dengan C


Kemiripan Ruby dengan C

Seperti di C, di Ruby,...
  • Anda bisa memprogram secara prosedural jika Anda suka (tetapi di balik layar sebenarnya kode Ruby Anda tetap berorientasi obyek).
  • Kebanyakan operator sama (termasuk operator compound assignment dan bitwise). Tetapi Ruby tidak punya ++ atau --.
  • Anda punya __FILE__ dan __LINE__.
  • Anda juga punya konstanta, tetapi tidak ada keyword khusus const. Konstanta menggunakan pengaturan penamaan, yaitu variabel yang diawali dengan huruf kapital adalah untuk konstanta. Misalnya NAMA_PERUSAHAAN.
  • String dapat menggunakan petik tunggal (tanpa interpolasi) maupun petik ganda (dengan interpolasi).
  • String bersifat mutable yaitu isinya bisa berubah meskipun objeknya sendiri tidak berubah.
  • Sama seperti man, Anda juga bisa membaca dokumentasi langsung di terminal Anda dengan menggunakan perintah ri.
·        Tersedia command-line debugger

Perbedaan-Perbedaan Ruby dengan C

Tidak seperti C, di Ruby,...
  • Obyek bersifat strongly typed (dan nama-nama variabel tidak punya type sama sekali). Obyek bisa berubah type, tapi Ruby akan selalu mengecek type obyek pada saat melakukan sesuatu. Bila Anda memanggil method atau instance variable yang tidak ada, Ruby akan memberikan pesan kesalahan.
  • Tidak ada macro ataupun preprocessor. Tidak ada cast. Tidak ada pointer (juga tidak ada pointer arithmetic). Tidak ada typedef@s, @sizeof, maupun enum.
  • Tidak ada file-file header. Anda cukup definisikan function Anda (biasanya disebut method di Ruby) dan kelas pada file source code utama.
  • Tidak ada #define. Cukup gunakan konstanta.
  • Di Ruby 1.8, kode diinterpretasi pada saat run-time daripada di_compile_ ke machine-code ataupun ke byte-code.
  • Semua variabel ada di heap. Lebih jauh, Anda tidak perlu membebaskan variabel, sudah ada garbage collector untuk itu.
  • Argument-argument di metode (atau function) di pass by reference, bukan by value.
  • require 'foo' bukan #include <foo> atau #include "foo".
  • Anda tidak bisa drop down ke assembly.
  • Tidak pakai semicolon (titik koma ;) di tiap akhir baris kode.
  • Tidak perlu pakai buka dan tutup kurung untuk if dan while untuk ekspresi kondisi.
  • Buka dan tutup kurung untuk pemanggilan metode (atau function) boleh dipakai boleh juga tidak (opsional).
  • Biasanya Anda tidak menggunakan kurung kurawal (brace) untuk mengakhiri banyak baris (seperti perulangan while), karena Anda menggunakan keyword end.
  • Keyword do digunakan untuk “blok”. Jadi tidak ada “do statement” seperti di C.
  • Istilah “blok” berbeda dengan C. Blok adalah untuk blok kode yang Anda asosiasikan dengan pemanggilan metode sehingga body metode bisa memanggil blok saat kode dijalankan.
  • Tidak ada deklarasi variabel. Anda langsung bisa assign nama baru ke variabel disaat Anda memerlukan variabel.
  • Ketika dites, hanya false dan nil yang dianggap value false. Semuanya selain itu adalah true (termasuk 0, 0.0 dan "0").
  • Tidak ada char, yang ada string 1-letter.
  • String tidak diakhiri dengan null byte. Pada Ruby 1.8 elemen pembentuk String merupakan byte, dan Ruby belum membedakan antara string single-byte dan multibyte (misalnya encoding Unicode, dsb.), namun ada beberapa library yang berguna untuk mendukung aplikasi internasional di Ruby.
  • Array literal masuk dalam kurung kotak (bracket), bukan dalam kurung kurawal (brace).
  • Array secara otomatis membesar dan semakin membesar ketika Anda menambahkan elemen-elemen lagi ke array.
  • Jika Anda menambahkan dua array, Anda kembali dengan array baru yang membesar (tentu, dialokasikan di heap) daripada melakukan aritmetik pointer.
  • Pada sebagian besar kasus, semua hal adalah berupa expression (misalnya, statemen while sebenarnya menghasilkan sebuah rvalue).

Tidak ada komentar:

Posting Komentar