IRC ve mIRC Kullanıcılarının Buluşma Noktası
  Mobil Sohbet, Sohbet ve Sohbet Odaları




Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 27 Ekim 2009, 17:20   #1
Çevrimdışı
Ruby [ Programlama Dili ] Nedir ?


-- Sponsor Baglantı --


IRCForumlari, Programlama basligi altinda gezinirken gozume carpti. Ozellikle Programlama konusundaki alt basliklarin yeterince az oldugu apacik ortada.

Forumumuzda sadece C#, C++, Visual Basic ve Delphi 'ye yer verilmis. Ancak bilindigi uzere programlama dilleri sadece bunlardan ibaret degildir.

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
PythonMonoRubyPascalPerlBashLisp

gibi onlarca programlama dilleri mevcuttur.

Forumda ki eski yonetici arkadaslardan ricam olarak programa konulu basligi biraz daha zenginlestirmek ve diger programlama dillerine de yer vermeleridir.

Bu yazimda size Ruby programlama dili hakkinda bahsedecegim.



Ruby programala dilleri arasinda en populer olanlardan birisidir. Ruby dengenin dilidir. Ruby’nin yaraticisi Yukihiro Matsumoto “matz” dir. En sevdigi dillerin (Perl, Smalltalk, Eiffel, Ada, ve Lisp) en iyi özelliklerini harmanla***** fonksiyonel programlama ile imperativ programlamaya dayanan yeni bir dil yaratmayi amaclamistir.

Matz, her zaman “Ruby’ i basit degil, dogal yapmaya calistigini” vurgulamistir, tipki yasam gibi… Buradan yola cikarak Matz asagidakileri ekler: Ruby tipki insan vücudu gibi, görünüste basit, ama icinde çok kompleks bir yapiya sahiptir.

Matz yeni bir dil yaratmadan önce ideal söz dizimini bulmak için diğer programlama dillerini incelemiş ve araştırmasının sonunda “Perl’den daha güçlü ama Python’dan daha nesneye yönelik bir betik dili” istediğini söylemiştir.

Ruby’de herşey bir nesnedir. Gördüğünüz en ufak bilgi parçası ve kod kendi özelliklerine ve olaylarına sahiptir. Özellikleri isimle çağırma örnek değişkenler ,olaylar da metotlar olarak isimlendirilir. Ruby’nin yüzde yüz saf nesneye yönelik bir dil olduğunun en iyi ispatı bir kod parçası ile bir sayıya olay vererek yapılır:

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
5.times { print "IF'yi *seviyoruz* -- harika bir forum!" 

Çoğu dilde sayılar ve diğer ilkel tipler nesne değildir. Ruby tüm tiplerine metotlar ve örnek değişkenler verme geleneğini Smalltalk’tan miras almıştır.

Ruby kullanıcılara istediği kısımları değiştirebilme imkanı sunduğu için esnek bir dildir. İsteğe bağlı olarak Ruby’nin esaslı kısımları bile kaldırılabilir, yeniden tanımlanabilir ya da yeni kısımlar eklenebilir. Ruby programıcıyı kısıtlamamayı amaçlamaktadır.

Örneğin toplama işleminin artı (+) operatörü ile yapıldığını biliyoruz. Ama eğer okunabilirlik amacıyla topla gibi bir kelime kullanmak istiyorsanız Ruby’nin gömülü Numeric sınıfına yeni bir metod ekleyebilirsiniz.

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
class Numeric
  def topla
(x)
    
self.+(x)
  
end
end

5.topla 6
# y'nin değeri 11 oldu. 

Ruby’nin operatörleri sözdizimsel olarak esnektir, yeniden tanımlamanıza olanak sağlar.

Ruby’nin esnek bir dil olarak anılmasının en önemli sebeplerinden biri de bloklardır.Bir kapamayı (closure) herhangi bir metoda ataçlayabilir ve metodun nasıl tepki vereceğini belirleyebilirsiniz. Kapamalar, bloklar olarak anlandırırlırlar ve PHP ya da Visual Basic gibi imperativ dillerden Ruby’ye geçenler arasında en popüler özelliğe dönüşmüştür.

Bloklar fonksiyonel dillerden esinlenilerek Ruby’ye getirilmiştir. Matz “Ruby kapamalarında, Lisp kültürüne saygı göstermek istedim.” demiştir.

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
search_engines 
  %
w[Google Yahoo MSN].map do |engine|
    
"
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">+ 
engine.downcase ".com"
  
end 

Yukarıdaki kodda bir blok do ... end yapıları içerisinde tanımlanıyor. map metodu bloğa bir kelime listesi ile çalıştığını bildiriyor. Ruby’de bunun gibi bir çok metod programcıya kendi bloklarını yazıp, metodu istediği gibi şekillendirmesine izin vermektedir.

Pek çok nesneye yönelik dilin aksine, Ruby özellikle yalnızca tekil mirası destekler. Çünkü Ruby modül konseptini (Nesnesel-C’de Kategoriler) kullanır ve modüller metodların bir koleksiyonundan ibarettir.

Sınıflar bir modülü kendisine dahil ederse, onun tüm metodlarını da almış olur. Örneğin each metodunu gerçekleştiren her sınıf Enumerable modülünü de kendisine dahil edebilir, böylece döngülerde each ile beraber kullanabileceği bir dizi metoda sahip olur.

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
class MyArray
  
include Enumerable
end 

Genelde Ruby’ciler bu yolu bazen çok karmaşıklaşan ve kısıtlayıcı olan çoklu mirastan daha temiz ve sağlam bir yöntem olarak görürler.

Her ne kadar Ruby sınırlı sayıda noktalama işareti ve İngilizce anahtar kelimeler kullansa da, bazı noktalama işaretleri Ruby’yi dekore etmek için kullanılır. Ruby’de değişken tanımlamaları yoktur. Değişkenlerin faaliyet alanlarını belirlemek için basit noktalama işaretleri kullanılır.

  • var yerel bir değişken olabilir
  • @var bir örnek değişkendir.
  • $var bir global değişkendir.
Bu işaretlendirmeler sayesinde programcı her değişkenin rolünü kolayca görebilmektedir. Aynı zamanda her örnek değişken için self. kullanma külfetini ortadan kaldırmıştır.

Ruby çok çeşitli özelliklere sahiptir, aşağıda bir kaçından bahsedilmiştir:
  • Ruby Java ya da Python gibi istisna yakalama mekanizmalarına sahiptir, hatalarla başetmek kolaylaşır.
  • Ruby tüm nesneleri için gerçek bir mark & sweep çöp toplayıcısı sunar. Eklenti kütüphanelerinde referans sayaçlarına gerek yok, Matz’ın dediği gibi: “Bu sizin sağlığınız için iyidir”.
  • C’den Ruby çağıran şık API’si sayesinde Ruby’de C eklentileri yazmak Perl ya da Python’dan daha kolaydır. Bu API aynı zamanda yazılımlara betik dili olarak Ruby’yi gömmek için gereken çağrıları da içerir. Ayrıca SWIG arayüzü de alternatif olarak sunulmaktadır.
  • İşletim sistemi izin verdiği sürece harici dinamik kütüphaneler yükleyebilirsiniz.
  • Ruby işletim sisteminden bağımsız iş parçacığı özelliği sunar.Yani işletim sisteminin desteklemesine bakmaksızın, MS-DOS üzerinde olsanız bile çoklu iş parçacıkları kullanabilirsiniz!
  • Ruby yüksek taşınabilirliğe sahiptir. GNU/Linux üzerinde geliştirilmiş olsa dahi, UNIX’in bir çok çeşidi, Mac OS X, Windows 95/98/Me/NT/2000/XP, DOS, BeOS, OS/2, vb. üzerinde çalışmaktadır.
IRCForumlari, Programlama basligi altinda gezinirken gozume carpti. Ozellikle Programlama konusundaki alt basliklarin yeterince az oldugu apacik ortada.

Forumumuzda sadece C#, C++, Visual Basic ve Delphi 'ye yer verilmis. Ancak bilindigi uzere programlama dilleri sadece bunlardan ibaret degildir.

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
PythonMonoRubyPascalPerlBashLisp

gibi onlarca programlama dilleri mevcuttur.

Forumda ki eski yonetici arkadaslardan ricam olarak programa konulu basligi biraz daha zenginlestirmek ve diger programlama dillerine de yer vermeleridir.

Bu yazimda size Ruby programlama dili hakkinda bahsedecegim.



Ruby programala dilleri arasinda en populer olanlardan birisidir. Ruby dengenin dilidir. Ruby’nin yaraticisi Yukihiro Matsumoto “matz” dir. En sevdigi dillerin (Perl, Smalltalk, Eiffel, Ada, ve Lisp) en iyi özelliklerini harmanla***** fonksiyonel programlama ile imperativ programlamaya dayanan yeni bir dil yaratmayi amaclamistir.

Matz, her zaman “Ruby’ i basit degil, dogal yapmaya calistigini” vurgulamistir, tipki yasam gibi… Buradan yola cikarak Matz asagidakileri ekler: Ruby tipki insan vücudu gibi, görünüste basit, ama icinde çok kompleks bir yapiya sahiptir.

Matz yeni bir dil yaratmadan önce ideal söz dizimini bulmak için diğer programlama dillerini incelemiş ve araştırmasının sonunda “Perl’den daha güçlü ama Python’dan daha nesneye yönelik bir betik dili” istediğini söylemiştir.

Ruby’de herşey bir nesnedir. Gördüğünüz en ufak bilgi parçası ve kod kendi özelliklerine ve olaylarına sahiptir. Özellikleri isimle çağırma örnek değişkenler ,olaylar da metotlar olarak isimlendirilir. Ruby’nin yüzde yüz saf nesneye yönelik bir dil olduğunun en iyi ispatı bir kod parçası ile bir sayıya olay vererek yapılır:

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
5.times { print "IF'yi *seviyoruz* -- harika bir forum!" 

Çoğu dilde sayılar ve diğer ilkel tipler nesne değildir. Ruby tüm tiplerine metotlar ve örnek değişkenler verme geleneğini Smalltalk’tan miras almıştır.

Ruby kullanıcılara istediği kısımları değiştirebilme imkanı sunduğu için esnek bir dildir. İsteğe bağlı olarak Ruby’nin esaslı kısımları bile kaldırılabilir, yeniden tanımlanabilir ya da yeni kısımlar eklenebilir. Ruby programıcıyı kısıtlamamayı amaçlamaktadır.

Örneğin toplama işleminin artı (+) operatörü ile yapıldığını biliyoruz. Ama eğer okunabilirlik amacıyla topla gibi bir kelime kullanmak istiyorsanız Ruby’nin gömülü Numeric sınıfına yeni bir metod ekleyebilirsiniz.

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
class Numeric
  def topla
(x)
    
self.+(x)
  
end
end

5.topla 6
# y'nin değeri 11 oldu. 

Ruby’nin operatörleri sözdizimsel olarak esnektir, yeniden tanımlamanıza olanak sağlar.

Ruby’nin esnek bir dil olarak anılmasının en önemli sebeplerinden biri de bloklardır.Bir kapamayı (closure) herhangi bir metoda ataçlayabilir ve metodun nasıl tepki vereceğini belirleyebilirsiniz. Kapamalar, bloklar olarak anlandırırlırlar ve PHP ya da Visual Basic gibi imperativ dillerden Ruby’ye geçenler arasında en popüler özelliğe dönüşmüştür.

Bloklar fonksiyonel dillerden esinlenilerek Ruby’ye getirilmiştir. Matz “Ruby kapamalarında, Lisp kültürüne saygı göstermek istedim.” demiştir.

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
search_engines 
  %
w[Google Yahoo MSN].map do |engine|
    
"
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">+ 
engine.downcase ".com"
  
end 

Yukarıdaki kodda bir blok do ... end yapıları içerisinde tanımlanıyor. map metodu bloğa bir kelime listesi ile çalıştığını bildiriyor. Ruby’de bunun gibi bir çok metod programcıya kendi bloklarını yazıp, metodu istediği gibi şekillendirmesine izin vermektedir.

Pek çok nesneye yönelik dilin aksine, Ruby özellikle yalnızca tekil mirası destekler. Çünkü Ruby modül konseptini (Nesnesel-C’de Kategoriler) kullanır ve modüller metodların bir koleksiyonundan ibarettir.

Sınıflar bir modülü kendisine dahil ederse, onun tüm metodlarını da almış olur. Örneğin each metodunu gerçekleştiren her sınıf Enumerable modülünü de kendisine dahil edebilir, böylece döngülerde each ile beraber kullanabileceği bir dizi metoda sahip olur.

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
class MyArray
  
include Enumerable
end 

Genelde Ruby’ciler bu yolu bazen çok karmaşıklaşan ve kısıtlayıcı olan çoklu mirastan daha temiz ve sağlam bir yöntem olarak görürler.

Her ne kadar Ruby sınırlı sayıda noktalama işareti ve İngilizce anahtar kelimeler kullansa da, bazı noktalama işaretleri Ruby’yi dekore etmek için kullanılır. Ruby’de değişken tanımlamaları yoktur. Değişkenlerin faaliyet alanlarını belirlemek için basit noktalama işaretleri kullanılır.

  • var yerel bir değişken olabilir
  • @var bir örnek değişkendir.
  • $var bir global değişkendir.
Bu işaretlendirmeler sayesinde programcı her değişkenin rolünü kolayca görebilmektedir. Aynı zamanda her örnek değişken için self. kullanma külfetini ortadan kaldırmıştır.

Ruby çok çeşitli özelliklere sahiptir, aşağıda bir kaçından bahsedilmiştir:
  • Ruby Java ya da Python gibi istisna yakalama mekanizmalarına sahiptir, hatalarla başetmek kolaylaşır.
  • Ruby tüm nesneleri için gerçek bir mark & sweep çöp toplayıcısı sunar. Eklenti kütüphanelerinde referans sayaçlarına gerek yok, Matz’ın dediği gibi: “Bu sizin sağlığınız için iyidir”.
  • C’den Ruby çağıran şık API’si sayesinde Ruby’de C eklentileri yazmak Perl ya da Python’dan daha kolaydır. Bu API aynı zamanda yazılımlara betik dili olarak Ruby’yi gömmek için gereken çağrıları da içerir. Ayrıca SWIG arayüzü de alternatif olarak sunulmaktadır.
  • İşletim sistemi izin verdiği sürece harici dinamik kütüphaneler yükleyebilirsiniz.
  • Ruby işletim sisteminden bağımsız iş parçacığı özelliği sunar.Yani işletim sisteminin desteklemesine bakmaksızın, MS-DOS üzerinde olsanız bile çoklu iş parçacıkları kullanabilirsiniz!
  • Ruby yüksek taşınabilirliğe sahiptir. GNU/Linux üzerinde geliştirilmiş olsa dahi, UNIX’in bir çok çeşidi, Mac OS X, Windows 95/98/Me/NT/2000/XP, DOS, BeOS, OS/2, vb. üzerinde çalışmaktadır.
  Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
radyo44.com.tr
Cevapla

Etiketler
dili, nedir, programlama, ruby

Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
C++ Programlama Dili.. CoKraiL C ve C++ 0 19 Ekim 2010 17:11
C Programlama Dili Spacely C ve C++ 1 23 Nisan 2010 14:16
Delphi (programlama dili) Spacely Delphi 0 22 Nisan 2010 22:48
C++ Programlama Dili Cemalizim C ve C++ 0 19 Temmuz 2008 15:09
Python Programlama Dili. Ocean GNU, Linux ve UNIX 0 16 Temmuz 2008 13:54