Java'dan Ruby'ye

Java oturmuş bir dildir, kararlıdır ve hızlıdır (Java karşıtları bunu kabul etmezler) Ayrıca biraz da gereksiz kalabalık kodları vardır. Java’dan Ruby’ye geçince kodunuzun boyutunun azalması beklenir, ayrıca prototiplere daha çabuk ulaşırsınız.

Benzerlikler

Java’da olduğu gibi Ruby’de de,…

  • Hafıza kullanımı çöp toplayıcı tarafından yönetilir.
  • Nesneler güçlü tiplenirler.
  • Public, private ve protected metodlar vardır.
  • Gömülü dökümanlama araçları vardır (Ruby’ninki RDoc olarak isimlendirilir). RDoc ile hazırlanan dökümanlar javadoc ile hazırlanana çok benzer.

Farklar

Ruby’de Java’dan farklı olarak,…

  • Kodunuzu derlemeye gerek yoktur, direk olarak çalıştırırsınız.
  • Ruby kullanıcıları değişik GUI araçları kullanabilir WxRuby, FXRuby, Ruby-GNOME2, Qt, ya da Ruby Tk bunların bazıları.
  • Sınıflar, metodlar gibi birşeyleri tanımlarken kod bloğunu süslü parantez içine almak yerine sonunda end deyimi kullanırsınız
  • import yerine require kullanılır.
  • Sınıf içinde tüm değişkenler özeldir. Dışardan herşeye metodlarla erişirsiniz.
  • Metod çağrılarında parantezler genelde opsiyoneldir ve çoğunlukla da kullanılmaz.
  • Herşey bir nesnedir, 2 veya 3.14159 gibi sayılar dahil.
  • Statik tip kontrolü yoktur.
  • Değişken isimleri sadece etiketlerdir. Belirlenmiş bir tipe bağlanmazlar.
  • Tip tanımlamaları yoktur. Yeni bir değişken üretirken sadece kendisine değer atamak yeterlidir. (örn. int[] a = {1,2,3}; yerine a = [1,2,3] yazılır)
  • Tip dönüşümü yoktur. Sadece metodları çağırın. Bir istisna görecekseniz, birim testleriniz size kodu çalıştırmadan önce bunu söylemelidir.
  • Foo foo = new Foo("hi") yerine foo = Foo.new("hi") yazılır.
  • Sınıfın üretici metodu için sınıfın adı yerine bütün sınıflar için “initialize” ismi kullanılır.
  • “interface” yerine “mixin” vardır.
  • YAML, XML’e göre daha tercih edilen bir yöntemdir.
  • null yerine nil kullanılır.
  • == ve equals() Ruby’de farklı değerlendirilir. Ruby’de eşitlik test etmek için == kullanılır (Java’da equals() kullanılır). Nesnelerin birbiri ile aynı olduğunu test için Ruby’de equal?() kullanılır (Java’da == kullanılır)