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.
![]() | |
Paradigması | Çoklu paradigma: betikleme, nesne yönelimli, fonksiyonel, emirsel (imperative), |
---|---|
İlk çıkışı | 10 Ekim 2011 | )
Tasarımcı | Lars Bak ve Kasper Lund |
Geliştirici | |
Kararlı sürüm | 3.2.6 (24 Ocak 2024 | ) )
Dart VM, dart2js ve Fletch | |
Etkilendikleri | JavaScript, Smalltalk, Erlang, ve C# |
Platformu | Çapraz Platform |
İşletim sistemi | Windows, Mac OS X, Linux |
Lisans | |
Olağan dosya uzantıları | .dart |
Web sitesi | dart.dev |
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 ..
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ü '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
- 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
Dart ilk kez Google tarafindan gelistirilen ve daha sonralari ECMA tarafindan standart ECMA 408 haline getirilen acik kaynakli ve genel amacli bir programlama dilidir Dart dili kullanilarak web sunucu mobil uygulamalar ve IoT cihazlari gelistirilebilir DartParadigmasiCoklu paradigma betikleme nesne yonelimli fonksiyonel emirsel imperative Ilk cikisi10 Ekim 2011 12 yil once 2011 10 10 TasarimciLars Bak ve Kasper LundGelistiriciGoogleKararli surum3 2 6 24 Ocak 2024 5 ay once 2024 01 24 Dart VM dart2js ve FletchEtkilendikleriJavaScript Smalltalk Erlang ve C PlatformuCapraz PlatformIsletim sistemiWindows Mac OS X LinuxLisansOlagan dosya uzantilari dartWeb sitesidart dev Dart dili sinif temelli tekil kalitimli C tarzinda bir kod dizilimine sahiptir ve JavaScript diline veya calistigi sistemdeki ozgun native dile cevrilebilir Interface leri single inheritance i mixin leri soyut siniflari generic leri ve opsiyonel tipleri dynamic destekler TarihceDart ilk kez Danimarka nin Aarhus sehrinde 2011 yilinin Ekim ayinin 10 12 gunlerinde duzenlenen GOTO etkinligi kapsaminda tanitildi Dart projesi Lars Bak ve Kasper Lund tarafindan kuruldu Standartlasma Ecma International Dart in standartlastirilmasini saglamak ve JavaScript olarak derlenebildigi icin modern tarayicilarda uzerinde efektif bir sekilde calismasinin gerceklestirilmesi adina TC52 adinda teknik komisyonu kurdu Dart dilinin ilk spesifikasyonu 2014 yilinin Temmuz ayinda Ecma International in 107 Genel Kongre sinde kabul edildi O zamandan beri 2 beyannamesi de kabul gormus durumdadir Kullanim turleriDart kodu 3 farkli sekilde kullanilabilir JavaScript olarak derleme Dart kodunun yaygin internet tarayicilarinda calisabilmesi icin JavaScript e koddan koda derlenmesi gerekmektedir Resmi sitesinde yer alan bilgiye gore Dart Modern uygulama gelistirimi ve yuksek performansli programlar yazmak adina kolayca gelistirim araclari yazmak icin tasarlanmistir Dart kodu web tarayicisinda calisacagi zaman dart2js derleyicisi ile Javascript e derleme yapilir JavaScript olarak derlenmis Dart kodu butun modern tarayicilarda hicbir degisiklik gerektirmeksizin uyumlu hale gelir Derlenmis Javascript kodunun gereksiz kontrol ifadelerinden ve islemlerinden arindirilmis bir sekilde optimize olmasi sebebiyle Dart ile yazilan kod bazi durumlarda esdeger olarak elle yazilan Javascript kodundan daha performansli olabilir Dartium Tarayicisi nda Dart SDK si Dart VM sanal makine iceren Chromium web tarayicisi ile birlikte gelir Bu tarayiciyi diger tarayicilardan ayiran fark ise Dart kodunu JavaScript e derlemeksizin calistirabilir olmasidir Bu tarayici genel amacli degildir ve Dart uygulamalari icin bir gelistirim araci olarak kullanilir Onceden de Chrome icerisine tumlesik olarak bu tarayicinin getirilmesi amaclandi fakat daha sonra iptal edildi Platform bagimsizdir Dart SDK si ayrica dart kodunun komut satirinda calistiirlabilmesini saglayan ve platformdan bagimsiz olan Dart VM ile gelir Dart SDK sine dahil olan Dart VM ve dart ile yazilan dil araclari SDK nin kritik bir bolumunu olusturur Bu dil araclari yalnizca dart2js derleyicisini icermekle kalmaz ayrica pub adinda paket yoneticisini de icerir Dart ozellestirilmis web sunuculari gibi tam fonksiyonel sistem uygulamalarinin yazilmasi icin standart kutuphanesi ile birlikte gelir Calisma turleriDart uygulamalari iki turden birinde calisir On tanimli olmayan ve aktif hale getirilerek kullanilan kontrollu mod da dinamik olarak tur kontrolleri yapilir Kontrollu modda eger statik turler varsa ve tur uyusmazligina dair bir durum oldugunda bu hatalarin yakalanmasi saglanir Ornegin eger bir metot String donecek sekilde yazilmissa ve tam sayi dondurmeye calisiyorsa dinamik tur belirtimi bu hatayi yakalar ve exception olarak firlatir Kontrollu modda calisma uygulama gelistirimi ve test asamasi icin tavsiye edilen yontemdir Dart programlari dinamik tur kontrollerinin varsayilan olarak kapali oldugu uretim modu nda gelir Bu modun varsayilan olmasinin sebebi Dart programinin en hizli sekilde calistirilabilmesi icindir Isolate lerEs zamanli calismak icin Dart birbirinden bagimsiz ve bellek paylasimi olmayan bunun yerine mesajlarla birbirleriyle haberlesen isci bilesenler olan isolate leri kullanir Bu durum Erlang dilindeki aktorler ile benzerlik gosterir Her dart programi en azindan bir isolate e ihtiyac duyar ki bu main isolate dir Dart kodu JavaScript olarak derlendiginde isolate ler Web Worker lara donusturulur Snapshot larSnapshot lar Dart VM in cekirdegini olusturur Aslinda her bir snapshot nesneleri ve diger calisma zamani verilerini tutan tipik bir dosyadir Betik snapshot lari Dart programlari snapshot dosyalari olarak derlenebilirler Bu dosyalar program kodunun tumunu icerir ve bagimli oldugu bilesenler de onceden ayristirilmis halde gelir ve calismak icin hazirdirlar Bu sayede programlarin baslamasi oldukca hizlidir Tam snapshot lar Dart in cekirdek kutuphaneleri programlarin cok hizli acilmasi icin snapshot dosyalari olarak derlenebilir Dart VM in bircok standart dagitiminda calisma zamaninda yuklenen ana kutuphaneler onceden derlenmis snopshot lar halinde bulunur Nesne snapshot lari Dart oldukca asenkron bir dildir Bunun icin es zamanli calismayi saglayan isolate leri kullanir Bu iscilerin mesajlari birbirine aktarabilmeleri icin mesaji oncelikle uygun hale getirmeleri serialization gerekmektedir Bu islem gonderilecek nesnenin verilmesiyle olusturulan ve daha sonra deserialization yapilmasi icin diger isolate e gonderilen snapshot kullanarak gerceklestirilir Native mobil uygulamalarDart es zamanli calisma icin farkli modeller sunan Fletch adindaki sanal makineye sahiptir Bununla birlikte herhangi bir uygulamada Dart kodunun gomulebilmesi icin basit bir API sunar Google Dart in tum kisimlarinin Android ve iOS uzerinde native mobil uygulama gelistirimi yapilabilmesi icin Flutter uzerinde ugrasmaktadir 30 Kasim 2015 tarihinde Wayback Machine sitesinde JavaScript e derlemedart2js mevcut Dart kodundan JavaScript koduna derlemeyi saglayan 2015 yilinda Google in urettigi ve Dart dili ile yazilan bir derleyicidir dart2js Dart dilinin tum spesifikasyonlarini ve semantigini icermek uzere gelistirilmistir Onceki derleyicilerin evrimi niteligindedir dartc Dart kodundan Javascript koduna derlemeyi amaclayan ilk derleyicidir fakat artik kullanilmamaktadir Frog ise bu alandaki ikinci Dart tan JavaScript e cevirim yapan derleyicidir ve Dart ile yazilmistir Frog hicbir zaman dilin tum spesifikasyonlarini uygulayamamistir ve dart2js in cikisina on ayak olmustur 2013 yilinin 28 Mart inda Dart ekibi blog unda Dart kodunun JavaScript e donusturulmesini saglayan dart2js derleyicisini paylasmislardir ve Chrome un V8 JavaScript motorunda Deltablue benchmark testlerinin yurutulmesi sonucu elle yazilan JavaScript kodundan daha hizli oldugunu dile getirmislerdir Editorler2011 in 18 Kasim inda Google acik kaynakli Eclipse bilesenlerinden olusan ve Mac OS X Windows ve Linux temelli isletim sistemlerinde calisabilen Dart Editor u yayimladi Editor kullanilarak syntax isaretleme otomatik kod tamamlama JavaScript kodu tamamlama web ve sunucu Dart uygulamalari ve hata ayiklama gerceklestirilebilmektedir 2012 nin 13 Agustos unda Google Dart gelistirimi icin bir Eclipse eklentisi yayimladi 2015 in 18 Nisan inda Google JetBrains IDE lerine destek vermek icin Dart Editor un kullanimdan kaldirilacagini duyurdu Dart dili icin onerilen editor JetBrains IDE leridir Dart eklentisi IntelliJ IDEA PyCharm PhpStorm ve Webstorm icin sunulmaktadir Bu eklenti ile syntax highlighting otomatik kod tamamlama analiz yapma refactoring hata ayiklama ve daha fazlasi mevcuttur Sublime Text ve Atom gibi derleyicileri icin de ayrica eklentiler mevcuttur Chrome Dev Editor 2013 yilinin kasim ayindan beri Chrome ekibinin uzerinde calistigi acik kaynakli Chrome uygulamasi temelli ve tekrar kullanilabilen arayuz bilesenlerini barindiran zengin bir kutuphaneye sahip gelistirim ortami Spark kod adiyla ortaya cikmis ve daha sonralari Chrome Dev Editor olarak isim degistirmistir Dart dilinde yazilmistir ve Polymer ile guclendirilen Spark i icerir Gelistirici onizleme surumu da mevcuttur DartPad Dart ekibi 2015 in baslarinda herkesin Dart ile akici bir baslangic gerceklestirebilmesi icin DartPad adli editoru olusturdu Tamamen cevrimici bir editor olmasinin yani sira Dart API ler uzerinde deneyler yapabilir ve Dart kodu calistirilabilir Syntax highlighting kod analizi otomatik kod tamamlama dokumanlama ve HTML ile CSS te kullanarak web sayfalari olusturma gibi ozellikler sunar SIMD komut kumesi2013 te John McCutchan Dart programlama dili icin Google in deneysel Dartium tarayicisini calistiran kullanicilarina ilk kez SIMD tekil komut coklu veri nin yararlarinin web programlarinda kullanilmasina yonelik performansli bir arayuz olusturdu Arayuz asagidaki iki turu icermektedir Float32 4 4 tekil hassasiyetli kayan noktali degerler Uint32 4 4 32 bit isaretsiz tam sayi degerleri Bu turler sabittir ve optimize edilmis kodda direkt olarak SIMD register larina eslestirilirler Dart dilindeki islemler ek yuk olusturulmamasi icin tipik olarak tekli komutlardan olusurlar Bu durum C ve C dilleri ile benzerlik gosterir 4 4 matris carpimi 3D vertex donusumleri ve Mandelbrot kumesi animasyonlari icin benchmark testleri Dart ta yazilan sayisal koda kiyasla neredeyse 400 hiz artsi gosterir OrnekBir Merhaba Dunya uygulamasi ornegi void main print Merhaba Dunya Basit operator islemleri void main print 5 7 print 5 7 print 5 7 print 5 7 n Fibonacci sayisinin hesaplanmasini saglayan fonksiyon int fib int n gt n gt 2 fib n 1 fib n 2 1 void main print fib 20 fib 20 Basit bir sinif ornegi Kok alma fonksiyonu olan sqrt ye erisim icin matematik kutuphanesinin math eklenmesi import dart math as math Nokta sinifinin olusturulmasi class Nokta Final tipli degiskenler bir kez atandiktan sonra bir daha degistirilemezler X ve Y koordinat degiskenleri final num x y Olusturulacak nesnenin degiskenlerinin atanmasi icin constructor yapici fonksiyonu Nokta this x this y Orijin de bir nokta olusturmak icin yazilan orijin ismine sahip bir constructor fonksiyonu Nokta orijin x 0 y 0 Iki nokta arasi uzaklik hesaplama metodu num uzaklikHesapla Nokta digerNokta var dx x digerNokta x var dy y digerNokta y return math sqrt dx dx dy dy operatorunun asiri yuklenmesi Nokta operator Nokta digerNokta gt new Nokta x digerNokta x y digerNokta y Tum Dart programlari main fonksiyonu ile baslar void main Nokta nesnelerinin olusturulmasi var n1 new Nokta 10 10 var n2 new Nokta orijin var uzaklik n1 uzaklikHesapla n2 print uzaklik Diger diller ile benzerliklerDart dili C C Java JavaScript ve diger diller gibi ALGOL dil ailesinin bir uyesidir Ayni nesne uzerinde art arda bircok metot cagirmak icin kolaylik saglayan metot caglayani tarzindaki kod dizilimi Smalltalk dili uzerinden benimsenmistir Dart in mixin leri Strongtalk ve Ruby ile benzerlik gosterir Dart uygulama gelistiriminde es zamanlilik ve guvenlik birimi icin isolate leri kullanir Isolate konsepti Erlang dilinde oldukca yaygin kullanilan Actor modeli temellidir Kontrollu ve guvenli reflection icin ilk kez Gilad Bracha Dart ekibi uyesidir ve David Ungar tarafindan makale halinde sunulan Mirror API aslinda orijinal olarak Self dilinde implement edilmistir DegerlendirmeDart dili baslangicta bazi cevreler tarafindan web programlamanin parca parca hale getirilmesi ve karisikliga yol actigina degerlendirilmistir Bu degerlendirmenin buyuk bir kismi aslinda ilk zamanlarda DartVM in Chrome icerisinde calistirilmasi planlandigindan kaynaklanmaktadir Fakat bu planlar iptal olmus ve JavaScript olarak derleme uzerine yogunlasilmistir Ayrica bakinizCoffeeScript Opa FlutterDis baglantilarResmi site