AI Çağında Ruby
Geçenlerde Devnot geliştirici anketinin Ruby dili kırılımlarına bakan detaylı bir yazı yazmıştım, eğer okumadıysanız bir göz atın derim. O yazının sonuda AI çağında Ruby neden bir alternatif yazı gelecek demiştim. İşte o yazı.
"Ruby öldü mü?" sorusu yıllardır sorulur. Cevap her seferinde aynıdır: hayır. Ama bu sefer cevap biraz farklı. Çünkü Ruby sadece hayatta kalmıyor ve AI çağında beklenmedik bir avantaj kazanıyor.
Bu yazıda bunu somut verilerle, gerçek hikayelerle ve kod örnekleriyle anlatacağım.
Sadece Bir Sayı: 250
Birkaç ay önce Sinaptia ekibi 250 satır Ruby koduyla tam özellikli bir coding agent yazdı. CLI arayüzü, konuşma geçmişi, slash komutları, subagent desteği, kaydet ve devam et özelliği. Hepsi 250 satırda.
Projenin adı Detritus. Açık kaynak. Kodu inceleyebilirsiniz.
Bu rakamı ilk duyduğumda içimden şunu geçirdim: "Tamam, ama Python'da da yapılır." Evet, yapılır. Go'da da yapılır. JavaScript'te de. Ama Ruby'de yazmak farklı hissettiriyor. Ve bu fark sadece estetik değil. Birikir. Zamanla büyür.
Peki neden?
Problem Değişti
Birkaç yıl öncesine kadar yapay zeka uygulaması geliştirmek şu anlama geliyordu: veri seti topla, model eğit, uygulamayı yaz. Bu sürecin her adımı ayrı bir uzmanlık gerektiriyordu.
Şimdi bu tablo köklü biçimde değişti. Modeller hazır. OpenAI, Anthropic, Google ve hepsi API sunuyor. Bizim işimiz artık model eğitmek değil, bu modelleri kullanarak ürünler inşa etmek.
Sinaptia bunu çok güzel özetledi: "Problem lab'dan workshop'a taşındı." Yapay zeka artık bir araştırma problemi değil, bir entegrasyon problemi.
Ve bu değişim her şeyi farklılaştırıyor. Entegrasyon problemleri için ihtiyacınız olan şeyler farklı: hızlı iterasyon, temiz arayüzler, okunabilir kod, güçlü ekosistem. Ruby'nin tam güçlü olduğu alan tam burası.
AI Araçları Her Dili Eşit Yazmıyor
Ruby committer Yusuke Endoh geçen ay ilginç bir deney yaptı. Claude Code'u kullanarak 13 farklı programlama dilinde aynı görevi yaptırdı: mini bir Git implementasyonu. Her dil için 20 ayrı deneme, toplamda 600 çalıştırma. Süreyi, maliyeti ve test başarısını ölçtü.
Sonuçlar şaşırtıcıydı:

Ruby birinci. Python ikinci. JavaScript üçüncü. Sonra büyük bir uçurum var.
Dinamik diller ile statik tipli diller arasında 1.4 ila 2.6 kat fark. Hem sürede hem maliyette. Bu fark neden önemli? Çünkü AI ile geliştirme iteratif bir süreç. Her döngüde biriken küçük farklar, günün sonunda ciddi bir zaman ve para kaybına dönüşüyor.
Convention Over Configuration
Rails'in temel felsefesini biliyorsunuzdur: Convention over Configuration. Her şeyin belirlenmiş bir yeri var. Authentication nasıl yapılır bellidir. Background job nasıl kurulur bellidir. Dosyalar nereye gider bellidir.
Bu felsefe yıllarca tartışıldı. Kimileri "çok kısıtlayıcı" dedi. Ama şimdi bu felsefe beklenmedik bir avantaja dönüştü.
Cursor, Claude Code ya da Copilot bir Rails projesine baktığında ne yapacağını biliyor. Tahmin etmesi gerekmiyor. Controller nereye gider? app/controllers altına. Model nasıl kurulur? ActiveRecord ile. Migration nasıl yazılır? Belirli bir format var.
Bu öngörülebilirlik sayesinde AI araçları Rails projelerinde çok daha doğru öneriler sunuyor. Daha az hata, daha az düzeltme. Kod ilk seferinde daha doğru geliyor.
Steve Clarke geçen ay tam bunu test etti. Aynı promptları farklı framework'lerde denedi. Sonuç netti: konvansiyonları güçlü framework'lerde AI çok daha iyi iş çıkarıyor.
Gerçek Bir Hikaye: 30 Dakika, Production
Soyut konuşmayı bırakıp somut bir örneğe bakalım.
Miles Woodroffe neredeyse bir yıldır dokunmadığı bir meal planning uygulamasına yeni bir özellik eklemek istedi. Vitality uygulamasındaki egzersiz puanlama sistemine benzer bir şey.
Ne yaptı? Vitality'den iki ekran görüntüsü aldı, Claude Code'a sürükledi ve ne istediğini anlattı.
Claude bu görüntülerdeki halkaların 3, 5 ve 8 adımlık tamamlanma hedeflerini temsil ettiğini yorumladı. Aylık pagination ekledi. Miles'ın hiç bahsetmediği bir özet bölümü önerdi. Veritabanı değişikliğini tasarladı. Model ve controller'ı yazdı. Solid Queue ile her gece çalışacak bir job kurdu.
Çalıştı. 30 dakika. 6 aydır ertelenen özellik production'da.
Bu sihir değil. Bu Rails'in convention'larının Claude'a "her şeyin nereye gideceğini" söylemesi. Claude tahmin etmek zorunda kalmadı.
İki Yönlü Avantaj
Ortaya çıkan tablo şu: avantaj iki yönlü işliyor.
Bir yönde: Convention sayesinde AI Ruby'yi daha doğru yazıyor. Rails'in öngörülebilir yapısı, AI'ın nereye ne koyacağını bilmesi anlamına geliyor.
Öte yönde: Ruby'nin berrak syntax'ı sayesinde siz AI'ın yazdığını daha hızlı anlıyorsunuz. Ne yapıldığını görüyorsunuz, neyi değiştireceğinizi biliyorsunuz, devam ediyorsunuz.
Bu döngü; Yaz, anla, değiştir, ilerle ve bu saatler boyunca kesintisiz işliyor. Flow state bozulmuyor.
Sinaptia bunu şöyle formüle etti: Güç sadece yapabilme kapasitesi değil.
Güç = kapasite / efor
Ruby bu oranı maximize ediyor.
Ekosistem Hazır
"Ruby'nin AI kütüphaneleri yok" argümanını hâlâ duyuyorum. Bu artık doğru değil.
RubyLLM şu an 12 provider'ı destekliyor: OpenAI, Anthropic, Google Gemini, Ollama ve daha fazlası. Hepsi aynı arayüzle. 800'den fazla modele erişim var. GitHub'da 4.7 milyon indirme. 37signals production'da kullanıyor.
Koda bakalım. Python ile temel bir OpenAI entegrasyonu:
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4",
messages=[{
"role": "user",
"content": "Merhaba"
}]
)Ruby ile aynı şey:
chat = RubyLLM.chat
chat.ask "Merhaba"Aynı sonuç. Çok daha az gürültü. Ve AI bu kodu ürettiğinde, siz Ruby versiyonunu çok daha hızlı okuyup anlıyorsunuz.
Bunların yanında langchainrb ile RAG pipeline kurabilirsiniz, Active Agent ile Rails'e entegre agent'lar geliştirebilirsiniz. Ekosistem büyüyor.
Evet, PyTorch ve NumPy Python'da. Model eğitiyorsanız Python seçin. Ama model kullanıyorsanız yani AI'ı bir ürün özelliği olarak entegre ediyorsanız. Ruby ekosistemi artık tam anlamıyla hazır.
Disposable Code
Garry Tan geçen ay şöyle dedi: "Rails syntactic sugar için tasarlandı, LLM'ler sugar fiend." Yani LLM'ler tatlıya düşkün, Rails de tam istediğini veriyor.
Miles Woodroffe bunu "disposable code" kavramıyla açıklıyor. Fikirler bu hızda hayata geçebiliyorsa çalışma şekli de değişiyor. Bir branch açıyorsunuz, fikri deniyorsunuz. Tutmadıysa branch'i silip devam ediyorsunuz.
Eskiden koda emek verirdik çünkü maliyetliydi. Şimdi kod ucuzladı. Değerli olan hâlâ fikrin kendisi. Ama o fikri test etmek artık çok daha az efor gerektiriyor.
Bu kültür Rails'in prototipleme felsefesiyle mükemmel örtüşüyor.
Bu Neden Şimdi Oluyor?
2005'te Rails çıktığında şunu söyledi: "Web uygulaması geliştirmenin doğru yolu var. Biz onu convention olarak sunuyoruz. Sen sadece iş mantığına odaklan." Bu o dönemde devrimdi.
2026'da aynı şey tekrar oluyor, bir üst katmanda. LLM'ler entegrasyon problemine dönüştü. Orchestration yazıyoruz, API çağırıyoruz, sistemleri birbirine bağlıyoruz. Rails tam olarak bu iş için tasarlanmış bir ekosistem.
Aynı felsefe. Yeni katman.
Son Olarak
250 satır. Tam özellikli coding agent. 30 dakika. 6 aydır ertelenen özellik production'da. 13 dil içinde birinci.
Bu rakamlar tesadüf değil. Ruby'nin okuması ve yazması kolay syntax'ı, Rails'in öngörülebilir convention'ları ve olgunlaşan AI ekosistemi bir araya gelince ortaya çıkan şey bu.
AI çağında asıl iş nereye kayıyor? Ne inşa ettiğimizi düşünmeye. Hangi problemi çözüyoruz, kullanıcı deneyimi nasıl olmalı, sistem nasıl davranmalı.
Ruby bunu mümkün kılıyor ve bu bence yeterince güçlü bir neden. Peki siz AI projelerinizde hangi dili kullanıyorsunuz? Ruby denediniz mi?
Kaynaklar
Comments ()