Ruby Günlüğü – Gün 2

Neden Ruby?

Bu sorunun cevabını IBM’den almak, güvenilirliği arttıracaktır.

Aşağıda ki linkten orjinal kaynak üzerinden okuyabilirsiniz :

http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/

Kendi çapında bir Java programcısı neden Ruby’yi önemsemelidir? Ruby, 10 yıl önce Japonya’da geliştirilen genel amaçlı bir programlama dilidir. Tamamen object-oriented olması sebebi ile popülerlik kazanmıştır. Java’da olduğu gibi skalerler içermez, bu yüzden integer (rakamsal ifadeler) dahil herşey birer first-class nesnedir (Bu tabire Python geliştiricilerinin hiç yabancı olmaması gerekiyor). Ruby syntax’ı yani söz dizimi, Smalltalk, Python ve Ada’da oldukça benzerlik gösterir. Ruby bütün bilinen işletim sistemlerinde rahatlıkla çalışabilen, tamamen taşınabilir bir dildir. İşletim sistemine göre bağımlılık içermez.

Ruby’nin kullanımı her geçen gün artmakta, buna sebep olarak Ruby’nin esnekliği ve uygulama geliştirmede gösterdiği pratikliği gösterebiliriz. Java’da uygulama geliştirme süreci çok daha meşakkatlidir. Yazının geri kalanını kaynağından okuyabilirsiniz, sözü çok uzatmayacağım.

Ruby Geliştirme Ortamı – IDE’nin Hazırlanması & Aptana – Eclipse Plug-in

Uzun zamandır eclipse kullanan biri olarak, alışkanlıklarımdan vazgeçmek istemiyorum, bu yüzden Ruby uygulamalarımı eclipse ile geliştirmek istiyorum.

IBM’den makalesinde okuduğum üzere Aptana’yı keşfetmiş bulunmaktayım. (Daha sonra RadRails ve Heroku üzerinde de duracağım, ancak o günlere biraz daha var)

Aptana Studio’yu stand-alone olarakta kurma imkanınız var ancak ben eclipse plug-in olarak kuracağım.

http://www.aptana.org/products/studio2/download

adresine giderek “Eclipse plug-in version” seçeneğini seçerek download edelim, karşımıza nasıl kuracağımızı anlatan sayfa gelecek, orada ki adımları takip ederek kurulumu gerçekleştirdim.

Aptana Studio’nun eski ismi RDT imiş, yani RDT olarakta aratıp internette çeşitli yazılar bulabilirsiniz, RDT yani Ruby Development Tools.

Kurulum işlemi biraz sürecektir, internet hızınıza bağlı olarak (1Mgb. bağlantı ile yaklaşık 15 dakika sürdü, 80 megabyte kadar bir dosya)

Son zamanlarda NetBeans’ta hızlı bir giriş yapıp Ruby desteği sunmaya başlamış, onada şurdan ulaşılabilir;

http://netbeans.org/features/ruby/index.html

http://netbeans.org/kb/docs/ruby/setting-up.html

NetBeans için plug-in kurulu açıkcası Ubuntu ortamında çok daha kolay, Eclipse plug-in’i için üst seviye yönetici girişi yapmanız vs. gerekiyor, güvenlik sertifikası hatası veriyor (Ubuntu 10.04 Lts), ancak Netbeans sorunsuz bir kurulum gerçekleştirdi.

Ruby Konsepti

Ruby konseptini nesne ve sınıfları daha iyi anlamak için bir örnek yapalım.

Şimdi bu örneği adım adım inceleyelim;

“class Kisi” satırı ile kişi isminde bir konsept tanımladık, Ruby içerisinde tanımladığımız tüm konseptlere sınıf adını veririz. Tek tipli nesnelere sınıf adı verilir. Ruby’de sınıf isimleri daima büyük harfle başlar.

attr_accessor :isim, :yas, :cinsiyet

satırı ile, bir insanın sahip olabileceği temel özellikler olan isim, yaş ve cinsiyeti, sınıf bileşeninin içermesini söyledik.

“attr”, “attribute” kelimesinin kısaltılmış halidir ve “accessor” ile bu özelliklerin kullanıcı tarafından girilebilmesini ve istenildiğinde değiştirilebilmesini söyledik. Bu demek oluyor ki, Kisi isimli nesne üzerinde çalışmaktayken, istediğimiz zaman bu kişinin adını, yaşını ve cinsiyetini değiştirebiliriz.

“end” komutu ile “Kisi” sınıfını tanımlamayı bitirdiğimizi belirttik.

Özetle; Bir sınıf, bir konsepti tanımlar ve bir nesne ise sınıf üzerine kurulmuş tek bir şeydir.

Kodu command promt üzerinde çalıştıralım :

Daha önce “001:0” gibi rakamların ne olduğunu biraz olsun öğrenmiştik, şimdi sonra ki “0” rakamının “1” olarak değiştiğini görüyoruz. İlk satırda “class” komutu verdiğimizde, Ruby artık bir sınıf tanımlaması başlattığımızı ve bundan sonra gireceğimiz komutları derhal işlemek yerine, sınıf tanımlamasını devam ettirmesi gerekiğini anlıyor ve sondaki rakam, yani kitapta yazdığı anlamıyla “programın derinliği” 1 olarak değişmiş oluyor. İlk üç rakamın ise programda bulunduğumuz satır olduğunu yine öğrenmiştik.

Aldığımız “nil” sonucu, python programcılarına tanıdık gelecektir.

“null” olarak bildiğimiz, hiçbir şeyin döndürülmemesi (return) durumu, Ruby içerisinde “nil” olarak ifade ediliyor.

Şimdi böyle birşey deneyelim.

“kisi_instance” ile yeni bir kişi oluşturduk ve bize Ruby ilginç bir sonuç bastırdı. Bu sonuç bilgisayardan bilgisayara değişebilir, şimdilik üzerinde durmuyoruz ve kişinin ismini, yaşını ve cinsiyetini tanımlıyoruz:

Şimdi ekrana herhangi bir değeri döktürelim:

Sonuç başarılı.

Tüm kod tek parça halinde :

Daha önce ki örneklerde birşey yazdırmak için “print” kullanmıştık, ancak şimdi “puts” kullandık.

Aralarında oldukça ufak bir fark bulunmakta, “print” komutu, sayfaya herhangi birşeyi yazdırır ve imleci o satırda bırakır, “puts” komutu sayfaya birşey yazdırdıktan sonra bir satır boşluk bırakır.

Bir sonra ki gün, görüşmek üzere.

Mustafa Serhat Dündar

Leave a Reply