HELLO, I’M SERHAT AND THIS IS MY FANCY TITLE.

Ruby günlüğü - gün 2

'Neden Ruby?' sorusunun cevabını IBM'den almak daha ikna edici olabilir;

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 ile 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.

Bu yazıda Ruby geliştirme ortamı ve Ruby konsepti gibi konulardan bahsedeceğim.

Ruby Geliştirme Ortamı - IDE, Aptana Studio, Eclipse

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. Aptana'nın web sayfasına giderek "Eclipse plug-in version" seçeneğini seçerek download edelim, karşımıza nasıl kuracağımızı anlatan sayfa gelecek, oradaki adımları takip ederek kurulumu gerçekleştirin.

ruby-aptana-ide

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ış. İlgilenenler onu da kurup deneyebilirler. NetBeans için plug-in kurulumu açıkcası Ubuntu ortamında çok daha kolay, Eclipse plug-ini için sudo erişimi sağlamanız gerekiyor ve kurulum esnasında 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.

class Kisi
  attr_accessor :isim, :yas, :cinsiyet
end

Ş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. Kodu command promt üzerinde çalıştıralım:

ruby-class-instance

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.

kisi_instance = Kisi.new
<Person:0x358ea8>

Ş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:

kisi_instance.isim = "Mustafa Serhat Dundar"
kisi_instace.yas = "21"
kisi_instance.cinsiyet = "Erkek"

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

puts kisi_instance.isim
Mustafa Serhat Dundar

Sonuç başarılı. Tüm kod tek parça halinde:

class Kisi
  attr_accessor :isim, :yas, :cinsiyet
end

kisi_instance = Kisi.new
kisi_instance.isim = "Serhat"
kisi_instance.yas = "19"
kisi_instance.cinsiyet ="Erkek"

puts kisi_instance.yas

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 sonraki gün görüşmek üzere.

Başarılar.


Share this post!


Blog Comments powered by Disqus.