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
yerinerequire
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};
yerinea = [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")
yerinefoo = 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
yerinenil
kullanılır.==
veequals()
Ruby’de farklı değerlendirilir. Ruby’de eşitlik test etmek için==
kullanılır (Java’daequals()
kullanılır). Nesnelerin birbiri ile aynı olduğunu test için Ruby’deequal?()
kullanılır (Java’da==
kullanılır)