RUBY PROGRAMLAMA DİLİ

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.

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.

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

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.

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.

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.

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.