İçeriğe atla

Dart (programlama dili)

Dart
ParadigmasıÇoklu paradigma: betikleme, nesne yönelimli, fonksiyonel, emirsel (imperative),
İlk çıkışı10 Ekim 2011 (13 yıl önce) (2011-10-10)
TasarımcıLars Bak ve Kasper Lund
GeliştiriciGoogle
Kararlı sürüm3.2.6 (24 Ocak 2024 (8 ay önce) (2024-01-24))
Önemli uygulamalarıDart VM, dart2js ve Fletch
EtkilendikleriJavaScript, Smalltalk, Erlang, Strongtalk ve C#
PlatformuÇapraz Platform
İşletim sistemiWindows, Mac OS X, Linux
LisansBSD license
Olağan dosya uzantıları.dart
Web sitesidart.dev

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.

Dart dili sınıf-temelli, tekil-kalıtımlı C-tarzında bir kod dizilimine sahiptir ve JavaScript diline veya çalıştığı sistemdeki özgün (native) dile çevrilebilir. Interface'leri,single inheritance'ı, mixin'leri, soyut sınıfları, generic'leri ve opsiyonel tipleri (dynamic) destekler.

Tarihçe

Dart ilk kez Danimarka'nın Aarhus şehrinde, 2011 yılının Ekim ayının 10-12. günlerinde düzenlenen GOTO etkinliği kapsamında tanıtıldı. Dart projesi Lars Bak ve Kasper Lund tarafından kuruldu.

Standartlaşma

Ecma International, Dart'ın standartlaştırılmasını sağlamak ve JavaScript olarak derlenebildiği için modern tarayıcılarda üzerinde efektif bir şekilde çalışmasının gerçekleştirilmesi adına TC52 adında teknik komisyonu kurdu. Dart dilinin ilk spesifikasyonu, 2014 yılının Temmuz ayında Ecma International'ın 107. Genel Kongre'sinde kabul edildi. O zamandan beri 2. beyannamesi de kabul görmüş durumdadır.

Kullanım türleri

Dart kodu, 3 farklı şekilde kullanılabilir:

JavaScript olarak derleme
Dart kodunun yaygın internet tarayıcılarında çalışabilmesi için JavaScript'e koddan-koda derlenmesi gerekmektedir. Resmi sitesinde yer alan bilgiye göre Dart, "Modern uygulama geliştirimi ve yüksek performanslı programlar yazmak adına kolayca geliştirim araçları yazmak için tasarlanmıştır. Dart kodu web tarayıcısında çalışacağı zaman, dart2js derleyicisi ile Javascript'e derleme yapılır. JavaScript olarak derlenmiş Dart kodu, bütün modern tarayıcılarda hiçbir değişiklik gerektirmeksizin uyumlu hale gelir. Derlenmiş Javascript kodunun gereksiz kontrol ifadelerinden ve işlemlerinden arındırılmış bir şekilde optimize olması sebebiyle Dart ile yazılan kod bazı durumlarda eşdeğer olarak elle yazılan Javascript kodundan daha performanslı olabilir.
Dartium Tarayıcısı'nda
Dart SDK'sı, Dart VM (sanal makine) içeren Chromium web tarayıcısı ile birlikte gelir. Bu tarayıcıyı diğer tarayıcılardan ayıran fark ise Dart kodunu JavaScript'e derlemeksizin çalıştırabilir olmasıdır. Bu tarayıcı, genel amaçlı değildir ve Dart uygulamaları için bir geliştirim aracı olarak kullanılır. Önceden de Chrome içerisine tümleşik olarak bu tarayıcının getirilmesi amaçlandı fakat daha sonra iptal edildi.
Platform bağımsızdır
Dart SDK'sı ayrıca dart kodunun komut satırında çalıştıırlabilmesini sağlayan ve platformdan bağımsız olan Dart VM ile gelir. Dart SDK'sıne dahil olan Dart VM ve dart ile yazılan dil araçları, SDK'nin kritik bir bölümünü oluşturur. Bu dil araçları yalnızca dart2js derleyicisini içermekle kalmaz, ayrıca pub adında paket yöneticisini de içerir. Dart, özelleştirilmiş web sunucuları gibi tam fonksiyonel sistem uygulamalarının yazılması için standart kütüphanesi ile birlikte gelir.

Çalışma türleri

Dart uygulamaları iki türden birinde çalışır. Ön tanımlı olmayan ve aktif hale getirilerek kullanılan "kontrollü mod"'da dinamik olarak tür kontrolleri yapılır. Kontrollü modda eğer statik türler varsa ve tür uyuşmazlığına dair bir durum olduğunda bu hataların yakalanması sağlanır. Örneğin, eğer bir metot String dönecek şekilde yazılmışsa ve tam sayı döndürmeye çalışıyorsa dinamik tür belirtimi bu hatayı yakalar ve exception olarak fırlatır. Kontrollü modda çalışma, uygulama geliştirimi ve test aşaması için tavsiye edilen yöntemdir.

Dart programları, dinamik tür kontrollerinin varsayılan olarak kapalı olduğu "üretim modu"'nda gelir.  Bu modun varsayılan olmasının sebebi Dart programının en hızlı şekilde çalıştırılabilmesi içindir.

Isolate'ler

Eş zamanlı çalışmak için Dart, birbirinden bağımsız ve bellek paylaşımı olmayan, bunun yerine mesajlarla birbirleriyle haberleşen işçi bileşenler olan isolate'leri kullanır. Bu durum, Erlang dilindeki aktörler ile benzerlik gösterir. Her dart programı en azından bir isolate'e ihtiyaç duyar ki bu main isolate'dir. Dart kodu JavaScript olarak derlendiğinde, isolate'ler Web Worker'lara dönüştürülür.

Snapshot'lar

Snapshot'lar Dart VM'in çekirdeğini oluşturur. Aslında her bir snapshot, nesneleri ve diğer çalışma zamanı verilerini tutan tipik bir dosyadır.

Betik snapshot'ları

Dart programları snapshot dosyaları olarak derlenebilirler. Bu dosyalar program kodunun tümünü içerir ve bağımlı olduğu bileşenler de önceden ayrıştırılmış halde gelir ve çalışmak için hazırdırlar. Bu sayede programların başlaması oldukça hızlıdır.

Tam snapshot'lar

Dart'ın çekirdek kütüphaneleri, programların çok hızlı açılması için snapshot dosyaları olarak derlenebilir. Dart VM'in birçok standart dağıtımında, çalışma zamanında yüklenen ana kütüphaneler önceden derlenmiş snopshot'lar halinde bulunur.

Nesne snapshot'ları

Dart oldukça asenkron bir dildir. Bunun için eş zamanlı çalışmayı sağlayan isolate'leri kullanır. Bu işçilerin mesajları birbirine aktarabilmeleri için, mesajı öncelikle uygun hale getirmeleri (serialization) gerekmektedir. Bu işlem, gönderilecek nesnenin verilmesiyle oluşturulan ve daha sonra deserialization yapılması için diğer isolate'e gönderilen snapshot kullanarak gerçekleştirilir.

Native mobil uygulamalar

Dart, eş zamanlı çalışma için farklı modeller sunan Fletch adındaki sanal makineye sahiptir. Bununla birlikte herhangi bir uygulamada Dart kodunun gömülebilmesi için basit bir API sunar. Google, Dart'ın tüm kısımlarının Android ve iOS üzerinde native mobil uygulama geliştirimi yapılabilmesi için Flutter üzerinde uğraşmaktadır 30 Kasım 2015 tarihinde Wayback Machine sitesinde arşivlendi..

JavaScript'e derleme

dart2js mevcut Dart kodundan JavaScript koduna derlemeyi sağlayan 2015 yılında Google'ın ürettiği ve Dart dili ile yazılan bir derleyicidir. dart2js, Dart dilinin tüm spesifikasyonlarını ve semantiğini içermek üzere geliştirilmiştir. Önceki derleyicilerin evrimi niteliğindedir: dartc, Dart kodundan Javascript koduna derlemeyi amaçlayan ilk derleyicidir fakat artık kullanılmamaktadır. Frog ise bu alandaki ikinci Dart'tan JavaScript'e çevirim yapan derleyicidir ve Dart ile yazılmıştır. Frog hiçbir zaman dilin tüm spesifikasyonlarını uygulayamamıştır ve dart2js'in çıkışına ön ayak olmuştur.

2013 yılının 28 Mart'ında Dart ekibi, blog'unda Dart kodunun JavaScript'e dönüştürülmesini sağlayan dart2js derleyicisini paylaşmışlardır ve Chrome'un V8 JavaScript motorunda Deltablue benchmark testlerinin yürütülmesi sonucu elle yazılan JavaScript kodundan daha hızlı olduğunu dile getirmişlerdir.

Editörler

2011'in 18 Kasım'ında Google, açık kaynaklı, Eclipse bileşenlerinden oluşan ve Mac OS X, Windows ve Linux-temelli işletim sistemlerinde çalışabilen Dart Editor'ü yayımladı. Editör kullanılarak syntax işaretleme, otomatik kod tamamlama, JavaScript kodu tamamlama, web ve sunucu Dart uygulamaları ve hata ayıklama gerçekleştirilebilmektedir.

2012'nin 13 Ağustos'unda, Google Dart geliştirimi için bir Eclipse eklentisi yayımladı.

2015'in 18 Nisan'ında, Google JetBrains IDE'lerine destek vermek için Dart Editor'ün kullanımdan kaldırılacağını duyurdu.

Dart dili için önerilen editör JetBrains IDE'leridir. Dart eklentisi, IntelliJ IDEA, PyCharm, PhpStorm ve Webstorm için sunulmaktadır. Bu eklenti ile syntax highlighting, otomatik kod tamamlama, analiz yapma, refactoring, hata ayıklama ve daha fazlası mevcuttur. Sublime Text ve Atom gibi derleyicileri için de ayrıca eklentiler mevcuttur.

Chrome Dev Editor

2013 yılının kasım ayından beri, Chrome ekibinin üzerinde çalıştığı, açık kaynaklı, Chrome uygulaması-temelli ve tekrar kullanılabilen arayüz bileşenlerini barındıran zengin bir kütüphaneye sahip geliştirim ortamı Spark kod adıyla ortaya çıkmış ve daha sonraları Chrome Dev Editor olarak isim değiştirmiştir. Dart dilinde yazılmıştır ve Polymer ile güçlendirilen Spark'ı içerir. Geliştirici önizleme sürümü Chrome Web Store'da mevcuttur.

DartPad

Dart ekibi 2015'in başlarında, herkesin Dart ile akıcı bir başlangıç gerçekleştirebilmesi için DartPad adlı editörü oluşturdu.  Tamamen çevrimiçi bir editör olmasının yanı sıra, Dart API'ler üzerinde deneyler yapabilir ve Dart kodu çalıştırılabilir. Syntax highlighting, kod analizi, otomatik kod tamamlama, dokümanlama ve HTML ile CSS'te kullanarak web sayfaları oluşturma gibi özellikler sunar.

SIMD komut kümesi

2013'te John McCutchan, Dart programlama dili için, Google'ın deneysel Dartium tarayıcısını çalıştıran kullanıcılarına ilk kez SIMD (tekil komut çoklu veri) 'nin yararlarının web programlarında kullanılmasına yönelik performanslı bir arayüz oluşturdu. Arayüz aşağıdaki iki türü içermektedir:

  • Float32×4, 4× tekil hassasiyetli kayan noktalı değerler
  • Uint32×4, 4× 32-bit işaretsiz tam sayı değerleri

Bu türler sabittir ve optimize edilmiş kodda direkt olarak SIMD register'larına eşleştirilirler. Dart dilindeki işlemler ek yük oluşturulmaması için tipik olarak tekli komutlardan oluşurlar. Bu durum, C ve C++ dilleri ile benzerlik gösterir. 4×4 matris çarpımı, 3D vertex dönüşümleri, ve Mandelbrot kümesi animasyonları için benchmark testleri Dart'ta yazılan sayısal koda kıyasla neredeyse 400% hız artşı gösterir.

Örnek

Bir Merhaba Dünya uygulaması örneği:

void main() {
  print('Merhaba Dünya!');
}

Basit operatör işlemleri:

void main() {
  print(5+7);
  print(5/7);
  print(5-7);
  print(5*7);
  
}

n. Fibonacci sayısının hesaplanmasını sağlayan fonksiyon:

int fib(int n) => (n > 2) ? (fib(n - 1) + fib(n - 2)) : 1;

void main() {
  print('fib(20) = ${fib(20)}');
}

Basit bir sınıf örneği:

// Kök alma fonksiyonu olan sqrt'ye erişim için matematik kütüphanesinin(math) eklenmesi.
import 'dart:math' as math;

// Nokta sınıfının oluşturulması
class Nokta {

  // Final tipli değişkenler bir kez atandıktan sonra bir daha değiştirilemezler.
  // X ve Y koordinat değişkenleri.
  final num x, y;

  // Oluşturulacak nesnenin değişkenlerinin atanması için constructor (yapıcı) fonksiyonu.
  Nokta(this.x, this.y);

  // Orijin'de bir nokta oluşturmak için yazılan orijin ismine sahip bir constructor fonksiyonu.
  Nokta.orijin()
      : x = 0,
        y = 0;

  // İki nokta arası uzaklık hesaplama metodu
  num uzaklikHesapla(Nokta digerNokta) {
    var dx = x - digerNokta.x;
    var dy = y - digerNokta.y;
    return math.sqrt(dx * dx + dy * dy);
  }

  // + operatörünün aşırı yüklenmesi.
  Nokta operator +(Nokta digerNokta) => new Nokta(x + digerNokta.x, y + digerNokta.y);
}

// Tüm Dart programları main() fonksiyonu ile başlar.
void main() {
  // Nokta nesnelerinin oluşturulması.
  var n1 = new Nokta(10, 10);
  var n2 = new Nokta.orijin();
  var uzaklik = n1.uzaklikHesapla(n2);
  print(uzaklik);
}

Diğer diller ile benzerlikler

Dart dili, C, C#, Java, JavaScript ve diğer diller gibi ALGOL dil ailesinin bir üyesidir.

Aynı nesne üzerinde art arda birçok metot çağırmak için kolaylık sağlayan metot çağlayanı tarzındaki kod dizilimi Smalltalk dili üzerinden benimsenmiştir.

Dart'ın mixin'leri Strongtalk ve Ruby ile benzerlik gösterir.

Dart, uygulama geliştiriminde eş zamanlılık ve güvenlik birimi için isolate'leri kullanır. Isolate konsepti, Erlang dilinde oldukça yaygın kullanılan Actor modeli temellidir.

Kontrollü ve güvenli reflection için ilk kez Gilad Bracha (Dart ekibi üyesidir) ve David Ungar tarafından makale halinde sunulan Mirror API, aslında orijinal olarak Self dilinde implement edilmiştir.

Değerlendirme

Dart dili başlangıçta bazı çevreler tarafından web programlamanın parça parça hale getirilmesi ve karışıklığa yol açtığına değerlendirilmiştir. Bu değerlendirmenin büyük bir kısmı, aslında ilk zamanlarda DartVM'in Chrome içerisinde çalıştırılması planlandığından kaynaklanmaktadır. Fakat bu planlar iptal olmuş ve JavaScript olarak derleme üzerine yoğunlaşılmıştır.

Ayrıca bakınız

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">Web sayfası</span> World Wide Web ve web tarayıcıları aracılığıyla doğrudan görüntülenebilen tek belge

Web sayfası, World Wide Web için hazırlanan ve web tarayıcısı kullanılarak görüntülenebilen dokümanlardır. Web sayfaları çoğunlukla HTML formatında kodlanır, CSS, betik, görsel ve diğer yardımcı kaynaklardan yararlanılarak son görünümüne sahip olur ve işlevsellik kazanır. Birden fazla web sayfasının bir araya gelmesi ile ortaya çıkan web sitesi ile karıştırılmamalıdır. Günlük konuşma dilinde internet sayfası terimi de çoğunlukla web sitesi anlamında kullanılmaktadır.

ASP.NET, Microsoft tarafından geliştirilmiş olan bir açık kaynak Web uygulama gelişimi teknolojisidir. Dinamik Web sayfaları, Web uygulamaları ve XML tabanlı Web hizmetleri geliştirilmesine olanak sağlar. Aynı işletme tarafından geliştirilen .NET çatısı'nın yazılım iskeleti parçası ve artık işletmece desteklenmeyen ASP teknolojisinin devamını teşkil etmiştir.

<span class="mw-page-title-main">Document Object Model</span>

Document Object Model, "DOM", "Belge Nesnesi Modeli" anlamlarına da gelmektedir. İnternet tarayıcıları girilen internet sitesini bir belge, bu belge (sayfa) içerisinde bulunan tüm elemanları da nesne olarak kabul eder. Buna göre resim, yazı, form gibi tüm elemanlar nesnedir. İşte DOM sayfa içindeki herhangi bir nesnenin özelliğine müdahale edebilmemize, nesne özelliklerini değiştirebilmemize olanak sağlar. Bunu yapabilmek için de JavaScript gibi bazı script dilleri kullanmamız gerekir.

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

İterasyon, tekerrür, tekrarlama, yineleme ve mükerrer icrâ, ardışık işlem anlamlarına gelen iterasyon (iteration), programlamada bir dizi işlemin döngüler kullanarak yazılmasıdır.

Betik dili, betik yorumlamak için yazılmış özel çalışma-zamanı sistemlerinin yorumlayabileceği programlama dilleridir. Diğer programlama dilleri ile yazılan kodlar makine koduna çevrilip çıkan program doğrudan çalıştırılırken betik kodları interpreter tarafından doğrudan okunur ve yorumlanarak işlemler yorumlayıcının kendisi tarafından yapılır.

<span class="mw-page-title-main">Google Chrome</span> Google tarafından geliştirilen bir web tarayıcısı

Google Chrome, Google tarafından geliştirilen ücretsiz bir web tarayıcısıdır. Eylül 2008'de Microsoft Windows sürümü yayımlanmış; daha sonra Linux, macOS, iOS ve Android sürümleri de geliştirilmiştir.

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

Adobe Flex, çapraz platform tabanlı zengin İnternet uygulamalarının Adobe Flash platformu üzerinde geliştirilmesi ve dağıtılması amacıyla Adobe Systems tarafından yayımlanan bir yazılım geliştirme kitidir. Flex uygulamaları, Adobe Flash Builder kullanılarak ya da Adobe'den ücretsiz olarak kullanılabilen Flex derleyicisi kullanılarak yazılabilir. İlk sürümü Mart 2004'te bir yazılım geliştirme kiti, bir IDE ve Flex Data Services olarak bilinen bir Java EE entegrasyon uygulaması Macromedia tarafından dahil edildi. 2005 yılında Adobe, Macromedia'yı elde ettiğinden beri, artık Flex'in daha sonraki sürümleri, Flex Data Services için bir lisans gerektiriyor, LiveCylce Data Services gibi yeniden markalanmış ayrı bir ürün haline geldi. Adobe tarafından 2007 yılında kod katkısıyla başlayan bir açık kaynak projesi olan BlazeDS, Adobe LiveCycle Data Services'a bir alternatiftir. Şubat 2008'de Adobe, özgür Mozilla Kamu Lisansı altında Flex 3 SDK'yı yayınladı ve böylece Flex uygulamaları, herhangi bir standart IDE kullanılarak geliştirilebilir, örneğin Eclipse. Ayrıca Adobe Flash Builder denilen ticarî ve tescilli bir IDE vardır.

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

WebGL, kâr amacı gütmeyen teknoloji şirketler birliği Khronos Group tarafından yönetilen, web ortamında 3 boyutlu grafik çizimi sağlanmasını amaçlayan bir web standardıdır. OpenGL ES 2.0 üzerine temellendirilmiştir, otomatik hafıza yönetimli JavaScript gibi dillere uyum sağlaması için küçük değişikliklere uğramış olsa da WebGL OpenGL ES'ten çok da farklı değildir. Uyumlu web tarayıcısında herhangi bir eklenti kurulmasını gerektirmeden, HTML5'in Canvas elementi üzerinde 3 boyutlu grafik çizimi yapılmasını mümkün kılmaktadır.

CoffeeScript kaynaktan kaynağa derleme yapan ve JavaScript kodu üreten bir geliştirme aracıdır. Sözdizimi Python ve Ruby dillerine benzer, kod blokları girintiler ile ayrılır, JavaScript'in satır sonlarında noktalı virgül kullanma gibi yazım kurallarını da içermez, bu nedenle okunması kolaydır. Kullandığı bazı sözcükler ve yapılar sayesinde JavaScript ile uzun yazılabilecek ve okunaksız hale gelecek kodları neredeyse 3/1 oranında kısaltabilir ve kolay okunabilme imkânı sunar. Derleme işlemi çalışma zamanında değil geliştirme aşamasında yapıldığından tarayıcılarda performans kaybı söz konusu değildir.

<span class="mw-page-title-main">Yazılım motoru</span> bilgisayar programının merkezi kısmı

Yazılım motoru, bilgisayar biliminde bir yazılımın altyapısı, temeli anlamına gelir. Yazılım motorları programı çalıştırabilmek için de kullanılmaktadır. Bu yazılımlar diğer programlardan farklıdır. Bir programın içerisinde çalışırlar veya bir bütün oluştururlar. Yazılım motorları bir tarayıcının içerisinde JavaScript motoru veya bir oyun motoru gibi çeşitli türlere sahiptirler. Web tarayıcısı içerisinde de JavaScript, AJAX gibi dillerde yazılmış eklentilerin çalışmasını sağlarlar.

<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.

ECMAScript veya ES, Ecma International tarafından ECMA-262 ve ISO/IEC 16262 notasyonuyla standartlaştırılmış ve markalaşmış bir betik dili spesifikasyonudur. Şu anda kendisini izleyen Javascript tabanlı olarak geliştirilmiştir. Yaygın olarak Dünya Çapında Ağ (www) için istemci taraflı betik dili olarak kullanılır. ECMAScript'in diğer uygulamaları JSCript ve ActionScript'tir.

AOT derlemesi C veya C++ gibi daha üst düzey bir programlama dili, Java bytecode veya .NET Framework Ortak Ara Dil kodu gibi bir ara temsilciliğin yerli bir makine diline derleme eylemidir. Sonuçta ortaya çıkan ikili dosya yerel olarak çalıştırılabilir.

<span class="mw-page-title-main">Deno</span> TypeScript and JavaScript Çalistirma Ortami

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.

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.

Chakra, Microsoft tarafından geliştirilen özel mülk bir JScript motorudur. Internet Explorer web tarayıcısında kullanılır.

<span class="mw-page-title-main">Carbon (programlama dili)</span>

Carbon, Google tarafından "C++ Ardıl Dili" olarak oluşturulmuş deneysel bir genel amaçlı programlama dilidir. İlk olarak 2022 yılının Temmuz ayında Carruth Chandler tarafından CppNorth konferansında halka sunuldu. Dil, C++'ın belirlenen çeşitli eksikliklerini düzeltmeyi amaçlar, ancak bunun dışında benzer bir özellik seti de sağlar. Hedeflerinden biri, mevcut C++ kodu ile beraber çift yönlü birlikte çalışabilirliktir. Dil, C++'ın kullandığı ISO sürecinin aksine GitHub üzerinde tasarlanacak ve geliştirilecektir. Dil, Apache Lisansı altında ücretsiz ve açık kaynaklı bir proje olarak geliştirilmiştir.

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.