Ruby Ciddi Bir Programlama Dili Değil
(wired.com)- İlk öğrenilen dilin bıraktığı imprinting etkisi, Ruby'ye karşı kendine özgü bir bağlılık yarattı ve birçok geliştiricinin kusurları bir "karakter" gibi benimsemesine yol açıyor
- Ruby'yi geç dönemde öğrendiğinizde, süslü dış görünümün altında yatan dinamik tipin açıkları, footgun ve yavaş performans doğrudan ortaya çıkar ve bir önceki nesil gibi his bırakır
- Twitter'daki Fail Whale olayı ile Scala'ya geçiş, ayrıca 2010'lar boyunca süren Ruby'den kaçış akışı, bu dilin performans sınırlarını doğruladı
- Rails bir dönemi taçlandırdıysa da bugün bütünleşik felsefesi bir ölçeklenebilirlik duvarına dönüşmüş durumda ve web'in patlayıcı büyümesi içinde artık doğal olarak uyum sağlamıyor
- Şu anda Ruby'yi destekleyen şey, Rails mirası, ilk dönem imprintini yaşayan geliştiricilerin duygusal bağlılığı ve güzel bir isme duyulan nostaljiden ibarettir
Programlama Dilleri ve “İmprinting”in Gücü
- Psikolojide sözü edilen imprinting (iz bırakma etkisi) programlamada da benzer biçimde çalışır
Tıpkı yeni bir kuzu/gaz yavrusunun ilk gördüğünü ebeveyn sanması gibi, ilk öğrenilen dil geliştiricinin sezgisini uzun süre etkiler - Ruby, tam da bu imprinting'in en tipik faydalanıcısıdır
Programlamanın "ilk kez doğal hissettirdiği an" ile bağlantılı olduğu için, dile karşı derin bir bağlılık bırakır - Erken öğrenilen bir dilde sevgi kusurları gölgeler, geç öğrenildiğinde ise bulanıklık olmadan yalnızca gerçek yüzü görünür
Ruby'nin Doğuşu ve Özellikleri
- Ruby, 1995 yılında Japonya'nın Osaka'dan geliştirici Yukihiro Matsumoto (Matz) tarafından oluşturuldu. Ruby, Batı dışı bir bölgede doğan tek başat programlama dilidir
- Matz'ın nazik kişiliğinden türeyen, MINASWAN (Matz Is Nice And So We Are Nice) adlı topluluk motto suyu vardır
- Noktalı virgül veya parantez kullanmadan özlü bir sözdizimi sunar; Python'dan bile daha akıcı bir İngilizce gibi okunur
- Sıklıkla, programlamanın "anlaşıldığı" anı yeni başlayanlara veren bir dil olarak anılır
Ruby'yi Geç Öğrenince Ortaya Çıkan Gerçek Yüz
- Birkaç dili geçtikten sonra Ruby'ye geçildiğinde, beklenen "zariflik"ten önce bir zamana kalmış savrukluk hissedilir
- Görünüşü güzel kılmak için tasarlanmış sözdüzimiminin arkasında, dinamik tipin belirsizliği ve öngörülemeyen davranışları kalır
- Ruby dinamik tipli bir dil olduğundan, küçük projelerde esnektir ancak büyük yapılarda hatalar yalnızca çalışma zamanında ortaya çıkar
- Python ve JavaScript yıllar içinde tip araçları ve statik analiz ekosistemini (ör. TypeScript, mypy vb.) güçlendirerek gelişti
- Ruby'de bunun karşılığı olan araçlar az olduğundan, "footgun" (kullanıcının kendine zarar verebilen özellik) olarak adlandırılan risk unsurlarına karşı savunmasız kalır
- Küçük ölçekte yumuşak görünse de, sistem büyüdükçe hataların yalnızca çalıştırma anında açığa çıkma riski aynen taşınır
Ruby'nin Tutarlı Performans Sınırı
- Başlıca dil performans karşılaştırmalarında Ruby neredeyse her zaman en alt sırada yer alır
- Twitter'daki Fail Whale (hata anında görünen balina) dönemi, Ruby tabanlı altyapının sınırını simgeleyen bir olaydı ve 2010 Dünya Kupası sırasındaki büyük kesinti bu sınırın belirginleşmesini sağladı
- Twitter ardından Scala'ya geçti ve 2014 Dünya Kupası yarı finalinde 32 milyon tweeti sorunsuz işledi; yeni backend öncekinin en fazla 100 kat daha hızlı çalışıyordu
- 2010'lar boyunca birçok şirket Ruby altyapısından uzaklaştı; kalan bölümler çoğunlukla kalıntı niteliğinde korunuyor
Ruby'nin Kaybettiği Yer
- Bir zamanlar Ruby ile rekabet eden Python, JavaScript ve Perl, her biri daha net bir alan edindi
Python yapay zeka, bilim ve eğitim pazarını kapladı; JavaScript ise web'in tamamını ele geçirdi
Perl gerileme halinde olsa da Ruby'nin onu yerine koyabileceği bir boşluk yoktu - Ruby'nin tek başına iyi yaptığı alanlar kayboldukça, bugün belirsiz bir ara bölgede kalıyor
Rails'in Son Dayanak Noktası
- Ruby'nin gerçek iş yaşamında yaşayan en önemli nedeni Rails'tir
- Rails, 2004'te DHH tarafından kamuya açıkladıktan sonra Web 2.0 dönemini yönetti ve o dönemde web geliştirmeye ait tüm parçaları tek bir bütünleşik vizyonda sundu
- Danimarkalı geliştirici David Heinemeier Hansson (DHH), Matz'ın tersine tartışmalı ve karizmatik bir kişilik olarak bilinir
- Web 2.0'ın ilk yıllarında Rails, veritabanı, ön yüz ve arka ucu bir arada sunan all-in-one paket olarak stüdyo şirketlerinde öne çıktı
- Airbnb, GitHub, Twitter, Shopify, Stripe gibi şirketler Rails tabanlı olarak başladı
- Ancak web'in ölçüsü patlayıcı biçimde büyüdükçe Rails'in bütünleşik yapısı bir ölçeklenebilirlik engeline dönüştü
Frank Lloyd Wright'ın Usonian House'ı gibi, başlangıçta güzel görünürken zamanla neredeyse yeniden düzenlenmesi imkânsız bir yapıya dönüştü
Ruby'nin Düşüşü ve Kalan Güç
- Stack Overflow Geliştirici Anketinde Ruby, 2013'te ilk 10'dan 2025'te 18. sıraya geriledi ve Assembly'nin bile gerisine düştü
- Yeni geliştiriciler Python ve JavaScript'e yönelirken Ruby, geçmişi hatırlayan bazı geliştiricilerin dili olarak kalıyor
- Bugün Ruby'yi destekleyen şey Rails mirası, ilk dönemden etkilenen geliştiricilerin duygusal bağlılığı ve "güzel ve okunması kolay sözdizimi"ne dair duygusal imajdir
- Ancak yalnızca duygularla bir dilin konumunu yeniden yükseltmek mümkün değil; gerçeklik şimdi Ruby'den daha hızlı, daha güvenli ve daha ölçeklenebilir araçlara geçmiş durumda
3 yorum
Dayanakları o kadar zayıf ki, insanı afallatan bir yazı...
"Ruby ciddi bir programlama dili değildir" yazısına yanıt
Hacker News görüşü
Alternatif bağlantı archive.is/O7rEl
Yazıda öne sürülen gerekçelerin “hoşuma gitmiyor”, “dinamik tipleme olduğu için sevmiyorum”, “Twitter eskiden çökmüştü”, “yavaş”, “Stack Overflow anketinde sadece ilk 20’ye giriyor” düzeyinde olması bana oldukça zayıf geldi
İlk dilim BASIC, ikincisi Z80A ve 6502 için assembly, üçüncüsü de Pascal’dı. Ama hiçbir dil zevkimi sonsuza kadar belirlemedi
Asıl şekillendirici deneyim, üniversitede bir hocanın “BASIC öğrenenler ömür boyu bozuk programcı olur” demesiydi. O anda, otorite sahibi insanların da önyargılarıyla başkalarına zarar verebileceğini öğrendim
Sonuçta bu yazı, yazarın ne kadar zeki olduğunu göstermeye çalışma girişimi gibi duruyor. Steve Yegge yazıları gibi eğlenceli okunabilir ama Yegge en azından daha fazla şey anlatıyordu
Eğer iddiası doğru olsaydı, böyle saldırgan bir yazı yazmasına gerek kalmazdı. Ruby ile gerçekten pek çok şey üretildiği ve dilin gelişmeye devam ettiği gerçeği buna karşı argüman oluşturuyor
Ben de yazıya tamamen karşı değilim ama bu ölçütlerle Python, JS, C++ gibi çoğu “profesyonel dil” için de aynı eleştiriler yazılabilir
“Computing is pop culture” sözü hâlâ geçerli ve Wired gibi bir yayında böyle bir yazının çıkması da bunun kanıtı
Sonuna kadar okudum ama Ruby kullanmamak için somut bir neden yoktu.
İçerik, birkaç saat içinde ChatGPT ile üretilmiş bir gazetecilik fiyaskosu gibi hissettirdi. Muhtemelen yazarın karşılaştığı ilk Ruby kod tabanı özellikle berbattı
Wired’ın okunmaya değer bir dergi olduğu zamanlar vardı galiba ama artık ne zaman olduğunu bile hatırlamıyorum
Scala’ya yeniden yazmanın iş açısından iyi bir karar olduğunu sanmıyorum. 15 yıl sonra bugün Scala’nın popülerliği Ruby’den çok daha düşük. Şimdi ne kullandıklarını da bilmiyorum
Bu resmen paywall için clickbait bir yazı gibi
Bu sayede unuttuğum Wired aboneliğimi iptal etmem gerektiğini hatırladım