Node.js için daha güçlü güvenlik ve üstün bir geliştirici deneyimi vaat eden JavaScript / TypeScript çalışma zamanı Deno, 13 Mayıs 2020'de 1.0 sürüm durumuna ulaştı.
Node.js'yi de oluşturan Ryan Dahl tarafından yaratılan Deno, özellikle güvenlik olmak üzere Node'un bir dizi eksikliğini gidermek için tasarlandı. (Deno, Düğümün bir anagramıdır.) Proje yaklaşık iki yıl önce halka açıldı.
Node'dan farklı olarak Deno, NPM paket yöneticisini kullanmaz; bunun yerine, URL'lere veya dosya yollarına başvurarak modülleri yükler. Deno'nun arkasındaki felsefe, modern programcı için üretken, güvenli bir komut dosyası oluşturma ortamı olarak hizmet etmektir. Python veya Bash ile yazılmış olabilecek yardımcı program betiklerinin yerini alabilir. Deno'nun kurulumuyla ilgili talimatlar deno.land adresinde bulunabilir.
Deno'nun öne çıkan özellikleri şunlardır:
- Deno, JavaScript ve TypeScript'i tarayıcı dışında tek bir yürütülebilir dosyada (denocode) çalıştırmak için çalışma zamanıdır.
- Deno, açıkça etkinleştirilmediği sürece dosya, ağ veya ortam erişimi olmaksızın varsayılan olarak güvenlidir.
- Deno, yakalanmayan hatalardan ölür.
- Deno'daki tüm zaman uyumsuz eylemler bir söz verir.
- Deno betikleri tek bir JavaScript dosyası içinde paketlenebilir.
- Deno, yerleşik bir bağımlılık denetçisine (deno infocode) ve bir kod biçimlendiriciye sahiptir.
- Deno, bir dizi denetlenmiş standart modül sağlar.
- Deno, farklı katmanlarda entegrasyona izin vermek için bir dizi Rust kasa olarak tasarlanmıştır.
Deno, Dahl ve katkıda bulunanlar Bartuk Iwanczuk ve Bert Belder'in nedenlerini açıklarken, bir blog yazısında JavaScript dinamik dil araçları için doğal seçim olsa da, Node'un 2009 yılında JavaScript'in çok farklı bir dil olduğu zamanlarda tasarlandığını yazdı. Sonuç olarak, Node üzerinde uygulama oluşturmak zorlu bir çaba olabilir.
Deno'nun yaratıcıları, "JavaScript'in ve çevresindeki yazılım altyapısının, basitleştirmeye değecek kadar değiştiğini düşünüyoruz" diye yazdı. "Çok çeşitli görevler için kullanılabilecek eğlenceli ve verimli bir komut dosyası oluşturma ortamı arıyoruz."