İçeriğe atla

Deno

Deno
Orijinal yazar(lar)Ryan Dahl
Geliştirici(ler)Various
İlk yayınlanma13 Mayıs 2018 (6 yıl önce) (2018-05-13)[1]
Önizleme sürümü0.32.0 / 3 Şubat 2020 (4 yıl önce) (2020-02-03)[2]
Programlama diliTypeScript, JavaScript, Rust, C++
İşletim sistemiGNU/Linux, macOS, Microsoft Windows
TürRun-time environment
Resmî sitesideno.com Bunu Vikiveri'de düzenleyin
Kod deposu Bunu Vikiveri'de düzenleyin

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.[3] 2018'de Dahl tarafından "Node.js Hakkında 10 Pişman Olduğum Şey" konuşmasında duyuruldu.[4] 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.[5][6]

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.[4] 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.[7]

Genel bakış

Deno, modern programcı için verimli ve güvenli bir betik ortamı olmayı hedeflemektedir.[5] 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.[5]

  1. ES Modülü sistemini,CommonJS yerine varsayılan modül sistemi olarak kullanır.
  2. Tarayıcılara benzer şekilde yerel veya uzak bağımlılıkları yüklemek için URL'leri kullanır.
  3. Node.js kurulumun ardından gelen NPM paket yönetim sistemi gibi bir sistemi yoktur. Deno da bu gömülü olarak gelir.
  4. 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.
  5. Çok çeşitli Web API'sine sahip tarayıcılarla daha iyi uyumluluk sağlar.
  6. Sandbox kodunu çalıştırmak için dosya sistemine ve ağ erişimine denetime izin verir.
  7. Promises, ES6 ve TypeScript özelliklerini kullanmak için sistemi yeniden tasarlanmıştır.
  8. 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

  1. ^ "Contributors, denoland/deno, Github". 30 Mayıs 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 5 Temmuz 2019. 
  2. ^ "Deno 0.32.0". 22 Şubat 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Şubat 2020GitHub vasıtasıyla. 
  3. ^ "Deno: Secure V8 TypeScript Runtime from Original Node.js Creator". InfoQ. 8 Ocak 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Mayıs 2019. 
  4. ^ a b Ryan Dahl'ın İlgili Konuşması, 17 Mayıs 2019 tarihinde kaynağından arşivlendi, erişim tarihi: 13 Şubat 2020 
  5. ^ a b c "Deno Manual". deno.land. 8 Ocak 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Mayıs 2019. 
  6. ^ "Ryan Dahl's Node.js regrets lead to Deno". InfoWorld. 21 Haziran 2018. 10 Haziran 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 13 Şubat 2020. 
  7. ^ "Design mistakes in Node" (PDF). Github. 6 Haziran 2018. 22 Şubat 2020 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 13 Şubat 2020. 

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">JavaScript</span> programlama dili

JavaScript, HTML ve CSS ile birlikte World Wide Web'in temel teknolojilerinden biri olan programlama dilidir. Web sitelerinin %97'sinden fazlası, web sayfası hareketleri için istemci tarafında JavaScript kullanırlar ve kullanılan kodlar genellikle üçüncü taraf kitaplıkları içerir. Tüm büyük web tarayıcılarında, kaynak kodunu kullanıcıların cihazlarında yürütebilmek için özel bir JavaScript motoru bulunur.

<span class="mw-page-title-main">Java</span> açık kaynak kodlu, nesneye yönelik, zeminden bağımsız, yüksek verimli, çok işlevli, yüksek seviye, adım adım işletilen bir programlama dili

Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmış açık kaynak kodlu, nesneye yönelik, platform bağımsız, yüksek verimli, çok işlevli, yüksek seviye, hem yorumlanan hem de derlenen bir dildir.

<span class="mw-page-title-main">Ford Mustang</span> otomobil modeli

Ford Mustang, Ford tarafından Ford Falcon modelinden esinlenerek üretilen otomobil, ilk kez 9 Mart 1964'te Ford'un Michigan Dearborn'daki tesislerinde üretilmiştir. 17 Nisan 1964 yılındaki New York Fuarında görücüye çıkan otomobil 1964 yılında başrolünde Sean Connery'in oynadığı James Bond Goldfinger(Altın Parmak) filminde boy göstermiştir. Ayrıca 17 Şubat 2008'de ABD'de gösterime giren Knight Rider sinema filminde de kendi kendine hareket edebilebilen, konuşabilen akıllı otomobil KITT ise 5. nesil Ford Mustang GT500KR Shelby kullanılmaktadır.

<span class="mw-page-title-main">Apache Ant</span>

Apache Ant, yazılım inşası süreçlerini otomatikleştirmeye yarayan bir araçtır. Make'e benzeyen uygulama, Java ile geliştirilmiş olup Java platformunu gerektirmekte ve Java projelerinde sıkça kullanılmaktadır.

<span class="mw-page-title-main">Node.js</span> Server-side JavaScript frameworkü

Node.js, açık kaynaklı, genelde sunucu tarafında çalışan ve ağ bağlantılı uygulamalar için geliştirilmiş bir çalıştırma ortamıdır. Node.js uygulamaları genelde istemci tarafı betik dili olan JavaScript kullanılarak geliştirilir.

<span class="mw-page-title-main">Composer</span>

Composer, PHP programlama dili için tasarlanmış çoklu platform (cross-platform) bir paket yönetim sistemidir. PHP uygulamaları ve uygulama içerisinde kullanılan kütüphaneler için bağımlılık yönetimi sağlar. Nils Adermann and Jordi Boggiano, tarafından geliştirilmiş olup ilk sürümü 1 Mart 2012 tarihinde yapılmıştır. Composer geliştirilirken Node.js'in "npm" ve Ruby'nin "bundler" sistemlerinden esinlenilmiştir.

npm

npm javascript betik dili için geliştirilmiş olan ve Node.js'in standart olarak kabul ettiği bir paket yönetim sistemidir. npm komut satırından çalıştırılır ve uygulamalar için bağımlılık yönetimi sağlar. Ayrıca geliştiricilerin merkezi bir npm kaynağından var olan paketleri kurmasına imkân verir. npm tamamen javascript dili kullanılarak Isaac Z. Schuleter tarafından, PHP'nin PEAR ve Perl'in CPAN sistemlerinden esinlenilerek geliştirilmiştir.

<span class="mw-page-title-main">React</span> Kullacı arayüzleri oluşturmak için kullanılan JavaScript kütüphanesi

React, kullanıcı arayüzü oluşturmaya yarayan açık kaynak kodlu bir javascript kütüphanesidir. Facebook önderliğinde bir geliştirici grubu tarafından geliştirilmekte olan React, Model-View-Controller prensibine uygun olarak oluşturulmuştur. React ile single-page olarak adlandırılan sayfalar geliştirilebileceği gibi React-Native ile mobil uygulamalar da geliştirilebilir.

Dart, ilk kez Google tarafından geliştirilen ve daha sonraları ECMA tarafından standart (ECMA-408) haline getirilen açık kaynaklı ve genel-amaçlı bir programlama dilidir. Dart dili kullanılarak web, sunucu, mobil uygulamalar ve IoT cihazları geliştirilebilir.

<span class="mw-page-title-main">Vue.js</span>

Vue.js kullanıcı arayüzleri ve tek sayfa uygulamalar inşa etmek için kullanılan açık kaynak Javascript iskeleti. 2013 yılında geliştirilmeye başlanan framework'ün güncel versiyonu 3.2'dir.

Windows Runtime, 2012 yılında ilk olarak Windows 8 ve Windows Server 2012'de tanıtılan platform tabanlı bir uygulama mimarisidir. WinRT, C++/WinRT, C ++/CX, JavaScript-TypeScript, yönetilen kod dilleri C Sharp ve Visual Basic .NET (VB.NET) 'in geliştirilmesini destekler. WinRT uygulamaları, hem x86 hem de ARM mimarisini doğal olarak destekler ve daha fazla güvenlik ve kararlılık sağlamak için sandbox ortamında çalışabilir. WinRT bileşenleri, yerel, yönetilen ve betik dilleri dahil olmak üzere birden fazla dil ve API arasında birlikte çalışabilirlikle tasarlanmıştır.

<span class="mw-page-title-main">Ryan Dahl</span>

Ryan Dahl bir yazılım mühendisi ve Node.js, JavaScript çalışma ortamının geliştiricisidir.

Bilgi işlemde gettext, Unix benzeri bilgisayar işletim sistemlerinde çok dilli programlar yazmak için yaygın olarak kullanılan bir uluslararasılaştırma ve yerelleştirme sistemidir. Gettext'in temel faydalarından biri, programlamayı çevirmekten ayırmasıdır. Gettext'in en sık kullanılan uygulaması, 1995 yılında GNU Projesi tarafından yayınlanan GNU gettext'idir .Çalışma zamanı kitaplığı libintl'dir. Gettext, çok sayıda isim türü için farklı dizeler kullanma seçeneği sunar, ancak dilbilgisel cinsiyet için desteği yoktur.

WebStrom çapraz platform bir JavaScript, TypeScript ve web için tümleşik geliştirme ortamıdır (IDE). Grafiksel hata ayıklamacısı (debugger) ve sürüm kontrol sistemi (VSC) ile entegredir. JetBrains şirketi tarafından geliştirilmektedir. Özel mülk bir yazılımdır. 30 günlük deneme sürümü de bulunmaktadır.

Bir web geliştiricisi, istemci-sunucu modeli kullanarak World Wide Web uygulamalarının geliştirilmesinde uzmanlaşmış veya özel olarak ilgilenen bir programcıdır. Uygulamalar genellikle istemcide, PHP, ASP'de HTML, CSS ve JavaScript kullanır. NET (C#), Python, Node.js, sunucuda Go veya Java ve istemci ile sunucu arasındaki iletişim için http bağlantılarını kullanmaktadır. Bir web içerik yönetim sistemi genellikle web uygulamalarını geliştirmek ve sürdürmek için kullanılır.

JavaScript motoru, JavaScript kodunu yürüten bir yazılım bileşenidir. İlk JavaScript motorları yalnızca yorumlayıcılardı, ancak ilgili tüm modern motorlar ise gelişmiş performans için tam zamanında derlemeyi kullanır.

<span class="mw-page-title-main">Electron (yazılım kütüphanesi)</span>

Electron, GitHub tarafından geliştirilen ve bakımı yapılan özgür ve açık kaynaklı bir yazılım iskeletidir. Çerçeve, Chromium tarayıcı motorunun bir çeşidi kullanılarak oluşturulan web teknolojilerini ve Node.js çalışma ortamını kullanarak masaüstü uygulamaları oluşturmak için tasarlanmıştır. Ek olarak, Düğüm hizmetleriyle yerel entegrasyon ve süreçler arası iletişim modülü gibi şeylere izin vermek için çeşitli API'ler de kullanır.

WebAssembly, yürütülebilir programlar için taşınabilir bir ikili kod biçimine karşılık gelen bir metin biçimidir. Bunun yanı sıra bu tür programlar ve bunların ana bilgisayar ortamı arasındaki etkileşimleri kolaylaştırmak için yazılım arabirimlerini de ifade eder.

<span class="mw-page-title-main">Construct (oyun motoru)</span>

Construct, Scirra Ltd. tarafından geliştirilen HTML5 tabanlı bir 2D video oyun motorudur. Öncelikle programcı olmayanlara yöneliktir, görsel programlama yoluyla oyunların hızlı bir şekilde oluşturulmasına olanak tanır. İlk olarak 27 Ekim 2007'de Python programlama ile Microsoft Windows için GPL lisanslı DirectX 9 oyun motoru olarak piyasaya sürüldü, daha sonra Construct 2 ile tescilli yazılım haline geldi ve ayrıca API teknolojisini DirectX'ten NW.js ve HTML5'e geçirdi. 2012'de Python'u kaldırdı ve JavaScript desteğini ve eklenti SDK'sını eklemek gibi ve sonunda bir web uygulaması olarak abonelik tabanlı bir modele geçti.

Next.js, React tabanlı web uygulamaları için sunucu tarafında işleme ve statik web sitesi oluşturma sağlayan, Vercel tarafından oluşturulmuş açık kaynaklı bir Web geliştirme platformudur.