5 puan yazan GN⁺ 2024-02-06 | 2 yorum | WhatsApp'ta paylaş

Deno'da 2023'te yaşanan değişimler

  • Deno artık package.json dosyasını anlayabiliyor ve node: belirticisini kullanarak node:fs ve node:crypto gibi yerleşik Node modüllerini içe aktarabiliyor.
  • Yeni web sunucusu API'si Deno.serve kararlı hale geldi ve HTTP işleme kapasitesi yıl içinde yaklaşık %73 arttı.
  • deno compile artık worker'ları, dinamik import'ları ve npm modüllerini destekliyor.
  • Deno, web stream'leri (ReadableStream ve WriteableStream) ile AbortController'ı API genelinde daha iyi kullanarak tarayıcı ve sunucu tarafı programlama arasındaki farkı daraltıyor.
  • Deno'nun yapılandırma dosyası deno.json artık import map olarak da kullanılabiliyor; şema sadeleştirildi, glob desteği ve kullanışlı üst düzey "exclude" özelliği eklendi.
  • Açık kaynak not defteri aracı Jupyter, JavaScript ve TypeScript kullanarak Deno desteği kazandı.
  • Yaklaşık 1 yıllık geliştirmenin ardından WebGPU Deno'ya eklendi.
  • Deno'nun sıfır yapılandırmalı TypeScript deneyimi, LSP ve VS Code entegrasyonundaki önemli iyileştirmeler sayesinde editör entegrasyonunu daha iyi hale getirdi.
  • Deno tabanlı web framework'ü Fresh, Tailwind desteği, Partials, layout dosyaları gibi özelliklerle genişletildi.
  • Deno Deploy, Deno KV, Queues, Cron gibi küresel olarak dağıtılmış temel bileşenlerle daha güçlü hale geldi.
  • Platformun güvenilmeyen çok kiracılı JavaScript'i dağıtıp çalıştırabilmesi için self-service subhosting kullanıma sunuldu.

Node ve npm ile daha iyi uyumluluk

  • Deno, node: belirticisi üzerinden node:fs, node:child_process gibi yerleşik Node modüllerini de kapsayacak şekilde Node ekosistemiyle uyumluluğunu genişletti.
  • Node'dan Deno'ya sorunsuz geçiş için çeşitli yeni özellikler tanıtıldı:
    • --unstable-byonm bayrağı ile tercih ettiğiniz npm paket yöneticisini Deno içinde kullanabilirsiniz.
    • --unstable-sloppy-imports bayrağı, modül import'larındaki katılığı gevşeterek farklı kodlama stillerine ve pratiklere uyum sağlıyor.
    • --unstable-unsafe-proto bayrağı, birçok npm paketinin bağımlı olduğu Object.prototype.__proto__ desteğini sunuyor.
  • Node-API'nin kararlı hale gelmesiyle, --unstable bayrağı olmadan Node-API'ye bağımlı npm paketleri kullanılabiliyor ve destek kapsamı genişliyor.

Deno.serve() ile daha basit ve daha hızlı web sunucuları

  • Deno.serve() fonksiyonu tanıtıldı ve kararlı hale getirildi; böylece geliştiriciler çok az kodla sunucu başlatabiliyor.
  • Çekirdek kütüphane ve event loop mekanizmasındaki hedefli optimizasyonlar sayesinde performans önemli ölçüde arttı.
  • Deno'nun HTTP işleme kapasitesi, temel bir "Hello, world" sunucu kurulumu ile yapılan benchmark testlerinde belirgin biçimde yükseldi.

Daha esnek deno.json

  • Deno, karmaşık yapılandırma olmadan kullanılabilen bir programlama anlayışını benimsiyor ve deno.json yapılandırma dosyasını sürekli geliştirerek kullanım kolaylığını koruyor:
    • deno.json artık import map olarak da kullanılabiliyor.
    • deno fmt, noktalı virgül desteği sunarak kod stilinde esneklik sağlıyor.
    • package.json ile entegrasyon, Node ve Deno ortamları arasında geçişi kolaylaştırıyor.
    • deno.json yapısı sadeleştirildi, böylece geliştiriciler dosyada daha sezgisel şekilde gezinebiliyor.
    • Glob pattern'lerinin eklenmesiyle dosya ve dizinlerin dahil edilmesi veya hariç tutulması daha hassas biçimde kontrol edilebiliyor.

LSP ile daha akıcı bir geliştirme deneyimi

  • Deno'nun Language Server Protocol (LSP) entegrasyonu; doğru tanıma gitme, kapsamlı IntelliSense ve TypeScript projeleri için sorunsuz kod biçimlendirme gibi yetenekler sunuyor.
  • LSP'yi geliştirmek için büyük çaba harcandı ve bu sayede Deno ile kod yazma deneyimi daha akıcı ve sezgisel hale geldi.

WebGPU

  • WebGPU, geliştiricilerin JavaScript kullanarak GPU donanımının gücünden doğrudan yararlanmasını sağlayan ileri seviye bir teknolojiyi Deno'ya getiriyor.
  • WebGPU, --unstable-webgpu bayrağının arkasında kullanılabiliyor ve Deno uygulamalarının yeteneklerini genişleten önemli bir kilometre taşı niteliği taşıyor.

Jupyter not defterleri

  • Açık kaynak not defteri aracı Jupyter, JavaScript ve TypeScript ile Deno desteği kazandı.
  • Bu sayede veri bilimi, görselleştirme ve benzeri işler modern JavaScript, TypeScript ve web standart API'leriyle yapılabiliyor.

Dikkat çeken açık kaynak Rust crate'leri

  • Deno, çeşitli açık kaynak projelerle bağlantılı çalışıyor ve özellik setini genişletmek, performansı optimize etmek için aktif katkı sunuyor.
  • Bu yıl Deno, bağımsız olarak da faydalı olabilecek bazı Rust crate'leri yayımladı.

Fresh

  • Fresh, varsayılan olarak istemci tarafı JavaScript göndermeyen, Deno'nun modern full-stack web framework'ü olarak kullanım kolaylığı ve performans için sürekli geliştiriliyor.

Deno'nun bulut işini genişletmesi

  • Deno Subhosting, Netlify'nin edge function'larını ve Deco.cx müşterilerinin e-ticaret mağazalarını desteklerken kendi başına bir hizmete dönüştü ve artık herkes tarafından ücretsiz kullanılabiliyor.
  • Deno KV, Queues ve Cron gibi bulut temel bileşenleri kullanıma sunularak web geliştirmeyi kökten sadeleştirme vizyonu doğrultusunda ilerleme kaydedildi.

Deno 2

  • Deno 2, Node ve npm ile uyumluluğu geliştiren ve proje bağımlılıklarını yönetme ile optimize etmeye ilişkin heyecan verici duyurular içeren daha gelişmiş bir runtime sunacak.

GN⁺ görüşü:

  • Deno'nun Node.js ile uyumluluğu büyük ölçüde artırması ve web geliştirmeyi sadeleştirmeye odaklanması önemli. Bu, mevcut Node.js geliştiricilerinin Deno'ya geçişini kolaylaştırabilir ve Deno'nun benimsenmesini hızlandırabilir.
  • WebGPU gibi ileri düzey özelliklerin entegrasyonu, Deno'nun yalnızca bir sunucu tarafı platform olmanın ötesine geçerek daha geniş bir uygulama geliştirme yelpazesine uygun hale geldiğini gösteriyor. Bu, özellikle GPU destekli yüksek performanslı hesaplama gereksinimi olan geliştiriciler için çekici olabilir.
  • Fresh framework'ü ve Deno Deploy'daki ilerleme, Deno'nun full-stack web geliştirmede önemli bir rol oynayabileceğine işaret ediyor ve Deno'nun bulut tabanlı bir hizmet olarak konumunu güçlendiriyor. Bu gelişmeler, Deno'nun modern web geliştirmenin önemli oyuncularından biri haline gelme olasılığını artırıyor.

2 yorum

 
[Bu yorum gizlendi.]
 
GN⁺ 2024-02-06
Hacker News görüşleri
  • Bir kullanıcı, internet bağlantısı olmayan bir ortamda Deno uygulamalarını nasıl içe aktaracağını hâlâ bulamadığını ve buna dair hiçbir dokümantasyon olmadığını belirtiyor. Bu kullanıcı, Deno'nun kurumsal ortamda bir umut taşımadığını düşünüyor.
  • Başka bir kullanıcı WebGPU özelliğine ilgi duyduğunu ifade ediyor ve Slint framework'ü üzerinden tarayıcı ya da webview olmadan JavaScript/TypeScript ile masaüstü GUI oluşturduğunu anlatıyor. Deno doğrudan pencere açabilse, tüm platformlar için native binary yerine wasm dağıtabileceğini umuyor. Ancak WebGPU özelliğinin pencere açma API'si içermediğini, bu yüzden hâlâ ek bir kütüphaneye ihtiyaç olduğunu ekliyor.
  • Bir kullanıcı, Deno'nun derleme durumunun iyileşmesini umduğunu ve üretilen çalıştırılabilir dosyanın 90 MB'tan büyük olduğunu, sıkıştırma sırasında hata verdiğini, bu yüzden Go dili gibi dağıtımının zor olduğunu belirtiyor. Deno'nun boyut açısından Node.js'in pkg çözümünden daha kötü hâle geldiğini söylüyor.
  • Bir başka kullanıcı, Deno'nun Rust host process içine gömülebilmesi için daha kapsamlı destek görmek istiyor. Bir JavaScript bundler yazdığını ve plugin çalıştırmak için Node.js runtime'ına ihtiyaç duyduğunu, ancak deno-core crate'inin çok temel kaldığını ve gömmenin zor olduğunu belirtiyor. Deno'nun JS araçları dünyasında bir "plugin runtime" olabileceğini düşünüyor; şu anda ise Rust host process içinden stdio kullanarak Node.js child process ile iletişim kurduğunu açıklıyor.
  • Bir kullanıcı JavaScript'ten hoşlanmadığını, ancak Deno'yu denediğinde çok akıcı ve hızlı bir deneyim yaşadığını söyleyerek olumlu görüş bildiriyor.
  • Başka bir kullanıcı, 2023'te ilk kez önemsiz olmayan bir Deno uygulamasını production'a deploy ettiğini, birden fazla entry point içeren bir repository'de lock dosyasını senkronize etmeyi öğrenme sürecinde zorlandığını, ancak genel olarak iyi bir deneyim yaşadığını söylüyor.
  • Jupyter'nin Deno kullanarak JavaScript ve TypeScript desteği kazanmasına dair bir kullanıcı olumlu tepki veriyor, ancak Python'un sayılar ve matematik için sunduğu güçlü desteğe değinerek bunu kullanmak isteyenlerin olup olmayacağını sorguluyor.
  • Bir kullanıcı, yazının sonunda bağlantısı verilen JSR bekleme listesine katılınabildiğini ve Deno ekibinin ne üzerinde çalıştığını merak ettiğini söylüyor.
  • Bir kullanıcı, Deno Deploy'un GCP bölgelerini 35'ten 12'ye düşürdüğüne dair bir bağlantı paylaşıyor.
  • Fresh adlı web geliştirme framework'ünü kullanmak istediğini söyleyen bir kullanıcı, şu anda yalnızca Tailwind desteklenmesinin olgunlaşmamış göründüğünü belirtiyor. Bir sonraki iterasyonda CSS bundling yerine view transition'a öncelik verilmesine de şaşırıyor.