Deno Nedir? Ne İşe Yarar?
Son zamanlarda deno'yu fazlasıyla duymaya başladık. Hatta nodejs'in yerini alabileceği gibi görüşlerle karşılaşıyoruz. İlerleyen zamanlarda adından fazlaca söz edileceğinden de eminim. Bu yazıda da deno'nun ne olduğundan ve neden nodejs ile karşılaştırıldığından basitçe bahsetmeye çalışacağım.
Deno nedir?
Deno, Node.js'in yaratıcısı Ryan Dahl tarafından geliştirilen Google’ın javascript motoru V8'i kullanan, javascript ve typescript için güvenli bir runtime’dır.
Deno;
- Rust
- Tokio
- Typescript
- V8
kullanılarak inşa edilmiştir.
Ryan Dahl ve takımı deno'yu geliştirmekteki amaçlarının nodejs'deki tasarım hataları ve güvenlik sorunları olduğunu söylüyor. Nodejs oldukça geniş bir ekosisteme sahip olmasına ve diğer teknolojilere nazaran yeni olmasına rağmen kötü özellikleri de varmış. Vardır bi bildikleri deyip geçmek lazım diye düşünüyorum 😀.
Nodejs'in Zayıf Yanları
Deno geliştiricilerine göre nodejs'in zayıf yanlarına bir göz gezdirelim.
- Nodejs javascript odaklı bir teknoloji olup static type'ları içermez.
- Modern javascript özelliklerini içermez.
- Varsayılan olarak güvenli değildir.
Son madde kafa karıştırıcı olabilir. İnsanın aklına madem güvenli değil neden bu kadar popüler ve ekosistemi büyük gibi sorular gelebiliyor. Şöyle izah etmek gerekirse; her node script'inin dosya sistemimize, network'ümüze ve ortamımıza tam erişimi vardır. Burada esneklik ve güvenlik olmak üzere iki yol ayrımına düşüyoruz.
Örneğin prettier, eslint, webpack gibi araçların sistemimizdeki tüm dosyalara erişimi bulunuyor. Aslında listedeki güvenlik maddesini bu örnekle açıklayabiliriz.
Ayrıca deno built-in olarak typescript'i desteklediği için ilk maddeye de bir çözüm getirmiş oluyor.
NPM Ve node_modules Ortadan Kalkıyor Mu?
Deno remote URL'den module import etme özelliği sayesinde npm ve 400, 500mb gibi absürt node_modules klasörlerinden bizi kurtarmayı amaçlamış 🎉🎉🎉.
Bu da demek oluyor ki bcrypt kütüphanesine ihtiyacımız olduğunda aşağıdaki gibi kullanabiliyoruz.
import * as bcrypt from "https://deno.land/x/bcrypt/mod.ts";
const salt = bcrypt.gensalt(8);
const hash = bcrypt.hashpw("test1234", salt);
Deno'nun Tarayıcı Desteği
Deno ile ilgili çok sevdiğim bir diğer özellik de native olarak ES module yapısını desteklemesi oldu. Artık webpack veya parcel gibi kodumuzu tarayıcının çalıştırabileceği hale getiren araçlara ihtiyacımız olmayacak. Nerden baksanız kral hareket olmuş.
Deno Nodejs'in Yerini Alır Mı?
Kişisel olarak böyle bir şey mümkün olmayacağını, hatta ayrı iki ekosistem olacağını ve birbirlerine anca alternatif olabileceklerini düşünüyorum.
Kapanış
Deno ile ilgili ufak bir inceleme yapmış olduk. Muhtemelen ilerleyen günlerde daha sık adını duymaya başlayacağız. Fakat nodejs kullanıyorsanız hemen deno'ya geçmeliyim gibi bir paniğe veya kaygıya kapılmaya gerek yok diye düşünüyorum. Bu konu hakkında bir fikriniz varsa aşağıdan belirtebilirsiniz ❤️.
Yorumlar
Soru, cevap ve destekleriniz için aşağıdan yorum bırakmayı unutmayın.