Ruby Nedir? 1.1 Amaçlar 1.2 Ruby`nin Yapısal Sıradüzeni

advertisement
1
Ruby Nedir?
1.1
Amaçlar
Bu kitabın asıl amacı, Ruby on Rails Web Framework’u ile web programcılığı yapacaklara gerekli olan Ruby bilgilerini vermektir.
Bunu yaparken, kitap okura şu becerileri de kazandıracaktır:
• Ruby Dili’ni kullanabilme,
• Ruby’de Sayısal Veri Tipleri’ni bilme ve Ruby’yi Hesap Makinası gibi
kullanabilme,
• Ruby’de string işlemleri’ni yapabilme,
• Ruby’nin temel veri tiplerini bilme ve onlarla işlem yapabilme.
• Ruby’de veri yapıları oluşturabilme ve onlar üzerinde işlem yapabilme,
• Ruby’de veri yapıları arasında dönüşümler yapabilme,
• Ruby’nin Gömülü metotları’nı öğrenme ve kullanabilme
• Ruby kütüphanesini’ni bilme ve kullanabilme,
1.2
Ruby’nin Yapısal Sıradüzeni
Ruby’nin Yapısal Sıradüzeni’nin en tepesinde Basic Object vardır. Her
şey ondan üretilir. Onun altında Object nesnesi vardır. Bütün nesneler,
2
BÖLÜM 1. RUBY NEDIR?
Şekil 1.1: Ruby Sınıflarının Sıradüzeni
sınıflar ve modüller ona bağlıdır. Her şey ondan üretilmiştir. Module doğrudan Object nesnesine bağlıdır. Class sınıfı Module’den üremiştir. Ruby’nin
temel yapısal tipleri diye bilinen Array, Numeric, Hash, Regex, String, IO sınıfları doğrudan Object’ten üremiştir. Numeric sınıfının Integer, Bignum,
Float adlı üç alt sınıfı vardır. Bunlar sayılarla ilgili bütün işleri yaparlar.
Dosya işlemlerini yapan File sınıfı, IO sınıfının bir altsınıfıdır.
Ruby’nin Yapısal Sıradüzeni’ni gösteren iyi bir çizenek kendi sitesinde
yoktur. Belki sürekli gelişen bir dil için, yapısal durumunu gösteren bir
çizenek çizmek uygun değildir. Belki de yapısal sıradüzen (hierarchy) o
kadar karmaşıktır ki onu bir tek çizenek ile ifade etmeye kalkmak yanıltıcı
olabilir. İnternette şu anda var olan en yalın çizenek Şekil 1.1 ile verilendir.
Bu çizenek çok yalınlaştırılmıştır.
1.3
Ruby Nedir?
Ruby kendisini şöye tanıtıyor:
Pragmatik programcılar olarak, bir çok dili inceledik, isteklerimizi iyi
ve kolay yaparak hayatımızı kolaylaştıracak araçlar aradık. Ruby’yi yaratana kadar, incelediğimiz her dilden ürküntüyle ayrıldık.
Bizim işimiz problemleri çözmektir; bir kaşığa sığan derleyici yazmak
değil. Katı kuralları olmayan dinamik bir dil istedik. Kodlarımızla iletişim
1.4. RUBY’NIN NITELIKLERI?
3
içinde olmak için açıklık istiyoruz. Kodların yalın, duyarlı ve etkili olmasının
gerektiğini biliyoruz. Ne kadar az yazarsak o kadar az hata yapacağımızı
biliriz.
Elbette mümkün olduğunca üretken olmak istiyoruz. Kodlarımız ilk
seferinde doğru çalışsın istiyoruz. Kod düzeltmek (debug) için harcanan
zamanın üretim zamanından çalınan zaman olduğunun farkındayız. Kodları yazarken denemenin, düzeltme için harcanacak zamanı kısaltcağının
farkındayız.
Ruby’nin en üst düzeyde soyutlama yapabilen bir dil olmasını amaçladık. Bir dil ne kadar üst düzeyli ise, isteklerimizi kodlama o kadar kolaylaşacak, iş için daha az zaman harcanacaktır.
Ruby’yi yaratınca, amaçlarımızın gerçekleştiğini gördük. Onu yaratmak için, başka dillere harcanan zamandan fazlasını harcadık. Ruby yolunuzun üstündeki engel değildir. Bir problemi çözerken kullandığınız dilin
derleyicisiyle ve o dilin kurallarıyla uğraşmak yerine, doğrudan problemin
çözümüne odaklanabilirsiniz.
Ruby size daha iyi programcı olmanın anahtarını veriyor. Zamanınızı
derleyiciye değil, problemi çözmeye ayırınız.
1.4
Ruby’nin Nitelikleri?
Ruby, 1993 yılında Yukihiro Matsumoto tarafından Japonya’da yaratılan
tamamen nesne tabanlı bir dildir. Matsumoto, Ruby kullanıcıları arasında
Matz diye anılır. Matz ile ilgili bilgilere bir çok web sitesinden erişilebilir.
Örneğin, www.ruby-lang.org sitesi denenebilir.
• Ruby Smalltalk, Perl ve Python dillerinin özeliklerine sahiptir. Bu
diller scripting language grubundadırlar. Smalltalk gerçek nesne yönelimli programlama dilidir. Ruby de onun gibi gerçek nesne yönelimli
bir dildir. Ruby’nin sözdizimi Smalltalk’un sözdiziminden daha kolaydır.
• Ruby genel amaçlı, nesne tabanlı yorumlayıcı bir dildir.
• Ruby Python ve Perl gibi sunucu tarafında çalışır.
• Kullanıcıları, Ruby’nin programcıların en iyi dostu olduğunu savunurlar.
• Ruby açık kaynak kodludur. Web’den ücretsiz indirilebilir, ama lisansa tabidir.
4
BÖLÜM 1. RUBY NEDIR?
• Ruby ile Common Gate Interface (CGI) scriptleri yazılabilir.
• Ruby kodları, Hypertext Markup Language (HTML) diline gömülebilir.
• Ruby’nin yalın ve kolay sözdizimi çabuk öğrenilir.
• Ruby’nin sözdizimi C++ ve Perl gibi bir çok dilin sözdizimine benzer.
• Ruby kolay ölçeklenebiir; dolayısyla Ruby ile büyük programlar yazmak ve bakımını yapmak kolaydır.
• Ruby ile internet ve intranet programları yazılabilir.
• Ruby Windows yanında POSIX nitelikli işletim sistemlerine yüklenebilir.
• Ruby Tcl/Tk, GTK, ve OpenGL gibi GUI araçlarını destekler.
• Ruby DB2, MySQL, Oracle, ve Sybase gibi veri tabanlarına bağlanavilir.
• Büyük bir standart kütüphaneye sahiptir; bu kütüphanede bilgisayar
ile yapılan hemen her iş ile ilgili bir sınıf module ya da metot vardır.
• Kaynak programı yazmak, okumak ve algılamak için harika bir sözdizimi vardır. Kolay öğrenilir ve kolay kullanılır.
• Etkileşimli kipi (mode), küçük programların ve betiklerin kolayca hemen denenmesini sağlar. Kendi içinde irb adlı bir etkileşimli kabuğu
vardır.
• Bir uygulama için görsel arayüz hazırlamaya elverişlidir.
• Kaynak programın yazılması ve okunması çok kolaydır.
• Kaynak programın yapısı için birden çok yöntem vardır. Programcı
kendisine en uygun olanı seçebilir.
• Ruby belleği kendiliğinden düzenler.
1.5. RUBY GERÇEK NESNE TABANLI DILDIR
1.5
5
Ruby Gerçek Nesne Tabanlı Dildir
Ruby on Rails adlı popüler web geliştirme aracının dayalı olduğu Ruby dili
nesne tabanlı, modüler, etkileşimli ve yorumlayıcı bir programlama dilidir.
Kolay öğrenilir. Öteki dillerde blok oluşturmaya yarayan parantezlere ve
noktalama simgelerine, Ruby genellikle, gerek duymaz. Ama onları kullanmaya alışkın olanların kullanmasına izin verir.
Ruby’nin kararlı sürümü 1.8 olarak kabul edilir. Bu kitap 2.0.0 sürümüne göre yazıldı. Ruby sürekli geliştirilen bir dil olduğu için, ilerideki
zamanlarda yeni sürümleri ortaya çıkacaktır. Ruby’yi öğrenmek isteyenlerin ve Ruby ile uygulama yazmak isteyenlerin son sürümü kullanmaları
önerilir.
Yalın ve kendine özgü bir sözdizimi (syntax) vardır. Unix , Linux,
Mac, Windows, Amiga, Symbian vb her işletim sistemi üzerinde çalışabilir.
Bazı Unix, Linux ve Mac sürümleriyle birlikte gelir. Ruby derleyicisi, Ruby
web sitesinden ücretsiz indirilebilir. Şu anda oldukça geniş bir kütüphaneye
sahip olmuştur. Kütüphanede module adını alan birimler, hemen her programcının gerekseme duyacağı metotları içerir. Ruby, her sınıf içinde metot
tanımlamak yerine, her sınıfa uygulanabilen metotları module’ler içinde
toplamıştır. Böyle oluşu, dili daha küçük ama daha etkin kılmıştır.
Ruby, gelişmiş kütüphanesi ve kolay sözdizimi nedeniyle, büyük programlarda C++, Java gibi dillere tercih edilen bir dil olmuştur. Java’nın ağır
sözdizimini yalın duruma getirdiği için, Java programcılarının dikkatini çekmektedir.
1.6
Ruby’un Uygulama Alanları
• Web tabanlı uygulamalar (Ruby on Rails)
• Ağ
• GUI (Görsel arayüzler)
• İşletim sistemi ile ilgili uygulamalar
• Oyunlar
• Veri İşleme (veritabanı uygulamaları)
• İş hayatı için uygulamalar
6
1.7
BÖLÜM 1. RUBY NEDIR?
irb
irb’ye Etkileşimli Ruby kabuğu (Interactive Ruby, Ruby Shell) deniyor. Hemen her işletim sistemi için var olan kabuktur (komut istemi penceresi)
gibidir. irb kabuğu, kullandığınız işletim sisteminin komut istemi penceresinde (kabuk) açılır. Ruby yorumlanabilen bir dil olduğu için, irb’de yazacağınız her Ruby komutuna anında karşılık alırsınız. Ruby kabuğu, ondan
beklenen her şeyi verir.
Komutları akılda tutar (command-line history). Önceden verdiğiniz
komutları yukarı aşağı tuşlarına basarak, görüntüye getirebilir, Onları yeniden yazmaya gerek kalmadan, Enter tuşuna basarak çalıştırabilirsiniz. Görüntüye gelen komut üzerinde sol-sağ tularıyla geri-ileri giderek, komutta
değişiklik yapabilirsiniz. İş denetimi yapabilirsiniz. Ayrıntılar için Ruby dökümanlarına bakabilirsiniz.
1.8
Ruby Programları
Ruby’de birden çok satır gerektiren script ya da programları bir editörle yazıp .rb uzantısıyla kaydedebilirsiniz. Ruby programlarını çalıştırmak için,
ruby program_adı.rb
yazmak yetecektir. Tabii, sisteme ruby’nin yerini tanıtmadıysanız, ruby’nin
ve programın bulunduğu adresleri (path) yazmanız gerekecektir. Unix türevlerinde programın ilk satırı olarak, ruby’nin adresini
#! /usr/bin/ruby -w
biçiminde yazmak, sizi ruby’nin bulunduğu adresi yazmak zahmetinden
kurtaracaktır. Buna Unix’te "shebang" deniyor. Daha iyisi çevre değişkenlerini (environment variables) ayarlamaktır. Bu işin nasıl yapıldığı, işletim
sistemine bağlıdır. Ruby web sayfasında her işletim sistemi için çevre değişkenlerinin nasıl ayarlanacağını anlatan ayrıntılı açıklamalar vardır. Burada
onları tekrarlamanın gereği yoktur. Unix sistemlerde, kullanıcının, programı çalıştırma yetkisine sahip olması gerekir. Bunun için, mod değiştirme
yetkisine sahip olanın, kullanıcıya yetki vermesi gerekir. Bu yetkiyi
chmod +x proram_adı.rb
komutu ile verebilir (bkz. [14], [16], [11]).
Download