'Ruby Ciddi Bir Programlama Dili Değildir' Söylemine Yanıt
(robbyonrails.com)- Ruby’yi “ciddi olmayan bir dil” olarak gören yaklaşıma karşı, Ruby programlamayı daha insani ve keyifli bir hale getiren bir dildir
- Başlangıçtaki Ruby topluluğu küçük ve neşeli bir isyan gibi doğdu ve karmaşıklıktan çok netlik ve erişilebilirlike odaklandı
- Shopify, Doximity, GitHub gibi gerçek büyük ölçekli hizmetlerin Ruby ile çalıştırıldığı örnekler, somut başarıları kanıtladı
- Ruby’nin özü kod yazan kişinin deneyimi ve sürdürülebilir geliştirme kültüründedir; bu da basit bir nostalji değil, takdir ve saygılı bir tutumdur
- Gelecekte yazılım geliştirmede de okunabilirlik, sürdürülebilirlik ve eğlence daha önemli olmaya devam edeceğinden Ruby’nin değeri yine de anlamlı bir referans noktası olarak kalacak
Ruby ve “ciddiyet” kavramı
- “Ruby ciddi bir dil midir?” sorusu, programlamanın hangi duyguyla yürütülmesi gerektiğine dair algı farkını gösteriyor
- Bazıları için kullanması keyifli bir aracı “ciddi değil” olarak nitelemek yeterliyken, Ruby böyle bir tanıma katılmıyor
- Ruby’nin ilk dönemleri küçük bir topluluk ve şakacı enerjiyle doluydu ve programlamanın baskıcı olmak zorunda olmadığını gösterdi
- O dönemdeki eleştirmenler çoğunlukla Java mimarları veya geleneksel kurumsal geliştiricilerdi; Ruby topluluğu ise bunları umursamadan gerçek ürün geliştirmeye odaklandı
Erişilebilirlik ve üretkenliği öne çıkaran dil
- Ruby, yalnızca sadelikten çok erişilebilirliği (approachability) hedefleyerek yeni başlayanların ve küçük ekiplerin hızlı büyümesine yardımcı olur
- Karmaşık teoriden çok ivme ve netlike önem vererek kaygısızca geliştirmeye devam etmeyi sağlar
- Bu özellikler sayesinde bootcamp’ler ve startuplar Ruby’yi benimsedi ve bu, hız ve yaratıcılık odaklı ortamlara çok uyumluydu
- Twitter örneğinde olduğu gibi, Ruby şirketin büyümesine yeterince katkı sağladı ve ardından farklı bir teknolojiye geçilmesi başarının bir sonucu olarak sunuldu
Pratikte güvenilirlik ve somut örnekler
- Onlarca yıllık danışmanlık deneyiminde Ruby seçimiyle başarısız olan bir takım yoktu; aksine başarısızlığın nedeni çoğu zaman karmaşıklık, tereddüt ve aşırı “ciddiyet” oldu
- Ruby, geliştiricinin temel işe odaklanmasını engellemeyen bir dil olarak değerlendiriliyor
- Shopify, Doximity, GitHub gibi önemli hizmetlerin Ruby ile çalıştırılması, bunun duygudan değil somut kanıt (proof) ile gösterildiği bir durumdur
Ruby kültürü ve insan odaklı geliştirme felsefesi
- Ruby, kod yazma hissini ve okuma deneyimini önemseyen kişileri çeker; bu da nostaljinin değil sürdürülebilir yazılım yapım yöntemidir
- Ruby topluluğu ifade zenginliği ve insan merkezliliğini vurgular; programlamanın insan için bir eylem olduğunu hatırlatır
- Başka dilleri tercih edenlerle olan fark sadece bir zevk meselesidir ve Ruby herkesi ikna etmeye çalışmaz
Geleceğin programlaması ve Ruby’nin rolü
- Gelecekte yazılım geliştirme, tek bir dil, tek bir paradigma veya tek bir ideolojinin egemen olmadığı, hibrit ve esnek bir biçimde ilerleyecektir
- Yapay zekânın kod yazdığı bir çağda, okunabilirlik ve sürdürülebilirlik daha da önem kazanacak; burnout’un sıradanlaştığı bir ortamda ise keyif temel değer haline gelecek
- Ruby’nin değerleri olan netlik, empati ve insan odaklılık geçmişten miras değil, geleceğe dair bir ölçüt olacaktır
“Ciddiyet”ten çok yankılanan kod
- Toplum ve iş dünyası, ‘ciddiyet’ten çok rezonans (resonance) ve netlik, insaniyeti ödüllendirir
- Ciddi adaylar, müzisyenler, sanatçılar, startuplar ve mühendislerin her zaman başarılı olması şart değildir
- Ruby, takım için yazılmış kodu, insan için programlamayı savunur ve bu yaklaşım endüstrinin daha insani kalmasına yardım eder
- Meraklı ve neşeli geliştiriciler geleceğin teknoloji ekosisteminde kilit rol oynayacak ve Ruby bu akış içinde hâlâ anlamlı bir dil olmaya devam edecektir
Sonuç
- “Ruby gerçekten ciddi bir dil midir?” sorusu yanlış bir sorudur
- Daha uygun soru, “Ruby bir sonraki nesil yazılıma hâlâ anlamlı bir katkı sunabilir mi”dir ve yanıtı evettir
- Eğer bunun anlamı “ciddi değildir” ise, Ruby’nin konuşulması gereken en güçlü nedenin de tam da bu olduğu söylenebilir
2 yorum
Ruby ciddi bir programlama dili değildir
Hacker News görüşü
Ruby sebep olmuş olsa bile, o tercih sayesinde iş başladı ve ilk başarı elde edildi
Twitter’ın sorunu dilden değil, büyük ölçekli fan-out (ünlü birinin tweet’i → milyonlarca takipçi) gibi özel bir durumdan kaynaklanıyordu
Ayrıca, en baştan “ölçeklenebilir” bir dil kullandığı halde başarısız olan girişimlerden kimse söz etmiyor — bu tipik bir hayatta kalma yanlılığı
Wired’daki ilgili yazar sayfasına bakınca, tartışma yaratacak yazıları stratejik olarak yazıyor gibi görünüyor
Ben ise hâlâ Ruby ile faydalı yazılımlar üreten sessiz çoğunluktan biri olarak yoluma devam ediyorum
Sadece geçmişteki sınırlamaları sıralamış; gerçekte sorun büyük ihtimalle kendisinin devraldığı kod tabanındaydı
İlk yazının asıl noktası “2025’te Ruby’yi yeni bir seçim olarak tercih etmek için bir neden yok” idi ve tartışmanın odağı bu olmalıydı
Bu yazı ise duygulara hitap eden bir yöne gitti ve ironik biçimde, Ruby’nin duygusallıkla hareket ettiği yönündeki önceki iddiayı kendisi doğrulamış oldu
Elixir sevenlerin çoğu Ruby’yi ‘ciddi olmayan’ bir dil olarak görüyor ama Elixir de Ruby’den güçlü biçimde etkilenmiş durumda
Pek çok kişi, Ruby’nin tanıdık söz dizimini fonksiyonel temelle birleştiren Elixir’e çekiliyor
Özellikle BEAM runtime sayesinde işletim özellikleri tamamen farklı
BEAM, basit bir dilden çok sistemler için bir sistem gibi hissettiriyor — her şeyi izleyebilir, yeniden başlatabilir ve gözlemleyebilirsiniz
Ancak Crystal’ın, Elixir’den bile daha ciddi bir popülerlik eksikliği sorunu var
TIOBE sıralamasına göre Elixir ilk 50 içinde
İlki sadece StackOverflow istatistikleriyle Twitter’dan söz ediyor, ikincisi ise yalnızca nostalji ve estetik anlatıyor
Bunu bir LLM’in değil de bir insanın yazmış olması daha da üzücü
“çalışan bir sistemin bu dille yazılmış olmasını ister miyim?”
Bu iki soruya aynı yanıtı veren kişi çok azdır
Ocaml’i seviyorum ama ekosistemi zayıf ve insan kaynağı bulmak zor olduğu için üretimde çalışan sistemlerde kullanmak istemem
Tür notları ve denetim araçları olan Python bakımı kolay olabilir ama bunlar yoksa dokümantasyon kültürü şarttır
İlkiyse COBOL, ikincisiyse başka seçimler ilginç hâle gelir
Duygusal nedenlerle değil; sadece yazma keyfi çok yüksek — özellikle JavaScript’e kıyasla çok daha keyifli
Ruby’ye saldıran yazılar tuhaf geliyor
Github, Twitter, Coinbase, Shopify gibi başarılı örnekler var; ölçeklenebilirlik sorunları başarının bir yan ürünü sadece
Ruby harika bir araç ve bir sonraki projenize uygun olup olmadığına kendiniz bakmanızı öneririm
İddia “Ruby asla ölçeklenmez” ise bu çoğu dil için de geçerli
Sonuçta iki yazı da “Ruby sonsuza dek çalışmaz” noktasında birleşiyor
İlginç olan, orijinal yazının Ruby’nin StackOverflow sıralamasını 18. diye küçümsemesine rağmen
gerçekte 2024 itibarıyla 14. sırada olması ve övdüğü Scala’nın onun 9 sıra altında kalması
StackOverflow 2024 anket bağlantısı
10 yıl önce yazdığım Ruby kodu, örneğin WebKit’in offlineasm derleyicisi, hâlâ gayet iyi çalışıyor
Ruby’nin söz dizimi temiz ve ifade gücü yüksek ama dinamik tipleme ve sihir (örtük davranış) yüzünden kullanımı zor gelebiliyor
Bana göre değil ama bazı insanlar için kusursuz bir dil
Hayranları bunu şaşırtıcı ve eğlenceli buluyor ama bazılarına ürkütücü geliyor
Python’daki Flask da benzer şekilde context local proxy kullanıyor
Buna karşılık Zig ve Go, “her şey açık olmalı” tepkisiyle ortaya çıktı; Rust ise ikisinin ortasında bir yerde duruyor
Rust katı ama DSL benzeri ifade gücünü temiz biçimde sunuyor
Algoritma performansı 10 kat arttı, değişmezlik sayesinde hata sayısı azaldı ve eşzamanlılık desteği de harikaydı
Pattern matching ve guard’lar sayesinde boilerplate ortadan kalktı; GIL yok ve süreç başına GC var
Öğrenme eğrisi biraz var ama Elixir, uzun vadeli bakım ve yük açısından çok daha iyi ölçekleniyor
Ruby topluluğu hâlâ harika
Sadece Elixir’nin yerel çalıştırılabilir dosyalara derlenebilmesini ya da tarayıcıda çalışabilmesini isterdim
Hâlâ “Ruby gibi düşünüyorum” ama kişisel projelerimi Elixir/Erlang ile yapıyorum
İşte Golang ve Python kullanıyorum ama keyif almıyorum
Kişisel script’lerimi hâlâ Ruby ile yazıyorum
Popülerlik veya aşinalıktan çok, bir dilin özelliklerinin kod kalitesine etkisini soğukkanlı biçimde analiz eden tartışmaların daha değerli olduğunu düşünüyorum
Böyle tartışmalar çoğu zaman monad ya da applicative gibi kavramlar yüzünden insanları uzaklaştırıyor ama asıl faydalı olan tartışma bu
Türler ve kısıtlar arttıkça kalite yükselir ama geliştirme hızı ve esneklik düşer
Bu tür yazılar HN’de dil kavgalarını tetikleyen bir zehir gibi
Ciddiye almaya gerek yok
Ama artık Kotlin bana daha uygun geliyor — bunun nedeni statik tipleme ve söz diziminin ergonomik olması
Ruby, proje büyüdükçe tedirgin edici oluyor ama küçük işler için hâlâ sevilesi bir dil
Bu dilin suçu olmayabilir ama güvenlik korkulukları az olan dillerde tehlikeli kodların birikme eğilimi var
if.classçalıştırıldığında bunun tam öyle olmadığı görülüyorYine de popüler diller arasında buna en çok yaklaşanlardan biri