Ruby

ruby, nesneye yönelik, dinamik, reflektif ve esnek bir programlama dilidir. ruby dili, yukihiro matsumoto tarafından japonya'da tasarlanmaya ve geliştirilmeye başlanmıştır.

sözdizimi olarak, ada, perl, smalltalk, lisp, eiffel gibi programlama dillerinden etkilenen ruby; python ile kimi ortak sözdizimi özelliklerine sahiptir. fonksiyonel, nesneye yönelik, dinamik, reflektif gibi çoklu programlama paradigmalarını destekler.

özgür bir yazılım olan ruby; gpl ve ruby lisansı  ile lisanslanmıştır.

tarihçe 

ruby dilinin temelleri 1993 yılında atılmıştır. bu dönemde nesneye dayalı bir betik dili arayışı içinde olan japon yazılımcı yukihiro "matz" matsumoto; perl, python gibi mevcut programlama dillerini araştırmasına rağmen aradığını bulamayınca yeni bir programlama dili tasarlamaya başladı. şubat 1993'te matz, bir arkadaşı ile yaptığı çevrimiçi sohbet esnasında arkadaşının bu yeni dil için önerdiği ruby ismini uygun buldu ve bu isimle dili geliştirmeye başladı.

aralık 1995'te ruby'nin 0.95 ile ilk genel sürümü yayınlandı. aynı ay içerisinde peş peşe 3 sürüm daha yayınlandı. bu sürümler japonya'da yerel haber gruplarında duyuruldu.

i̇lk genel sürümden tam bir yıl sonra, aralık 1996'da ruby 1.0 yayınlandı. anavatanı japonya'da hızla tanınan ve yayılan ruby, 1999'da i̇ngilizce yazıların yayınlanması ile tüm dünyaya açılma olanağına kavuştu.

2000 yılında japonya'da python'dan daha popüler bir dil haline gelen ruby'nin i̇ngilizce ile yazılan ilk kitabı, programming ruby adıyla aynı yılın ekim ayında yayınlandı.

özellikler 

 nesne tabanlı programlama (kalıtsallık, mixin ve metaclass desteği)
 4 farklı tipte değişken tanımlanabilir: global, class, instance ve local
 her şey bir ifade ve aynı zamanda obje
 hata ve istisna yönetimi
 garbage collection (tr. çöp toplama)
 yüksek taşınabilirlik
 geniş standart kütüphane desteği (yaml, json, xml, cgi, openssl, http, ftp, rss)
 perl benzeri dil seviyesinde doğal düzenli ifade desteği
 rasyonel sayılar, çok büyük sayılar ile çalışabilme

bununla beraber ruby içindeki utf-8 desteği sınırlıdır.

sözdizimi ve yapısı 
ruby'nin sözdizimi günümüzde de yoğun olarak kullanılan perl ve python ile büyük benzerlikler gösterir. sınıf ve metot tanımlamaları anahtar kelimelerle belirlenir. ruby'de perl'in aksine, değişken adlarının başında belirleyici karakterler ($, @@, % gibi) kullanmak bir zorunluluk değildir. python'un tersine girintilerin dilin sözdiziminde bir etkisi yoktur.

ruby, tek çoklu kalıtıma java gibi izin vermemesine rağmen mixin adı verilen nesnelerle bir çeşit arayüz tanımlama imkânı verir. ayrıca paketler üzerinden de bu sınırlama geçiştirilebilir.

ruby'nin tasarımında dikkate alınan diller ada, eiffel, lisp, perl ve smalltalk'dur. dolayısıyla bir betik dili yapısına da sahiptir. ruby, nesneye yöneliklilik açısından tamamen öyle olan java ile smalltalk arası olup yüzde yüz bu paradigmayı uygulamamaktadır..

örnekler 
puts 'merhaba dünya'puts 'bir sayı girin.'
sayi = gets.chomp
puts sayi.to_i
cikti_sayi = number.to_i + 1
puts cikti_sayi .to_s + 'daha büyük bir sayı.'

kullanılabileceği dizgeler 

ruby yorumlayıcısı birçok işletim sistemi için yazılmıştır. hemen hemen tüm işletim sistemlerinde çalışabilir. bunlardan bazıları şunlardır:

 neredeyse tüm unix türevleri
 microsoft platformları (dos, windows 95/98/xp/nt/2000/2003/vista/7/8/8.1/10)
 mac os x
 beos
 amiga
 os/2
 symbian

kaynakça

ayrıca bakınız 
 ruby on rails

dış bağlantılar 
 ruby, ana sayfa (i̇ngilizce)
 ruby, ana sayfa (türkçe)
 ruby belgelendirme sayfası

 
betik dilleri
nesne tabanlı programlama dilleri
dinamik tipli programlama dilleri
c ile programlanmış ücretsiz yazılımlar
nesne yönelimli programlama dilleri
metin tabanlı programlama dilleri