Deno, V8 JavaScript motoruna ve ek olarak Rust programlama diline dayanan JavaScript ve TypeScript için bir çalıştırma ortamıdır . Node.js'in yaratıcısı Ryan Dahl tarafından güvenlik ve üretkenliğe odaklanılarak geliştirilmeye başlanmıştır. 2018'de Dahl tarafından "Node.js Hakkında 10 Pişman Olduğum Şey" konuşmasında duyuruldu. Deno, ayrı bir paket yönetim sistemi gerektirmez, bunun yerine tek bir dosya içinde hem çalışma ortamı hem de paket yöneticisi rolünü üstlenir.
Orijinal yazar(lar) | Ryan Dahl |
---|---|
Geliştirici(ler) | Various |
İlk yayınlanma | 13 Mayıs 2018 | )
Önizleme sürümü | 0.32.0 / 3 Şubat 2020 | )
Programlama dili | TypeScript, JavaScript, , |
İşletim sistemi | (GNU/Linux), macOS, Microsoft Windows |
Tür | |
Resmî sitesi | deno |
Kod deposu |
|
Geçmiş
Deno, JSConf EU 2018'de Ryan Dahl tarafından "Node.js Hakkında 10 Pişman Olduğum Şey" adlı konuşmasında duyuruldu. Ryan konuşmasında Node.js ile ilk tasarım kararlarından pişmanlıklarından bahsetti, API tasarımında Promises kullanmama, eski GYP inşa sisteminin kullanımı, node_modules ve package.json dosya uzantıları ve V8 problemleri gibi birçok konuya değindi.
Genel bakış
Deno, modern programcı için verimli ve güvenli bir betik ortamı olmayı hedeflemektedir. Deno, Node.js'ye benzer şekilde, engelleme sürümleriyle birlikte bir dizi non blocking-IO çekirdeği yardımcı programı sağlayarak olay odaklı mimariye vurgu yapar. Deno web sunucuları oluşturmak, bilimsel hesaplamalar yapmak için kullanılabilir.
Node.js ile Karşılaştırma
Deno ve Node.js, Google Chrome'da da kullanılan Google'ın V8 JavaScript motorunda oluşturulmuş çalışma ortamıdır. Her ikisinin de dahili olay döngüleri vardır ve komut dosyalarını çalıştırmak için komut satırı arabirimleri ve çok çeşitli sistem yardımcı programları sağlar.
Bu arada, Deno temelde Node.js'den şu yönleriyle ayrışmaktadır.
- ES Modülü sistemini,CommonJS yerine varsayılan modül sistemi olarak kullanır.
- Tarayıcılara benzer şekilde yerel veya uzak bağımlılıkları yüklemek için URL'leri kullanır.
- Node.js kurulumun ardından gelen NPM paket yönetim sistemi gibi bir sistemi yoktur. Deno da bu gömülü olarak gelir.
- Javascript'in süperseti olan ve Microsoft tarafından geliştirilen Typescript ile geliştirme ortamını sunar. Bu geliştiriciye Javascript'in esnek yapısından kurtulması için iyi bir şanstır.
- Çok çeşitli Web API'sine sahip tarayıcılarla daha iyi uyumluluk sağlar.
- Sandbox kodunu çalıştırmak için dosya sistemine ve ağ erişimine denetime izin verir.
- Promises, ES6 ve TypeScript özelliklerini kullanmak için sistemi yeniden tasarlanmıştır.
- Harici bağımlılık olmadan büyük bir standart kütüphane sağlarken çekirdek API boyutunu en aza indirir.
Örnekler
Aşağıdakiler, okuma / yazma / ağ izinleri (sandbox modu) olmadan temel bir Deno komut dosyasını çalıştırır:
deno run main.ts
İlgili izni göstermek için açık komutlara gerekir:
deno run --allow-read --allow-net main.ts
Komut dosyasının bağımlılık ağacını incelemek için info
alt komutunu kullanın:
deno info main.ts
Deno'daki temel bir merhaba dünya programı aşağıdakine benzer (Node.js'de olduğu gibi):
console.log("Hello world");
Deno, tarayıcıda bulunmayan Deno'ya özgü API'lerin çoğu için genel ad alanı sağlar. Bir Unix cat programı aşağıdaki gibi uygulanabilir:
/* cat.ts */ /* Aşağıdaki fonksiyonlar Deno namespace'inden devralınır. */ const { stdout, open, copy, args } = Deno; for (let i = 0; i < args.length; i++) { const filename = args[i]; // Komut satırı bağımsız değişkenleri ele alır. const file = await open(filename); //Filename adıyla dönen osyalar open fonksiyonu ile açılır. await copy(stdout, file); // Asenkron olarak kopyalanır. }
Kaynakça
- ^ "Contributors, denoland/deno, Github". 30 Mayıs 2019 tarihinde kaynağından . Erişim tarihi: 5 Temmuz 2019.
- ^ "Deno 0.32.0". 22 Şubat 2020 tarihinde kaynağından . Erişim tarihi: 3 Şubat 2020 – GitHub vasıtasıyla.
- ^ "Deno: Secure V8 TypeScript Runtime from Original Node.js Creator". InfoQ. 8 Ocak 2020 tarihinde kaynağından . Erişim tarihi: 17 Mayıs 2019.
- ^ a b Ryan Dahl'ın İlgili Konuşması, 17 Mayıs 2019 tarihinde kaynağından , erişim tarihi: 13 Şubat 2020
- ^ a b c . deno.land. 8 Ocak 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Mayıs 2019.
- ^ "Ryan Dahl's Node.js regrets lead to Deno". . 21 Haziran 2018. 10 Haziran 2019 tarihinde kaynağından . Erişim tarihi: 13 Şubat 2020.
- ^ "Design mistakes in Node" (PDF). Github. 6 Haziran 2018. 22 Şubat 2020 tarihinde kaynağından (PDF). Erişim tarihi: 13 Şubat 2020.
Dış bağlantılar
- Resmî site
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Deno V8 JavaScript motoruna ve ek olarak Rust programlama diline dayanan JavaScript ve TypeScript icin bir calistirma ortamidir Node js in yaraticisi Ryan Dahl tarafindan guvenlik ve uretkenlige odaklanilarak gelistirilmeye baslanmistir 2018 de Dahl tarafindan Node js Hakkinda 10 Pisman Oldugum Sey konusmasinda duyuruldu Deno ayri bir paket yonetim sistemi gerektirmez bunun yerine tek bir dosya icinde hem calisma ortami hem de paket yoneticisi rolunu ustlenir DenoOrijinal yazar lar Ryan DahlGelistirici ler VariousIlk yayinlanma13 Mayis 2018 6 yil once 2018 05 13 Onizleme surumu0 32 0 3 Subat 2020 4 yil once 2020 02 03 Programlama diliTypeScript JavaScript C Isletim sistemiGNU Linux macOS Microsoft WindowsTurResmi sitesideno wbr com Kod deposugithub com denoland denoGecmisDeno JSConf EU 2018 de Ryan Dahl tarafindan Node js Hakkinda 10 Pisman Oldugum Sey adli konusmasinda duyuruldu Ryan konusmasinda Node js ile ilk tasarim kararlarindan pismanliklarindan bahsetti API tasariminda Promises kullanmama eski GYP insa sisteminin kullanimi node modules ve package json dosya uzantilari ve V8 problemleri gibi bircok konuya degindi Genel bakisDeno modern programci icin verimli ve guvenli bir betik ortami olmayi hedeflemektedir Deno Node js ye benzer sekilde engelleme surumleriyle birlikte bir dizi non blocking IO cekirdegi yardimci programi saglayarak olay odakli mimariye vurgu yapar Deno web sunuculari olusturmak bilimsel hesaplamalar yapmak icin kullanilabilir Node js ile Karsilastirma Deno ve Node js Google Chrome da da kullanilan Google in V8 JavaScript motorunda olusturulmus calisma ortamidir Her ikisinin de dahili olay donguleri vardir ve komut dosyalarini calistirmak icin komut satiri arabirimleri ve cok cesitli sistem yardimci programlari saglar Bu arada Deno temelde Node js den su yonleriyle ayrismaktadir ES Modulu sistemini CommonJS yerine varsayilan modul sistemi olarak kullanir Tarayicilara benzer sekilde yerel veya uzak bagimliliklari yuklemek icin URL leri kullanir Node js kurulumun ardindan gelen NPM paket yonetim sistemi gibi bir sistemi yoktur Deno da bu gomulu olarak gelir Javascript in superseti olan ve Microsoft tarafindan gelistirilen Typescript ile gelistirme ortamini sunar Bu gelistiriciye Javascript in esnek yapisindan kurtulmasi icin iyi bir sanstir Cok cesitli Web API sine sahip tarayicilarla daha iyi uyumluluk saglar Sandbox kodunu calistirmak icin dosya sistemine ve ag erisimine denetime izin verir Promises ES6 ve TypeScript ozelliklerini kullanmak icin sistemi yeniden tasarlanmistir Harici bagimlilik olmadan buyuk bir standart kutuphane saglarken cekirdek API boyutunu en aza indirir OrneklerAsagidakiler okuma yazma ag izinleri sandbox modu olmadan temel bir Deno komut dosyasini calistirir deno run main ts Ilgili izni gostermek icin acik komutlara gerekir deno run allow read allow net main ts Komut dosyasinin bagimlilik agacini incelemek icin info alt komutunu kullanin deno info main ts Deno daki temel bir merhaba dunya programi asagidakine benzer Node js de oldugu gibi console log Hello world Deno tarayicida bulunmayan Deno ya ozgu API lerin cogu icin genel ad alani saglar Bir Unix cat programi asagidaki gibi uygulanabilir cat ts Asagidaki fonksiyonlar Deno namespace inden devralinir const stdout open copy args Deno for let i 0 i lt args length i const filename args i Komut satiri bagimsiz degiskenleri ele alir const file await open filename Filename adiyla donen osyalar open fonksiyonu ile acilir await copy stdout file Asenkron olarak kopyalanir Kaynakca Contributors denoland deno Github 30 Mayis 2019 tarihinde kaynagindan Erisim tarihi 5 Temmuz 2019 Deno 0 32 0 22 Subat 2020 tarihinde kaynagindan Erisim tarihi 3 Subat 2020 GitHub vasitasiyla Deno Secure V8 TypeScript Runtime from Original Node js Creator InfoQ 8 Ocak 2020 tarihinde kaynagindan Erisim tarihi 17 Mayis 2019 a b Ryan Dahl in Ilgili Konusmasi 17 Mayis 2019 tarihinde kaynagindan erisim tarihi 13 Subat 2020 a b c deno land 8 Ocak 2020 tarihinde kaynagindan arsivlendi Erisim tarihi 17 Mayis 2019 Ryan Dahl s Node js regrets lead to Deno 21 Haziran 2018 10 Haziran 2019 tarihinde kaynagindan Erisim tarihi 13 Subat 2020 Design mistakes in Node PDF Github 6 Haziran 2018 22 Subat 2020 tarihinde kaynagindan PDF Erisim tarihi 13 Subat 2020 Dis baglantilarResmi site