RUBY PROGRAMLAMA DİLİ

Veri Akademi6 dk okuma
Ruby kırmızı gem logosu üç boyutlu parlak yüzeyli kesimli yapısıyla tek dominant odak

Şubat 1993'te Tokyo'da Yukihiro "Matz" Matsumoto, bir arkadaşıyla yeni bir dilin ismi üzerine konuşurken iki seçenek arasında kalmıştı: "Coral" ve "Ruby". Doğum taşı esprisiyle Ruby kazandı, ama dilin ilk satırları yazılmadan önce sadece bir fikirdi. Matz iki yıl boyunca sessizce, "programcıyı mutlu eden bir dil olsun" felsefesiyle çalıştı; 1995 sonunda Ruby 0.95 Japon haber gruplarında yayımlandığında kimse yıllar sonra Rails'in dünyayı sarsacağını bilmiyordu.

1. Matz'ın 1993'teki Niyeti: Programcıyı Mutlu Etmek

Matsumoto, Perl'ün esnekliğini ve Smalltalk'ın saf nesne yönelimli yapısını sevdiğini ama hiçbirinin tek başına yetmediğini söylüyordu. Onun amacı teknik bir başarı değildi — "developer happiness" yani geliştirici mutluluğu odaklı bir dil tasarlamaktı. Bu felsefe, Ruby'nin tüm sonraki kararlarına sinmiştir: okunabilirlik, doğal İngilizce'ye yakın söz dizimi, az sürpriz prensibi. Daha fazla bilgi için konunun temel referansı başvurulabilir.

Matz'ın etkilendiği diller arasında Lisp, Eiffel ve Ada da vardı. Ancak Ruby'nin asıl ruhu Smalltalk'tan gelir: her şey nesnedir. Tamsayılar bile. Bu, C++ veya Java gibi hibrit dillerden ayrıldığı en temel noktadır.

2. 1995 Sürümü ve Japonya İçinde Sessiz Büyüme

Aralık 1995'te Ruby 0.95 fruit.fj.sources haber grubunda paylaşıldı. İlk yıllarda dokümantasyon neredeyse tamamen Japoncaydı; bu yüzden dünya genelinde fark edilmesi yavaş oldu. 2000 yılına kadar Ruby topluluğu büyük ölçüde Japonya'yla sınırlı kaldı.

Dönüm noktası 2000'de Dave Thomas ile Andy Hunt'ın yayımladığı "Programming Ruby" (Pickaxe Book) oldu. Bu kitap İngilizce konuşan geliştiricilere kapıyı araladı. O dönemde Ruby kullanıcı tabanı şöyle ilerliyordu:

  • 1995-1999: Japonya merkezli akademik ve hobi kullanımı
  • 2000-2003: Pickaxe sonrası yavaş Batı yayılımı
  • 2004 sonrası: Rails ile patlama
  • 2008-2012: Twitter, GitHub, Shopify gibi büyük örneklerin yükselişi
Ruby dilinin 1993 tasarımından 2020 sürüm 3.0 hedefine uzanan tarihsel kilometre taşları çizgisi

3. 2004 Patlaması: Rails'in Geliyorum Demeden Gelişi

Temmuz 2004'te 37signals'ten David Heinemeier Hansson (DHH), Basecamp projesi için yazdığı web çatısını Ruby on Rails adıyla açık kaynak yayımladı. Rails sadece bir kütüphane değildi — "convention over configuration" ve "don't repeat yourself" prensiplerini somut hale getiren bir manifestoydu.

2005'te DHH'nin "Can you build a blog in 15 minutes?" başlıklı video demosu internet üzerinde viral oldu. PHP veya Java EE ile aynı işi günler süren geliştiriciler için bu sürat baş döndürücüydü. Rails, Ruby'yi pratik anlamda gündeme oturttu ve ardından TIOBE endeksinde 2006'da Ruby ilk kez ilk 10'a girdi.

4. Ruby Sözdiziminin Karakteristik Özellikleri

Ruby'yi öğrenmek isteyenler için Matz'ın felsefesini anlamak kritik. Dilin bazı belirleyici özellikleri:

  1. Saf nesne yönelimi: 5.times do ... end gibi sayılar bile metoda sahip
  2. Blok yapıları: do...end ve { } blokları fonksiyonel programlamayı kolay kılar
  3. Duck typing: Tip kontrolü yerine "davranış" sorgulanır
  4. Monkey patching: Var olan sınıflara çalışma zamanında metod eklenebilir
  5. Metaprogramlama: Kodun kendisini değiştirme yeteneği DSL'lerin temelidir

Karşılaştırma operatörlerinde bile felsefe görünür: 3 < 5 ifadesi true döndürürken, nil && false zinciri short-circuit ile çalışır. Bu detaylar bir araya gelince Ruby ile yazmak, çoğu dilde olduğu gibi savaşmak değil, akmak hissi verir. Daha derin bir başlangıç için Ruby eğitimi içeriklerinden yararlanabilirsiniz.

5. Ruby Sürüm Tarihi: Önemli Kilometre Taşları

Dilin teknik gelişimi de önemli adımlardan geçti:

  • 1995 — Ruby 0.95 ilk halka açık yayın
  • 1996 — Ruby 1.0
  • 2003 — Ruby 1.8 uzun süre standart sürüm oldu
  • 2007 — Ruby 1.9 YARV sanal makinesi ile performans sıçraması
  • 2013 — Ruby 2.0 keyword arguments ve refinements
  • 2020 — Ruby 3.0 "3x3" hedefi: 1.9'a göre 3 kat hız, Ractor ve tip sinyalleri

3.0 ile gelen Ractor, paralel çalışma modeli için önemliydi; çünkü Ruby uzun yıllar GIL (Global Interpreter Lock) yüzünden eleştirilmişti.

6. Bugünkü Ruby ve Hangi Projelere Uygun

Ruby'nin Go veya Rust gibi sistem dilleriyle rekabet ettiği bir alan yoktur. Onun gücü web uygulamaları, prototipleme, DevOps araçları (Chef, Vagrant), statik site üreteçleri (Jekyll) ve metaprogramlama ağırlıklı işlerde ortaya çıkar. GitHub'ın yıllarca Rails üzerinde çalışması, Shopify'ın hâlâ Ruby ile milyarlarca dolarlık ticareti yürütmesi dilin pratik dayanıklılığını gösteriyor.

Ruby dilinin saf nesne yönelimi, blok yapıları, duck typing ve metaprogramlama temel özelliklerinin görsel kümesi

Junior geliştiriciler için Ruby öğrenmek, dilin okunabilir sözdizimi sayesinde programlamanın temel kavramlarını sindirmek için iyi bir kapıdır. Pratik bir başlangıç planı arıyorsanız Ruby eğitimi kaynaklarını inceleyebilirsiniz.

Matz, 2008'de bir röportajda "Ruby tasarlandığında dünyayı değiştirmek istemiyordum, sadece kendim için iyi bir dil yapmak istedim" demişti. Otuz yıl sonra geriye baktığımızda, kişisel bir tatmin projesinin nasıl milyonlarca geliştirici tarafından kullanılan bir teknoloji haline geldiğini görüyoruz — bu Ruby'nin asıl hikâyesidir.

Sıkça Sorulan Sorular

Ruby programlama dili kim tarafından ne zaman tasarlandı?

Ruby, Japon yazılım mühendisi Yukihiro Matsumoto (Matz) tarafından Şubat 1993'te tasarlanmaya başlandı. İki yıl süren özel geliştirmenin ardından Aralık 1995'te Ruby 0.95 sürümü Japon haber gruplarında ilk kez halka açık olarak yayımlandı. Matz dili tasarlarken Perl, Smalltalk, Lisp ve Eiffel'den ilham almıştır.

Ruby ismi nereden geliyor?

Matz ve arkadaşı, dilin ilk satırı yazılmadan önce isim üzerine konuşurken Coral ve Ruby seçenekleri arasında kalmışlardı. Doğum taşı esprisiyle Ruby tercih edildi. Ayrıca Ruby, Perl'den sonra bir başka doğum taşı adı olduğu için dolaylı bir referans olarak da görüldü; ancak Matz bu bağlantının sonradan kurulduğunu söylemiştir.

Ruby on Rails'in Ruby diline etkisi ne oldu?

Temmuz 2004'te David Heinemeier Hansson tarafından yayımlanan Rails, Ruby'yi dünyaya açan asıl katalizör oldu. Convention over configuration prensibi ve 15 dakikada blog kurma demosu sayesinde Ruby kullanıcı sayısı 2005-2008 arasında patlama yaşadı. TIOBE endeksinde Ruby ilk kez 2006'da ilk 10'a girdi.

Ruby ile Python arasındaki temel fark nedir?

Her ikisi de yüksek seviyeli, yorumlanan dillerdir ancak felsefeleri farklıdır. Python tek doğru yolu savunur, Ruby ise aynı işi farklı yollarla yapmaya izin verir. Ruby saf nesne yönelimlidir, sayılar bile nesnedir. Python veri bilimi ve makine öğrenmesinde, Ruby ise web uygulamalarında daha güçlüdür.

Ruby 3.0 ile gelen 3x3 hedefi nedir?

Aralık 2020'de yayımlanan Ruby 3.0, Matz'ın yıllar önce duyurduğu hedefi gerçekleştirdi: Ruby 2.0'a göre yaklaşık üç kat performans artışı. Bunun yanında Ractor adlı paralel çalışma modeli, RBS ile statik tip sinyalleri ve geliştirilmiş JIT derleyici eklendi. Ractor, dilin uzun yıllar GIL yüzünden eleştirilen paralel işleme zaafiyetine yanıt olarak tasarlandı.

Ruby öğrenmek için ön koşul var mı?

Programlamaya yeni başlayanlar için Ruby ideal bir dildir çünkü sözdizimi doğal İngilizce'ye yakındır ve hata mesajları açıklayıcıdır. Önceden başka dil bilmek gerekmez. Yalnızca temel bilgisayar kullanımı ve mantıksal düşünme yeterli. Tarayıcı tabanlı online editörlerle birkaç saatte ilk programınızı yazabilirsiniz.

Ruby hâlâ kullanılıyor mu yoksa eskidi mi?

Ruby kesinlikle yaşıyor. Shopify, GitHub, Airbnb (kısmen), Basecamp ve Stripe gibi büyük platformlar üretimde Ruby ile çalışmaya devam ediyor. Yeni iş ilanları azalsa da var olan Rails uygulamalarının bakımı ve geliştirilmesi büyük bir ekosistem oluşturuyor. Ruby 3.x serisi aktif olarak geliştiriliyor ve her yıl Aralık'ta yeni sürüm yayımlanıyor.

Matz neden Ruby'yi geliştirirken Japonca dokümantasyon tercih etti?

Matz Japon olduğu için ilk yıllarda doğal olarak Japonca yazıyordu ve Ruby başlangıçta yerel bir topluluk projesiydi. Bu durum dilin 1995-2000 arasında Batı'ya ulaşmasını yavaşlattı. Asıl uluslararasılaşma, 2000'de Dave Thomas ve Andy Hunt'ın yayımladığı Programming Ruby (Pickaxe) kitabıyla başladı; bu kitap dünyaya Ruby'yi tanıtan ilk kapsamlı İngilizce kaynaktı.