Ruby on Rails neden hâlâ önemli: Next.js dünyasında eski bir aracın hayatta kalma yolu
(contraption.co)- Yazar yakın zamanda büyükbabasının eski plaklarını buldu ve önceki bir çağın bu ortamının hâlâ sorunsuz şekilde çalmasına şaşırdı
- Plak, müziğin dağıtımında büyük bir değişim yarattı; basımı ve paylaşımı mümkün kıldı ve bugüne kadar bir standart olarak kaldı
- Ses paylaşım yöntemleri evrim geçirdi, ancak ilk yöntemler hâlâ işlevini koruyor
- Giderek karmaşıklaşan bir dünyada birçok insan, sadelik, istikrar ve süreklilik sunduğu için plağa geri dönüyor
- Web teknolojilerinin durmaksızın değişimi içinde, eski web sitelerinin hâlâ gayet iyi çalıştığını unutmak kolay
- 1990'lardaki basit metin tabanlı web siteleri bile modern tarayıcılarda o dönemde olduğu gibi yükleniyor
- Web siteleri zamanla CSS ile stillendirme, JavaScript ile etkileşim, WebSocket ile gerçek zamanlı güncellemeler gibi ek yetenekler kazandı
- Ancak temelleri hâlâ sayfalar, formlar ve oturumlar üzerine kurulu
- Ruby on Rails, 20 yıl önce etkileşimli ve veritabanı tabanlı web uygulamaları oluşturmak için bütünleşik bir yaklaşım olarak ortaya çıktı
- Airbnb, Shopify, Github, Instacart, Gusto, Square gibi çok sayıda başarılı şirketin temelini oluşturdu ve bugün trilyonlarca dolarlık işler Ruby on Rails üzerinde çalışıyor
- Etkili araçlar, soyutlama yoluyla karmaşık işleri basitleştirir
- Otomobil örneğinde, araç kullanmak bir zamanlar yakıt sistemi, zamanlama ve debriyaj mekaniğini anlamayı gerektiriyordu; bugünse çoğu sürücü aracında kaç vites olduğunu bile bilmiyor
- Ruby on Rails, giriş oturumları, CSRF koruması ve veritabanı ORM'si gibi web geliştirme en iyi uygulamalarını erişilebilir bir araç seti hâline getirdi
- Bu soyutlamalar, geliştiricilerin teknik ayrıntılardan çok ürün oluşturmaya odaklanmasını sağlar
- Bugün çoğu geliştirici giriş cookie'lerinin içinde ne olduğunu bilmiyor, ama uygulamaları onlar çalıştırıyor
- Rails, web'in temel yapı taşlarına sadık kalarak başarılı oldu
- Sayfalar, giriş alanları ve formlar gibi HTML temellerini kullanır
- Backend merkezli bir framework olarak veriyi doğrulamaya, işlemeye ve depolamaya odaklanır; bu da form oluşturmayı basit kılar
- JavaScript, Rails'in ilk başarısından sonra öne çıktı
- Son 10 yıldaki web geliştirme ilerlemeleri, özünde web sitelerine iPhone uygulaması yetenekleri kazandırdı; yine de onlar hâlâ web sitesi olarak kaldı
- Next.js artık startup kurmak için en yaygın kullanılan araçlardan biri
- Frontend merkezli bir framework olarak dinamik yükleme durumları, server-side rendering ve karmaşık component oluşturmayı mümkün kılar
- Trilyon dolarlık başka şirketler de Next.js üzerinde inşa ediliyor ve bu web uygulamaları Ruby on Rails ile yapılanlardan daha hızlı ve daha sofistike
- Next.js ve onun temel teknolojisi React, modern web yeniliklerinin büyük bölümüne yön veriyor
- Esasen Spotify, Netflix, Facebook ve Stripe gibi ana akım tüketici ürünlerinin tamamı bu stack üzerinde çalışıyor
- Bu, geliştiricilerin web standartlarının sınırlarının ötesine geçerek hızlı ve özelleştirilmiş etkileşimli ürünler oluşturmasına olanak tanıyor
- Next.js'in hızlı benimsenmesine rağmen Rails hâlâ geçerliliğini koruyor
- Bağımsız projelerden yapay zeka şirketlerine kadar yeni projeler hâlâ Rails'i seçiyor
- Aslında Next.js gibi yeni JavaScript web framework'lerinin dalgası, web uygulaması geliştirmeyi daha zor hâle getirdi
- Bu araçlar geliştiricilere dinamik veri render etme ve gerçek zamanlı etkileşim gibi daha fazla özellik sunuyor, ancak bunun bedeli daha düşük bir soyutlama seviyesi oluyor
- Next.js fiilen native iPhone uygulamalarıyla rekabet ediyor
- Daha önce sofistike bir kullanıcı deneyimi için startup'ların iPhone uygulamasına ihtiyacı vardı ve iPhone uygulaması geliştirmek çoğu zaman birden fazla uzman geliştirici gerektiren karmaşık bir süreçti
- Next.js, web sitelerinin iPhone uygulaması kalitesine yaklaşmasını sağladı
- Günümüzün en sofistike ürünlerinden bazıları olan Linear ve ChatGPT, Next.js uygulamaları olarak piyasaya çıktı ve mobil uygulamayı ikincil öncelik olarak ele aldı.
- Rails, çıkışından bu yana geçen 20 yılda evrim geçirerek JavaScript etkileşimleri, backend iş yönetimi, yükleme durumları ve gerçek zamanlı uygulama araçları gibi özellikler ekledi
- Mobil uygulama geliştirmeyi de destekliyor. Uygulama kalıpları geliştikçe Rails, HTML tabanlı temelini korurken bu kalıpları framework yeteneklerine entegre etti
- Web uygulamalarının çoğu hâlâ sayfadaki formlardan oluşuyor
- İş ilanı panoları, tedarikçi sistemleri ve e-ticaret mağazaları buna örnek
- Next.js bunları geliştirebilir, ancak Rails'e kıyasla ek geliştirme süresi gerektirir
- En yeni framework'leri kullanmak; sık güncellemeler, yeni kütüphaneler ve beklenmedik sorunlar nedeniyle istikrarsızlık yaratır
- Next.js uygulamaları çoğu zaman Vercel, Resend ve Temporal gibi birçok üçüncü taraf hizmete bağımlıdır; bu da platform riskini artırır
- Geliştiriciler bugün de Rails'i seçiyor; çünkü 20 yıl sonra bile web uygulaması geliştirmenin en basit ve en yüksek düzeyde soyutlanmış yollarından biri olmaya devam ediyor
- Tek başına çalışan geliştiriciler bağımsız olarak dinamik ve gerçek zamanlı web uygulamaları oluşturabilirken, kurumsal ekipler kapsamlı testleri destekleyen çok sayıda model ve erişim kontrolüne sahip uygulamalar geliştirebilir
- Rails, küçük ekiplerin daha hızlı çalışmasına ve geliştirme ile bakım maliyetlerini düşürmesine yardımcı olur
- Yazarın her iki framework ile de deneyimi var
- Girişim sermayesi destekli bir yapay zeka startup'ı olan Find AI'ı Rails ile geliştirdi
- Bir arama motoru olarak bu ürün, Rails'in karmaşık backend işleriyle basit frontend gereksinimlerini birlikte ele alma becerisinden yararlandı
- Şu anda büyük veri kümelerini keşfetmek ve yönetmek için Chroma Cloud üzerinde çalışıyor; burada Next.js gelişmiş etkileşim ve veri yükleme gereksinimlerini karşılıyor
- Rails, mevcut yapay zeka tabanlı uygulama dalgasında yaşını göstermeye başlıyor
- LLM (büyük dil modeli) metin akışı, Ruby'nin paralel işleme yetenekleri ve yapay zeka kodlama araçları için güçlü tip desteği gibi alanlarda zorlanıyor.
- Buna rağmen hâlâ etkili bir araç olmaya devam ediyor
- Plak, müziğe erişimi genişleterek sektörü dönüştürdü
- Zamanla ses kalitesi iyileşti, ancak ilk format hâlâ değer taşıyor
- The Köln Concert, bitrate ne olursa olsun hâlâ popüler
- Teknoloji dünyasında da durum benzer: Linear gibi sofistike ürünlerin keyfini çıkarırken, Craigslist'in 90'lar tarzı web sitesi hâlâ daha fazla gelir üretebilir.
- Sonuçta kullanıcılar, bir ürünün nasıl uygulandığından çok ne kadar faydalı olduğuna önem verir
- Görünürdeki sofistikelik kaybolabilir, ama kullanışlılık kalır
7 yorum
Airbnb, Shopify, Github düşündüğümden daha fazla şirketin Ruby on Rails kullandığını görmek ilginçmiş!! 😊
GitHub’ın Rails ile geliştirildiğini ilk kez duyuyorum. GitLab’ın Rails ile geliştirildiği ise doğru... GitLab Rails’i iyi kullandığı için akılda uzun süre kalıyor.
GitHub, ilk dönemlerinde ağını Rails topluluğu etrafında kurdu.
https://read.first1000.co/p/-github
Biraz farklı bir konu ama, Ruby on Rails’in güvenlik açığıyla ilgili olarak (Mass Assignment Vulnerability) Egor Homakov’un işaret ettiği bir olay vardı. Bu, geliştiricinin dikkatli olması halinde kaçınabileceği bir sorun olduğu için, bunun yamalanıp yamalanmaması gerektiği üzerine tartışmalar yaşanmıştı. (Sonuçta RTFM denebilir ya.)
Bunu raporlayan Egor Homakov’un seçtiği yöntem ise, o dönemde de Rails ile çalışan, hatta Rails’in barındırıldığı GitHub’a saldırmaktı. Ve gerçekten de başarılı oldu.
Böylece en büyük Rails uygulamasının bile bu örnekten muaf olmadığını göstermiş oldu.
Bunun, geliştiriciye güvenmek (manuel bellek yönetimi) ile güvenmemek (GC vb.) arasındaki bir tercih olduğunu düşünüyorum; ama ben RTFM gibi yanıtları ya da güvenlikte "bilip doğru yapacaklar" varsayımını sorgularken bunu sık sık hatırlıyorum.
https://news.ycombinator.com/item?id=3666564
Teşekkür ederim. :)
https://github.blog/engineering/building-github-with-ruby-and-rails/
Teşekkür ederim.
Hacker News görüşleri
Yüzlerce insan bu makaleyi şu anda okurken, siz benim masamın üzerindeki Mac Mini üzerinden erişiyorsunuz
Web uygulamaları arasında yalnızca CRUD formları olanları seviyorum. Her soruna uygulanmaz ama gerçek dünyayla etkileşen birçok problem alanında iyi çalışıyor. "Bir randevu olup olmadığını görmek için randevu listesine bakın" gibi bir yaklaşım
Ruby/Rails topluluğunun tuhaf yanı şu: yarısı sessizce işini yapıyor, diğer yarısı da periyodik olarak Rails'in ölmediğini hatırlatmak zorunda kalıyor gibi
Rails, yapay zeka uygulamaları dalgası içinde yaşını göstermeye başladı. LLM metin akışı ve paralel işlem konusunda zorlanıyor
Django + gevent tavsiye ediyorum. Python tip sistemini kullanıyor ve akış ile IO-bound paralel işleme uygun. CPU-bound paralel işleme uygun değil ama web uygulamalarında bu daha az önemli
Ruby, Django ve D diliyle RoR benzeri meta web framework'leri kurup sürdürebilirsiniz
RoR güçlü. Ama her şey çok hızlı değişiyor; en yeni teknolojileri takip etmezseniz geride kalacakmışsınız gibi bir his var
AI kodlama araçlarında güçlü tip eksikliği eleştirisini duydum ama benim deneyimimde LLM, Rails kod tabanında iyi çalışıyor
Django kullanıyorum ve her şey taze hissettiriyor. htmx + alpine.js ile HTML gönderiyorum; JSON REST API'den uzaklaşınca üretkenliğim ciddi biçimde arttı
RoR harika. Ruby'nin bunun ötesinde de büyümesi gerekiyor
2010'larda teamüllerin yapılandırmadan üstün olduğu yaklaşım popülerdi