portatifliği, JavaScript çok platforma sahip: ◆ Web Sayfaları/Uygulamaları ◆ Web Servisler ◆ Bulut Hizmetleri ◆ Komut Satırı (CLI) Uygulamaları ◆ Masaüstü Uygulamaları ◆ Mobil Uygulamalar ➔ Tek bir thread yeterli, hatta daha iyi (Concurrency vs Parallelism) Mimari seçimler - JavaScript ne zaman seçilmeli?
JavaScriptCore Motorunun Avantajları ➔ Bilinen tüm araçlar onun üzerine kurulu ➔ Sahibi OpenJS Vakfı Node.js Deno ➔ Ryan Dahl’ın yeni tasarımı ➔ Geliştirici deneyimi (DX) ➔ Paket yöneticisi yok ➔ Standartlar ve güçlü kütüphane desteği ➔ Serverless hizmetler ➔ Jupyter Notebook desteği Runtime çeşitliliği - Aktörler Bun
aktarılıyor. Dahili araçlar sayesinde bağımlılıklar azalıyor, standardizasyon artıyor. ➔ ES Modules her geçen gün daha da fazla destekleniyor. Deno node_modules’suz bir hayat vaadinde bulunuyor*. ➔ TypeScript Deno ve Bun’da dahili geliyor. Bu da araç entegrasyonunu azaltıyor. ➔ Runtime’lardaki geliştirme deneyimi, browser’lara yaklaşıyor. Fetch, WebSockets, WebStreams, Intl v.b. Browser API’ları gün geçtikçe runtime’lara da ekleniyor. Runtime çeşitliliği - Kazanımlarımız
node_modules’suz çalışabiliyor. Buradaki yönetimi PNPM gibi değil, v8’in yönetimine veriyor. Web sayfaları dolaşırken bilgisayarınıza inen resimden ve CSS’den bir farkı kalmıyor JavaScript dosyalarının. ➔ Deno’da Go’nun standart kütüphanesine yakın bir kütüphanenin yanı sıra artık NPM desteği de oldukça olgun. ➔ Deno ve Bun URL üzerinden modül yükleme desteği ile lerna, nx ve turbo gibi monorepo araçlarına ihtiyacı ortadan kaldırıyor. Runtime çeşitliliği - Bağımlılık yönetimi
konfigurasyonları ve birbirleri ile entegrasyonları giderek azalıyor. Eskisi gibi testing suite’e TypeScript tanıtmak zorunda kalmıyoruz. ➔ Bundler ve transpilerları hayatımızdan çıkartmak eskisinden daha kolay. Bu sayede monorepo yönetimi de sorun olmaktan çıkıyor. ➔ Kısmen PNPM ve Deno ile birlikte node_modules yükünden kurtulmaya doğru gidiyoruz. ➔ ES Modules’u kullanarak konum-bağımsız JavaScript modülleri/dosyaları kullanılabilmeye başlandı.
uygulama bootstrap edebiliyorsunuz! ➔ Deno kendi yerel ortamınızda geliştirmeyi kolaylaştırıyor. ➔ TDD için hazır bir ortam vaad ediyor. ➔ Deno ve Bun stand-alone binary oluşturup hızlıca Dockerize edebilmenizi sağlıyor. ➔ deno.dev üzerinden GitHub’la login olup ister copy-paste ile, ister deployctl ile saniyeler içinde bir API yayına alabiliyorsunuz.