Localhost Çağının Sonu
(dx.tips)- Gelecekte tüm geliştirme
localhostyerine 'bulut'ta yapılacak ve dizüstü bilgisayarlar yalnızca bir istemci olacak - 2030'lardaki geliştirici istek listesini yazacak olursak
- ucuz gigabit internet (5G/Mesh WiFi)
- günlerce giden bataryaya sahip ucuz bir geliştirme makinesi
- uygulamalar, ölçeği ne olursa olsun birkaç saniye içinde build edilir; test ve staging ortamları ise tuşa basar basmaz anında gerçek zamanlı canlı hale gelir
- kişisel geliştirme ortamı, hangi cihazı kullandığımdan bağımsız olarak benimle birlikte seyahat edebilir
- uygulamanın ortamsal bağımlılıkları (HTTPS sertifikalarından production DB'nin sandbox'lanmış fork'una kadar her şey), özellik geliştirmek isteyen tüm ekip üyelerine anında sağlanır. Dokümantasyona da Runbook'a da gerek kalmadan
- fikirden müşteriye sunuma kadar bir hafta içinde mümkün olur (
low-codebuilder'lar veBackends-as-a-Servicekullanarak) - MVP'den unicorn'a birkaç hafta içinde büyümek mümkün: serverless ve 'yeni Heroku' benzeri platformlar kullanılarak. Kimlik doğrulama/ödeme/DB/iletişim ise dünya standartlarında SaaS üzerinden yürütülür
- Yukarıdakilerin çoğu,
localhostyerine "bulut"ta çalışmayı gerektiriyor
Tarayıcı işletim sistemini "iyi debug edilmemiş aygıt sürücülerinden oluşan bir koleksiyon"a indirgediyse
bulut da geliştirme makinesini "iyi yönetilmeyen sahte ortamlar (Environment Mocks) koleksiyonu"na indiriyor
"Future is Just Not Evenly Distributed"
- Geliştirici verimliliğini artırmak için yatırım yapan büyük şirketler zaten bulutta çalışıyor
- Google Cider : Google'ın web IDE'si. Devasa Piper dosya sistemini içeriyor ve kod inceleme/build/test süreçlerini entegre ediyor. Kodu yerel makineye indirmeye gerek yok
- FB On-Demand : Yerelden daha yüksek sadakatte gerçek zamanlı özellik önizlemesi sağlamak için ortamları "On-Demand" olarak provision ediyor. FB'de zaten "yerel geliştirme" diye bir şey yok
- Etsy : Tüm geliştirme Cloud VM üzerinde yapılıyor. "VSCode VM'e SSH ile bağlanıp çalıştığı için, kodu VM dışına checkout ettiğimi hiç hatırlamıyorum"
- Tesla : araç OS geliştirmesini yerelden buluta taşıdı (öncesinde geliştiricilere build için pahalı masaüstü bilgisayarlar veriliyormuş)
- Palantir : Coder (uzak geliştirme ortamı SaaS'i) ve EKS kullanan Remote Ephemeral Workspace'e geçti
- Shopify : geliştiricilerin çoğu Spin adı verilen bulut geliştirme ortamına geçti (xhyve üzerinde çalışan hafif bir VM)
- GitHub : GitHub iç geliştirmesinin büyük bölümünü Codespaces'e taşıdı
- Bunlar büyük şirketler olduğu için ardından şu soru geliyor: "Küçük şirketler için de uygun mu?"
→ Cevap: "Muhtemelen evet, ama belki de bugünkü haliyle değil"
→ Bunların çoğu ciddi iç yatırım gerektiriyor ve mevcut iç altyapıdan yararlandıkları için mümkün oldu
→ Ancak bu teknolojiler ürünleştikçe ve müşteri grupları arasındaki ortaklıklar keşfedildikçe, giderek daha yaygın hale gelecek - Preview ortamlarını ürünleştirmek ise zaten gerçekleşmiş durumda
→ Netlify'ın ilk yeniliği, frontend projelerini önizlenebilir şekilde deploy edilebilir hale getirmesiydi
→ Artık neredeyse tüm dokümantasyon siteleri bir tür Deploy Preview sistemi kullanıyor; Jamstack uygulamalarında bu, release sürecinde de kullanılabiliyor
Jobs to Be Done of Localhost
- Yerel geliştirme sırasında yapılan işler artık kuşatma altında
- kodu uzaktan düzenleyip çalıştırma: GitHub Codespaces, Replit, Code.com, CodeSandbax, GitPod
- uzak sunucuda çalıştırıp kodu yerelde düzenleme: VSCode + Azure VM/Amazon Workspace, Jetbrains Fleet, Okteto Sync
- tarayıcı içindeki hafif JS Container'da kodu düzenleyip çalıştırma: Stackblitz
- kodu uzaktan çalıştırma: Bret.dev
- staging: Planetscale Branches, Stripe Test mode keys, Railway Ephemeral Environments, Okteto environments, Coherence workspaces
Pushback: It's Still Not Good Enough
- Hâlâ yeterince iyi değil, bu yüzden şimdiden fazla heyecanlanmamak lazım
- Bu
localhost'u öldürme girişiminin başarılı olması için provisioning ihtiyacının kendisinin ortadan kalkması gerekiyor - Kişiden kişiye değişebilir ama benim için yazdığım kodun Preview'sunu başlatmanın 10 saniye sürmesi bile çok uzun geliyor
- Netlify Drop ile frontend preview deploy etmek 1 saniye sürüyor ama Netlify CLI 10 saniye alıyor
- Buna rağmen hâlâ alışkanlıkla yerel
localhostgeliştirme ortamını kullanıyorum: çünkü benim iterasyon döngüm milisaniye seviyesinde - Bu latency sorunu, Moore yasasının bulut altyapısına uygulanmasına benziyor
- Bugün yeterince iyi değilse, 5 yıl sonra tekrar bakın
10 yorum
Dizüstü bilgisayarın rolü gerçekten de bir terminal + toplantı makinesine dönüşmüş gibi görünüyor. ARM tabanlı, bataryası 20 saatten fazla giden Chromebook'lar ideal dizüstü bilgisayar haline geliyor gibi görünüyor.
Böyle olabilse harika olurdu ama şu anda sanal ortam bulutunu devreye alan şirketlerin durumu, geliştiricilere 8 GB bellek ve 4 CPU özellikli bir ortamı dayatmak oluyor (çok ısrar edilirse ancak 16 GB). Gerçeklikle ideal arasındaki uçurum fazla ciddi.
GitPod, yerel VSCode’da düzenlemeyi de destekliyor. Kullanıp görünce gerçekten çok kesintisiz hissettiriyor (terminalde yazı yazarken çok hafif bir gecikme olması ve klasörleri açarken biraz ağır kalması dışında deneyim açısından neredeyse hiç fark yok).
Tencent'in de bunu yapıyor olması şaşırtıcı. https://zdnet.co.kr/view/?no=20220620003628
Workstation çağının geldiğini mi göreceğiz...
Tabletler şimdi olduğundan daha da fazla ilgi görecek gibi.
Kişisel projeleri mümkün olduğunca bulut tabanlı geliştirmeye taşıyorum ama yalnızca IDE ile bunun bir sınırı var gibi görünüyor. Gecikmenin de iyileşmesi iyi olurdu; ayrıca kullandığımız basit araçların hepsini özgürce kullanabildiğimiz bir ortama ya da bunu tamamlayacak başka bir yaklaşıma ihtiyaç var gibi. Windows, Mac, Linux, VR cihazları fark etmeksizin aynı geliştirme deneyimiyle sürekli geliştirme yapabilsek gerçekten harika olurdu. Tıpkı günümüzde Xbox oyunlarında olduğu gibi, yerelin de bulutun da avantajları var; bu yüzden hemen tek bir yöntemi seçmek zor, ama sonuçta hepimiz buluta gitmeyecek miyiz?
Kişisel olarak, latency gibi sorunları da hesaba katınca, WebContainers benzeri şekilde yerel makinede konteynerleştirilmiş bir full-stack ortamı ayağa kaldırıp geliştirme yapmak, ardından ortaya çıkan çıktıyı buluta kaydedip oraya yansıtmak gibi bir yöne gidilebileceğini düşünüyorum. Metinde geçenler arasında buna StackBlitz gibi bir örnek verilebilir.
Bence bu, localhost'un sonundan çok thin client'ın yeniden gelişi... gibi görünüyor.
Kolaylıkla başlayıp, sonra güvenlik nedeniyle... o yöne kaymaz mı diye düşünüyorum.
Tam bir çeviri değil, bir özet; bu yüzden lütfen orijinal metne de bakın.
Yazının sonunda insanların tepkilerinin özetlendiği bölümde, "Reddit / HN'de herkes bunun böyle olmasından nefret ediyor" denmiş ama...
Bence bu, yeterince mümkün bir gelecek olarak hayal edilebiliyor. Elbette bu yolda ilerlerken bir süre "yerel kod düzenleme + uzak VM'de çalıştırma" karışımı olacaktır, ancak
bulutta yerel kod düzenleme seviyesinde bir gecikme belirli ölçüde garanti edilebilirse, çoğu şirketin bunu seçeceğini düşünüyorum.
Ben de öyleyim ama sanırım Reddit ve HN'de “verim kendi cihazımda” yaklaşımını seven çok kişi var. Ben de verilerim üzerindeki kontrolü bırakmak istemediğim için cloud IDE'leri yalnızca örnek kod yazarken ara sıra kullanıyorum.