Dart誕生於2011年10月10日,Dart是一種「結構化的web編程」語言,Dart雖然是谷歌開發的計算機編程語言,但後來被ECMA認定位標準,這門語言用於Web、服務端、移動應用和物聯網等領域的開發;html
編程語言有這麼多種類,Flutter爲何要選擇Dart做爲開發語言呢?這是由於Dart更符合構建用戶界面的方式;web
1.Dart是AOT(Ahead Of Time)編譯的,編譯快速,可預測的本地代碼,是Flutter幾乎均可以使用Dart編寫,這不只使Flutter變得更快,並且幾乎全部的組件均可以定製;算法
2.Dart也能夠JIT(Just In Time)編譯,開發週期異常快,工做流顛覆常規(包括Flutter的熱重載);編程
3.Dart能夠更輕鬆的建立以60fps運行的流暢動畫和轉場,Dart能夠在沒有鎖的狀況下進行對象分配和垃圾回收,就像JavaScript同樣,Dart避免了搶佔式調度和共享內存(所以不須要鎖),因爲Flutter應用程序被編譯爲本地代碼,所以不須要在領域之間創建緩慢的橋樑,它的啓動速度也快的多;異步
4.Dart使Flutter不須要單獨的聲明式佈局語言,或單獨的可視化界面構建器,由於Dart的聲明式編程佈局易於閱讀和可視化,全部的佈局使用一種語言,彙集在一處,Flutter很容易提供高級工具,使佈局更簡單;async
1.全部的東西都是對象,不管是變量、數字、函數等都是對象。全部的對象都是類的實例。全部的對象都繼承自內置的Object類,這點相似於Java語言「一切皆爲對象」;編程語言
2.程序中制定數據類型使得程序合理地分配內存空間,並幫助編譯器進行語法檢查,可是,指定類型不是必須的,Dart語言是弱數據類型;svg
3.Dart代碼在運行前解析,指定數據類型和編譯時的常量,能夠提升運行速度;異步編程
4.Dart程序有統一的程序入口:main();函數
5.Dart沒有public、protected和private的概念,私有特性經過變量或函數加上下劃線來表示;
6.Dart支持anync/await異步處理;
7.Dart語言經常使用庫:
dart:async 異步編程支持,提供Future和Stream類;
dart:collection 對dart:core提供更多的集合支持;
dart:convert 不一樣類型(JSON,UTF-8)間的字符編碼、解碼支持;
dart:core Dart語言內建的類型、對象以及dart語言核心的功能;
dart:html 網頁開發用到的庫;
dart:io 文件讀寫I/O相關操做的庫;
dart:math 數字常量及函數,提供隨機數算法;
dart:svg 事件和動畫的矢量圖象支持;
其中以下三個開發庫的使用頻率最高:
dart:core 核心庫,包括strings、numbers、collections、errors、dates、URIs等;
dart:html 網頁開發裏DOM相關的一些庫;
dart:io I/O命令行使用的I/O庫;
注:dart:core庫是Dart語言初始化已經包含的庫,其餘的任何庫在使用前都須要加上import語句。列如使用dart:html可使用以下的命令:import ‘dart:html’