Dart
Kısaca
Dart, Google'ın yerel koda ve JavaScript'e derlenen, statik tipli ve çöp toplamalı dilidir; en çok Flutter uygulamalarının dili olarak bilinir.
Dart nedir?
Dart, Google tarafından geliştirilen ve ilk kez 2011'de yayımlanan, genel amaçlı ve nesne yönelimli bir programlama dilidir. Başlangıçta tarayıcıda JavaScript'e alternatif olarak sunulmuştu; ancak bugün en çok, tek bir kod tabanından mobil, web, masaüstü ve gömülü uygulamalar geliştirmeye yarayan açık kaynaklı bir araç seti olan Flutter'ın arkasındaki dil olarak bilinir. 2023'te yayımlanan Dart 3, sağlam (sound) null güvenliğini zorunlu kıldı ve kayıtlar (records) ile örüntü eşleme ekledi.
Dart, tip çıkarımı olan statik tiplidir ve null güvenliği sağlamdır; yani String tipindeki bir değişken asla null tutamaz, yalnızca String? tutabilir. Dilin iki derleme modu vardır. Geliştirme sırasında tam zamanında (JIT) derleyici, çalışan bir uygulamayı durumunu kaybetmeden neredeyse anında güncelleyen hot reload'u mümkün kılar; sürüm derlemelerinde ise önceden (AOT) derleyici hızlı yerel makine kodu, web için de JavaScript veya WebAssembly üretir. Eşzamansız kod Future, Stream ve async/await kullanır; eşzamanlılık ise bellek paylaşmayan iş parçacıkları gibi çalışan isolate'larla sağlanır.
Dart esas olarak Flutter ile platformlar arası kullanıcı arayüzlerinde, ayrıca komut satırı araçlarında ve bazı sunucu tarafı kodlarında kullanılır. C tarzı sözdizimi, sınıfları ve süslü parantezleri Java, C# veya JavaScript bilen herkese tanıdık gelir; bu yüzden genellikle hızla öğrenilir.
Dart sıklıkla TypeScript ile kıyaslanır, çünkü ikisi de JavaScript benzeri bir programlama tarzına statik tipler ekler. TypeScript, JavaScript'in üzerine eklenen tipli bir katmandır ve her zaman JavaScript'e derlenir; Dart ise kendi çalışma ortamı ve kütüphaneleri olan, JavaScript'in yanı sıra yerel koda da derlenebilen bağımsız bir dildir. Dart'ın tipleri ayrıca program çalışırken de zorlanır; TypeScript'in tipleri ise derlemeden sonra silinir.
Önemli noktalar
- Dart, sağlam null güvenliğine sahip, nesne yönelimli ve statik tipli bir dildir.
- Yerel koda önceden derlenir; web için JavaScript veya WebAssembly'ye derlenir.
- Geliştirme sırasındaki JIT derleme, hızlı hot reload sağlar.
- En çok Flutter arayüz araç setinin dili olarak bilinir.
- Isolate'lar, bellek paylaşmadan eşzamanlılık sağlar.
Örnek
class User {
final String name;
final String? email; // the ? means this may be null
User(this.name, [this.email]);
}
Future<void> main() async {
final users = [User('Ada', 'ada@example.com'), User('Grace')];
for (final user in users) {
await Future.delayed(const Duration(milliseconds: 100));
print('${user.name}: ${user.email ?? "no email"}');
}
}Sık sorulan sorular
Dart yalnızca Flutter için mi kullanılır?
Flutter açık ara en büyük kullanım alanıdır, ancak Dart ayrıca komut satırı araçlarını, sunucu uygulamalarını ve JavaScript ya da WebAssembly'ye derlenen web uygulamalarını da çalıştırır.
Dart, JavaScript'e benzer mi?
Sözdizimi JavaScript geliştiricilerine tanıdık gelir, ancak Dart sağlam null güvenliğine sahip statik tipli bir dildir ve kendi çalışma ortamı ile standart kütüphanesi vardır. JavaScript'e derlenebilir, ama ayrı bir dildir.
Dart derlenen bir dil mi, yorumlanan bir dil mi?
Dart her iki aşamada da derlenir. Geliştirme sırasında hot reload'u desteklemek için tam zamanında bir derleyici, üretim derlemeleri için ise yerel makine koduna ya da JavaScript'e önceden derleme kullanır.
İlgili sayfalar
- TypeScriptWeb Geliştirme, s. 51TypeScript, JavaScript üzerine statik tipler ekleyerek birçok hatayı kod çalışmadan yakalayan ve düz JavaScript'e derlenen bir programlama dilidir.
- JavaScriptWeb Geliştirme, s. 25JavaScript, web tarayıcılarında sayfaları etkileşimli hale getiren ve Node.js gibi çalışma ortamlarıyla sunucularda da çalışan programlama dilidir.
- KotlinProgramlama Dilleri, s. 18Kotlin, JVM üzerinde çalışan, Java ile sorunsuz uyum sağlayan, özlü ve statik tipli bir dildir; Android ve sunucu tarafı geliştirmede yaygın kullanılır.
- SwiftProgramlama Dilleri, s. 31Swift, güvenlik ve hız için tasarlanmış, derlenen ve statik tipli bir dildir; çoğunlukla Apple platformları için uygulama geliştirmede kullanılır.
- Çöp toplamaProgramlamanın Temelleri, s. 9Çöp toplama, dil çalışma zamanının programın artık kullanamadığı verileri bulup bu belleği yeniden kullanıma açtığı otomatik bellek yönetimidir.
- Async/AwaitProgramlamanın Temelleri, s. 2Async/await, asenkron kodu sıradan adım adım kod gibi okunur biçimde yazmayı sağlayan, her await'te bir promise ya da görev bitene dek duran sözdizimidir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin