Python bir diğer çok güzel genel amaçlı bir programlama dilidir. Pythondan ruby’e geçerken, ruby de pythona göre öğrenmeniz gereken çok az söz dizimi bulacaksınız.
Benzerlikler
Pythonda olduğu gibi,rubyde,…
- Etkileşimli komut satırı vardır. (
irbolarak bilinir). - dökümanları komut satırında okuyabilirsiniz. (
pydocyerinerikomutuyla). - Özel satır sonlandırıcıları yoktur. (Her zamanki yeni satır hariç).
- Karakter dizisi kalıpları Python’ın üç tırnaklı karakter dizesi gibi birden fazla satır olabilir.
- Köşeli parantezler listeler içindir, ve süslü parantezler sözlükler içindir. (Rubyde, “hash” veri tipi içindir).
- Diziler aynı şekilde çalışır. (Eklemek uzun bir dizi yapar, ama onları
bu şekilde birleştirmek
a3 = [ a1, a2 ]size dizilerden oluşan bir dizi verir). - Nesneler güçlü ve dinamik tiplenirler.
- Her şey objedir, ve değişkenler sadece objelere referanslardır.
- Anahtar kelimeleri biraz farklı olmasına rağmen, istisnalar aynı çalışır.
- Gömülü döküman araçlarına sahipsiniz. (Rubyde rdoc).
- Birinci sınıf fonksiyonlar, anonim fonksiyonlar ve kapamalar ile fonksiyonel programlama için iyi bir destek sunar.
Farklılıklar
Python’ın aksine, Rubyde,…
- Karakter dizeleri değişebilir.
- Sabitler oluşturabilirsiniz. (Değerinin değişmesini istemediğiniz değişkenler).
- Bazı zorunlu harf kuralları vardır. (ör. sınıf isimleri büyük harfle başlar, değişkenler küçük harfle başlar).
- Tek çeşit liste konteyneri vardır (bir dizi(Array)), ve değişkendir.
- Çift tırnaklı karakter dizeleri kaçış karakterlerine (
\tgibi) ve özel “deyim yer değişimi” söz dizilerine (Ruby ifadelerinin sonuçlarını diğer karakter dizelerine"add " + "strings " + "together"şeklinde uğraşmadan direkt olarak eklemenizi sağlar) izin verir. Tek tırnaklı karakter dizeleri Python’ınr"ham karakter dizeleri"gibidir. - “new style” ve “old style” sınıflar yoktur. Sadece tek çeşittir. (Python 3’te bu sorun yoktur fakat Python 3, Python 2 ile geriye dönük uyumlu değildir.)
- Özniteliklere asla direkt olarak ulaşamazsınız. Ruby ile, tümü metod çağrılarıdır.
- Metod çağrılarında parantez kullanımı genellikle isteğe bağlıdır.
- Erişim izinleri için Python’ın
_kasıtlı_altçizgi__geleneği__yerinepublic,privateveprotectedifadeleri vardır. - Çoklu miras yerine mixinler kullanılır.
- Gömülü sınıflara metod ekleyebilir ya da bu sınıfların metodlarını değiştirebilirsiniz. İki dil de sınıfları her zaman açıp değiştirmenize izin verir, fakat Python gömülü olanların değiştirilmesini engeller, Ruby ise engellemez.
TrueveFalseyerinetruevefalsevardır (veNoneyerinenil).- Doğruluk test edildiğinde, sadece
falsevenilfalse bir değer döner. Diğer her şey true döner (0,0.0,"", ve[]dahil). elifyerineelsifkullanılır.importyerinerequirekullanılır. Fakat kullanımları aynıdır.- Satır(lar)daki bir şeylerin (altındaki belgelendirme karakter dizileri değil de) üstündeki alışıldık biçimdeki yorumlar belgeleri oluşturmak için kullanılır.
- Birçok kısayol vardır. Bu, hatırlanacak daha fazla şey anlamına gelse de, hızlıca öğrenirsiniz. Bunlar rubyyi eğlenceli ve çok üretken yapmak içindir.
- Daha önceden belirlenmiş bir değişkeni silme yolu yoktur (Python’ın
delifadesi gibi). Değişkeninilolarak ayarlayabilirsiniz, bu değişkenin değerini çöp toplayıcıya gönderir. Ama değişken, kapsamı içinde sembol tablosunda kalmaya devam eder. yieldanahtar kelimesi farklı davranır. Python’da bu, yürütmeyi fonksiyon başlatımının dışındaki kapsama döndürür. Harici kod fonksiyonu devam ettirmekten sorumludur. Ruby’deyield, son argüman olarak geçirilen bir diğer fonksiyonu yürütür, daha sonra hemen kaldığı yerden devam eder.