Dart overView

原文鏈接:Dart overView

Dart是一種為任何平臺開發(fā)快速應用的客戶端優(yōu)化語言。它的目標是為多平臺開發(fā)提供最搞笑的語言,并為應用程序框架提供靈活的執(zhí)行運行時平臺。

Dart是類型安全的語言。

Dart為日常編程提供了豐富的核心庫:

  • dart:core - 內置類型、集合和其他核心功能
  • dart:collection - 更豐富的集合類型,如隊列(queue)、鏈表(links lists)、hashmap和二叉樹(binary trees)
  • dart:convert - 在不同數(shù)據(jù)類型之間轉化的編解碼,包括JSON和UTF-8
  • dart:math - 數(shù)學常量及函數(shù),還有隨機數(shù)的生成
  • dart:io - 對非Web應用程序的File、socket、HTTP和其他I/O的支持
  • dart:async - 支持異步編程(asynchronous programming),Future和Stream類
  • dart:typed_data - 有效處理固定大小數(shù)據(jù)(例如無符號8字節(jié)整數(shù)unsigned 8-byte integers)和SIMD(Single Instruction Multiple Data單指令多數(shù)據(jù)流)數(shù)字類型的列表
  • dart:ffi - 外部函數(shù)接口(Foreign function interfaces),用于與提供C風格接口的其他代碼的互操作性
  • dart:isolate - 使用isolates并發(fā)編程 - 類似于線程獨立工作,但是不共享內存,僅通過消息進行通信
  • dart:html - 需要與瀏覽器和文檔對象模型(DOM)交互的基于web的應用程序的HTML元素和其他資源

除了核心庫之外,Dart團隊還提供了很多有用的包,比如:

  • characters
  • intl
  • http
  • crypto
  • markdown

除此之外,第三方發(fā)布者和更廣泛的社區(qū)發(fā)布了數(shù)千個包,比如:

  • XML
  • Windows integration
  • SQLite
  • compression

要查看更多Dart核心庫的代碼示例,可以查看library tour。要找更多的APIs,可以查看commonly used packages page。

Dart的編譯器可以讓你以不同的方式運行代碼:

  • Native platform - 對于以移動和桌面設備應用程序,Dart包含 just-in-time(JIT)編譯和ahead-of-time(AOT)用于生成機器代碼的Dart VM.
  • Web platform - 對于面向Web的應用程序, Dart包含開發(fā)環(huán)境的dartdevc編譯器和生產(chǎn)環(huán)境的編譯的dart2js編譯器,這兩個編譯器都將Dart翻譯成JavaScript
Dart編譯器.png

Flutter框架是一個流行的、多平臺的UI工具包,它由Dart平臺提供支持,并提供了工具和UI庫來構建在iOS、Android、macOS、Windows、Linux和web上運行的UI體驗。

Dart Native(JIT和AOT)

在開發(fā)過程中,快速的開發(fā)周期對于迭代是至關重要的。Dart VM提供了即時編譯器(JIT),具有增量式重新編譯(啟用熱加載)、實時度量集合(支持DevTools)和豐富的調試支持。

當應用程序準備部署到生產(chǎn)環(huán)境中時——無論是發(fā)布到應用商店還是部署到生產(chǎn)后端——Dart AOT編譯器可以提前編譯成本地ARM或x64機器碼。AOT編譯使應用程序啟動一致,使用更短的啟動時間。

AOT編譯的代碼運行在一個有效的Dart運行時中,該運行時強制使用Dart類型系統(tǒng),并使用快速對象分配和 分代垃圾收集器(generational garbage collector)管理內存。

更多信息可以查看

Dart Web (JavaScript dev & prod)
Dart Web可以讓Dart代碼運行在JS驅動的Web平臺。使用Dart Web,可以將Dart代碼編譯成JavaScript代碼,然后在瀏覽器中運行,例如,Chrome中的V8。

Dart web可以在開發(fā)迭代中使用增量開發(fā)編譯器,和優(yōu)化生產(chǎn)編譯器dart2js,使用比如說死碼刪除技術(Dead code elimination是一種編譯器原理中編譯最優(yōu)化技術,它的用途是移除對程序運行結果沒有任何影響的代碼)使得Dart代碼編譯成更加快速、緊湊、可部署的JavaScript。

更多信息可以查看:

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容