Ruby on Rails belgeseli [Video]
(youtube.com)- Rails’in çıkış noktası, David Heinemeier Hansson’ın 37signals’ın Basecamp geliştirme sürecinde ihtiyaç duyduğu araçları Ruby ile bizzat yapmasıyla ortaya çıktı
- Jason Fried ile David’in iş birliği, 2001’de 37signals blogundaki bir PHP sorusuyla başladı; Basecamp backend geliştirmesine ve Rails’in çıkarılmasına uzandı
- Rails, PHP’nin hızlı web geliştirme hissi ile Java tarzı nesne yönelimli tasarımın titizliğini Ruby içinde birleştirmeye çalıştı; 2003 yazından Basecamp’in Şubat 2004’teki lansmanına kadar temel biçimi oluştu
- İlk yayılımı Basecamp adlı gerçek ürün, 15 dakikalık demo, Java ile karşılaştırmalar ve 37signals’ın itibarı sayesinde hız kazandı; Jamis Buck, Jeremy Kemper, Tobias Lütke gibi erken katkıcılar ve Rails core team oluştu
- Rails, MIT lisanslı açık kaynak olarak yayımlandıktan sonra Shopify ve GitHub gibi büyük ölçekli örnekler ve 20 yıl boyunca süren topluluk aracılığıyla küçük ekiplerin de büyük web uygulamaları geliştirebileceği yönünü korudu
37signals ile David Heinemeier Hansson’ın tanışması
- 1999 ya da 2000’de Jason Fried, 37signals adlı bir web tasarım şirketini yönetirken Single File adlı çevrimiçi kitap veritabanı yan projesini PHP ile geliştiriyordu
- PHP’yi kitaptan öğrenerek epey ilerlemişti, ancak takıldığı yerler oldu; StackOverflow gibi yanıt alanlarının olmadığı bir dönemde çevrimiçi yardım istedi
- Danimarka’nın Kopenhag kentinde web sektöründe bulunan David Heinemeier Hansson, 37signals’ın Signal vs. Noise blogunu düzenli okuyordu ve 2001’de Jason’ın programlama sorusunu yanıtladı
- David’in yanıtı çok ayrıntılıydı; Jason bunun basit bir yorum değil, gerçekten yardım etmeye yönelik bir tavır olduğunu hissetti
- Sonrasında David, Jason’ın tüm koduna bakıp “bu pek iyi değil, baştan başlayalım” minvalinde konuştu ve ikilinin iş birliği o noktada başladı
- İkili bir süre uzaktan çalıştıktan sonra Chicago’daki Hancock building yakınlarında ilk kez yüz yüze buluştu; Jason, David’in beyaz kıyafetlerinin çok dikkat çekici olduğunu hatırlıyor
Basecamp geliştirilirken Rails’in doğuşu
- 37signals, müşteri projelerini e-posta ile yönetirken dosya sürümlerini, kalan işleri ve lansmana hazır olma durumunu takip etmenin zor olduğunu fark etti ve 2003’te şirket içi kullanım için bir proje yönetim aracı yapmaya karar verdi
- O dönemde David, Kopenhag’da işletme okulu öğrencisiydi; haftada yalnızca yaklaşık 10 saat çalışabiliyordu ve Basecamp backend geliştirmesinin karşılığı olarak para yerine Apple dizüstü bilgisayar ve ekipman istiyordu
- Ruby ile Martin Fowler ve Dave Thomas’ın yazıları üzerinden tanışan David, Japonya’dan çıkan bu dilin kodunun sözde kod gibi okunmasına ilgi duydu
- Basecamp öncesi 37signals işlerinde PHP kullanılıyordu, ancak David Basecamp backend’ini Ruby ile yapmaya karar verdi ve Jason bu seçime güvendi
- David’in Rails’te aradığı birleşim iki şeydi
- PHP gibi web’e hızlıca çıkarabilme anındalığı
- Java’da gördüğü nesne yönelimli tasarım ve kalıpların entelektüel titizliği
- O dönemde Ruby’de web geliştirmeye ve veritabanı erişimine yardımcı olan çok sayıda kütüphane ya da framework yoktu; David, Basecamp’i yapmak için ihtiyaç duyduğu araçları kendisi geliştirdi
- 2003 yazından Basecamp’in Şubat 2004’te yayımlanmasına kadar Rails’in çekirdeği oluştu; Basecamp lansmanından sonra yaklaşık 6 ay boyunca kod ve dokümantasyon iyileştirildi ve Rails 2004’te yayımlandı
İlk yayım, tartışmalı pazarlama ve çekirdek ekibin oluşumu
- Rails’i yayıma hazırlayan David, yalnızca koda değil dokümantasyon kalitesine de önem verdi ve ilk sürümün yeterince iyi olması gerektiğine karar verdi
- Rails dikkat çekmeye başlayınca David, framework’ün yönünü güçlü biçimde korumaya çalıştı ve istemediği taleplere “hayır” dedi
- Erken dönem Rails konferansında David, haksız taleplere ve başarısızlık tehditlerine tepki olarak “F()c% You” yazılı bir slayt kullandı; açık kaynağın ticari bir ilişki olmadığını ve kullanıcıların yönü dikte edemeyeceğini ortaya koydu
- Aynı zamanda Rails, binlerce katkıcının gönderdiği iyi işleri kabul ederek büyüdü; David’in geri bildirimi ve katkının kendisini reddettiği anlamına gelmiyordu
- 2004 International Ruby Conference’ta David, Rails’i tanıtırken kod demosundan çok Rails’i neden yaptığına ve programcılara daha iyi bir deneyim sunma hedefine odaklandı
- İlk yaklaşık bir yıl boyunca koda doğrudan yalnızca David commit yaptı; patch’ler e-posta ve Wiki gibi yollarla alındı
- Daha sonra katkısı çok olan kişilere codebase erişimi verilerek Rails core team oluşturuldu; Jamis Buck, Jeremy Kemper, Marcel Molina, Scott Barron, Sam Stephenson, Michael Koziarski gibi isimler erken dönem committer’ları arasında yer aldı
- 37signals, Rails core team veya Rails katkıcıları arasından bazı kişileri işe aldı; Jamis Buck, Basecamp’in büyüdüğü dönemde 37signals’ın işe aldığı ilk programcı oldu
Gerçek ürün ve ekosistemin yarattığı yayılım
- Rails’in ilk dikkat çekişinde 37signals’ın itibarı ve Basecamp adlı gerçek başarılı ürün büyük rol oynadı
- David, Ruby gibi daha az bilinen bir dil tabanlı aracı tanıtmak için sakin bir sunumdan çok güçlü bir sesleniş gerektiğini düşündü ve Java implementasyonu ile Rails implementasyonunu karşılaştıran tartışmalı materyaller hazırladı
- Rails’in yayılımında 15 dakikalık demo, Basecamp’in ücretli müşterileri ve büyümesi, ayrıca gerçekten çalışan kod birlikte etkili oldu
- Tobias Lütke, Kanada’da şirket kurmaya çalıştığı dönemde çevrimiçi snowboard mağazası geliştirirken Rails’i çok erken bir aşamada kullandı; Snowdevol adlı bu proje daha sonra Shopify’a uzandı
- Tobias, Rails sayesinde sistemi tek başına kurabildiğini ve o dönemde çevrimiçi mağaza geliştiren diğer ekiplerden daha üretken olduğunu hatırlıyor
- Shopify, Rails’ten etkilenmiş bir şirket olarak bugün de en güncel Rails sürümünü kullanıyor; codebase’inin büyük bölümü Ruby’de ve temel klasör yapısı da sıradan bir Rails uygulamasıyla aynı
- Rails’e yönelik “ölçeklenmez” eleştirisi en başından beri vardı; ancak Basecamp gerçek kullanıcıları destekledi ve Shopify, GitHub gibi örnekler ortaya çıkmadan önce bile Rails’in en başından itibaren ölçeklenebilir olduğu yönünde karşı argümanlar sürdü
- Shopify, dünya e-ticaretinin yaklaşık %10’unu oluşturan büyük ölçekli bir hizmet olarak ele alınıyor; Rails’in kaldıramayacağı ölçeğin ne olduğunu bilmediğini söyleyen deneyimler de aktarılıyor
Sürümler, Merb birleşmesi ve 20 yıl süren yön
- Rails’in yayımlanması için açık kaynağa gitmek başından beri doğal bir seçimdi; David, web işleri yapmasını sağlayan temelin açık kaynak araçlar olduğunu ve bu yüzden kendi araç kutusunu da paylaşması gerektiğini düşündü
- Rails’i ücretli hale getirmek ya da rekabet avantajı olarak kapalı tutmak üzerine tartışmalar da oldu, ancak David MIT lisanslı açık kaynak olmanın önemli olduğuna ve Rails’i çok başarılı kılacağına karar verdi
- Basecamp dağıtımı için Jamis Buck’ın yaptığı araç daha sonra Capistrano adıyla yerleşti
- Rails’in başlıca sürüm akışı şöyleydi
- Rails 1.0 önemli bir başlangıç noktasıdır
- Rails 1.2, istikrarlı bir erken sürüm ve olgun bir web framework’ünün görünümünü sergilediği dönem olarak değerlendirilir
- Aralık 2007’de Rails 2.0, cookie tabanlı session’lar ve named scopes gibi özellikler getirdi
- Mart 2009’da Rails 2.3, küçük ölçekli uygulamalardan büyük ölçekli uygulamalara kadar modern web geliştiricisinin ihtiyaç duyduğu araçları sunan bir sürüm olarak ele alındı
- Rails 2.3 döneminde jQuery ortaya çıkıyordu ve Rails, JavaScript dünyasındaki enerjiyi içeri alabilecek bir alan yaratmaya çalıştı
- Daha sonra Ruby web framework’ü Merb, daha hızlı, daha hafif ve daha az iş yapan bir rakip olarak ortaya çıktı; Rails geliştiricileri bu yönden öğrenilecek noktalar gördü
- Rails 3.0, Merb ile birleşmeye uzandı; Rails’in iç yapısını yapılandırılabilir, yeniden birleştirilebilir ve modüler bir yapıda yeniden tasarlamayı gerektiren büyük bir çalışma gerekti
- Rails topluluğu, bilgisayar bilimi veya programlama alanında örgün eğitim almamış kişilerin de web uygulamaları geliştirebilmesini ve kariyer inşa edebilmesini sağlamaya odaklandı
- Rails, başlangıç eşiğini düşürmeyi ve sonrasında bir şirkette ya da sektörde üst düzey programcı olabilecekleri bir yol sunmayı amaçladı
- Bugünkü Rails web sitesindeki ifadeyle Rails, küçük ekiplerle “Hello World’den IPO’ya” gidebilmeyi sağlayan bir framework’tür; topluluğun ve codebase kalitesinin şu anda en iyi seviyesinde olduğu değerlendiriliyor
1 yorum
Hacker News yorumları
Bu belgeseli gerçekten keyifle izledim ve Shopify'dan Toby'nin kişisel hikâyesi üzerinden tek kişilik framework bakış açısı çok iyi yansıtılmış
“From Hello World to IPO” da güzeldi; hangi Rails uygulamasını açarsanız açın, ister en büyük Rails uygulaması olsun ister yeni bir uygulama, yapının neredeyse aynı olduğuna dair ifade özellikle etkileyiciydi
API ve frontend yığınının iç içe geçtiği günümüz ortamında bu tür bir tutarlılık her zaman garanti değil
Rails'in son değişiklikleri zaten sağlam olan temeli daha da güçlendiriyor; Kamal'ın yanı sıra Solid Cache, Solid Queue gibi altyapıyı kolaylaştıran çalışmalar da sürüyor
Frontend tarafında Turbo Morphing, mobil uygulamalarda ise Turbo Native ve Strada da aktif biçimde ilerliyor
Zaten 7.1'e yükselttim ve Turbo Native ile yapılmış bir mobil uygulama çalıştırıyorum; Redis cache'i Solid Cache ile değiştirip daha basit hale getirmeyi ve cache'i daha uzun süre tutmayı da dört gözle bekliyorum
Rails topluluğunun hâlâ canlı olması ve eski/yeni core ekip üyelerinin framework ile derinden bağlantılı görünmesi hoş
Rails hiç kullanmadım ama Node.js ekosisteminde gerçekten nefret ettiğim şey net konvansiyonların olmaması
Aynı framework kullanılsa bile yapı hep farklı oluyor ve darmadağın; istisna sayılabilecek şey Next.js ama o da daha çok frontend tarafına yakın
Ruby ve Rails çevresinde de birçok geliştirme aracı çıkıyor; umarım Rails 8.0 ve Ruby 3.4'te de daha fazla güzel değişiklik olur
Meğer Shopify'ın kurucusuymuş ve serveti 5,5 milyar dolarmış; buna güldüm
Geliştiriciler RoR'un bu yönünü gerçekten küçümseme eğiliminde
Bu yalnızca onboarding'i kolaylaştırmıyor, aynı zamanda bikeshedding'i de ciddi biçimde azaltıyor
MVC her şey için en iyi seçenek olmayabilir ama çoğu durumda fazlasıyla yeterli
Buna bugün daha sonra bakmam gerekecek
Laravel, ExpressJS, MeteorJS, Django, Flask gibi çeşitli framework'leri kurcaladım ve her birinin artıları eksileri vardı ama ister tutorial takip ederek ister kendi yöntemimle deneyeyim, hep vazgeçtim
Üç gün önce Rails'e başladım ve hafta sonunda iş arkadaşlarıma gösterebileceğim bir MVP'yi hızla çıkarabildim
Rails, uygulamanın nasıl yapılacağına değil ne yapması gerektiğine odaklanmamı sağladı; insanların neden bu kadar sevdiğini ancak şimdi anlıyorum
Rails'te üretkenlik gerçekten çok yüksek
Çok uzun zamandır en büyük şikâyetim, konvansiyonların dışına çıktığınızda dokümantasyonun yetersiz olması ya da çelişkili bilgiyle dolu olmasıydı
“kutsanmış yolu” bulmak ve anlamak çok zor olabiliyor ama neyse ki ChatGPT, bu tür durumlarda bir başlangıç noktası yakalamakta epey iyi
Gerçekten harika bir belgeseldi
Son birkaç yıldır Rails kullanıyorum; küçük bir ekibin ürün geliştirmesi ve iyi oturmuş kalıpları izleyerek iş mantığını hayata geçirmesi için üretkenliği çok yüksek
Gerçek bir Rails uygulama yapısını merak ediyorsanız Jumpstart kod tabanına bakmanızı öneririm. Yapının nasıl kurulduğunu öğrenmek için iyi bir kaynak
https://jumpstartrails.com/
Alternatif olarak Bullet Train de oldukça iyi ama “Rails usulü” demeyi zorlaştıracak kadar çok özel kütüphane ekliyor
https://bullettrain.co/
Bu Rails belgesiyle Elixir belgesinin pek çok şeyi aktaramadığını düşünüyorum
Kısalar; köken hikâyesine ancak dokunup bitiyorlar ve heyecan verici noktaya ulaşmadan sona eriyorlar
Topluluğa ya da topluluk dışındaki insanlara bu teknolojilerin ne kadar havalı olduğunu göstermekten çok, katılımcıların egosunu okşamak gibi geliyor
Elixir ve Rails'in her biri için 1 saat 30 dakikalık bir belgesel yapılsa ve karşılıklı övgünün ötesine geçip yıllar süren emekleri, farklı şirketlerdeki çeşitli kullanım biçimlerini gösterse iyi olurdu
Yani Indie Game: The Movie formatını alsalar çok daha çekici olurdu; yazılım hakkında daha fazla iyi belgesel çıkmasını isterim
David'in yaklaşımının ne kadar sıra dışı olduğu, Rails ekibinin Toby ve başkaları üzerinden nasıl şekillendiği, başka framework'lerle nasıl birleştiği gibi başka yerde bulması zor küçük tarih parçaları vardı
Daha uzun olsa güzel olurdu ama bunu bile ortaya çıkarmış olmaları harika
İzledim ama Rails'in başardıklarını yeterince göstermediğini düşünüyorum
Ruby on Rails, PHP, JSP, WebForms gibi dosya merkezli yaklaşımlardan çıkıp web uygulamalarını route ve MVC kalıbıyla kurma paradigmasını değiştirdi; bugün düzgün sayılabilecek neredeyse tüm web framework'lerinde bu yaklaşım var
Belgesel buna değinmedi ama yine de izlemek keyifliydi
Yine de Struts ile Rails'i aynı cümlede anmak biraz haksızlık gibi; Rails çok daha fazlasını başardı
İlk dönem Rails'in efsanevi isimleri, modern web uygulaması geliştirmenin yolunu açtı
Hatta web geliştirmede Rails'ten önce ve Rails'ten sonra diye bir dönemlendirme yapılabilir
Yorumlara bakınca Rails, sadece sıkıcı ama sağlam bir framework olarak bilinmenin ötesine geçip yeniden biraz popülerlik kazanıyor gibi görünüyor
Rails benim için daha eğlenceli ve daha vahşi şeyler yaptığım zamanların bir parçası; o dönem hayat yoluma uyan başka bir çağın hatırası gibi
Rails'te gerçekten çok değer verdiğim şey güçlü bir vizyon ve “enterprise-grade” uygulamalar yapmak için şişirilmiş bir başka framework'e dönüşmemiş olması
20 yıllık bir framework olmasına rağmen zamana göre cesurca değişmekten korkmuyor ve hâlâ diğerlerine kıyasla punk görünüyor
20 yıl önce Rails kullanmaya başladığım zamanki hikâyemi hatırlayınca içim ısındı
https://twitter.com/buger/status/1723040883325460818
2015'ten 2019'a kadar çok büyük, canlı bir Rails uygulamasında çalıştım; sonuç olarak Rails'i sevdim ama Ruby'den nefret eder hale geldim
TypeScript ya da Go ile yazılmış bir Rails olsaydı, web uygulaması backend'i için başka bir şey kullanmak aklıma bile gelmezdi
Rails Console, karşılaştığım en iyi üretkenlik araçlarından biri
TypeScript belki mevcut Node REPL ile bunu sağlayabilir ama Rails console'un bu kadar faydalı olmasının büyük nedeni sonuçta Ruby'nin kendisi
Honeypot belgeselleri gerçekten çok iyi, şiddetle tavsiye ederim