Google Dart - Google Dart介紹

前些日子因為要趕案子無法在更新蓋步的文章,今天總算隔了這麼久,限量的蓋步又開新章了,這次的主題是剛好限量要寫的技術文章主題-Google Dart,Google Dart是Google在2011年公開的物件導向網頁程式語言,其目的是要提供除了JavaScript之外的其他前端網頁程式語言選擇。本篇文章限量就來簡單說明Dart出現的目的與他的一些特色。



在看Dart之前先來看看與之比較的JavaScript。

JavaScript

JavaScript是Netscape在1995年公開的前端直譯式Script語言,現在已普遍用於HTML網頁上。市面上的瀏覽器幾乎都支援JavaScript,所以JavaScript可跨平台瀏覽器執行。在現在SPA(Single Page Application)盛行的潮流下,主打一個頁面就能完成多功能的操作與顯示,這使得JavaScript幾乎已是不可或缺的要件之一。然而隨著高階程式語言的不斷推出,程式設計師的設計習慣也不斷改變,習慣於OO Programming的程式設計師們就開始不習慣JavaScript的撰寫方式,此外,JavaScript還有一些詬病一直是被拿出來探討的議題。以下是JavaScript的一些缺點:


  • 缺乏物件導向設計概念
  • 可容忍一些資料型別轉化的Exception發生
  • 開發大型且複雜的網頁應用程式時效能不佳
  • ...等

Dart

Google DartGoogle所提出的新一代網頁語言,由Google Chrome V8引擎團隊開發,主要目的有兩個,第一個目的為加速瀏覽器VM的執行效能,V8團隊在過去Chrome的經驗發現結構化的程式語言與簡潔的VM能夠提高瀏覽器的執行效率,故開發了Dart Web程式語言與Dart VM提高瀏覽器執行效能。Dart第二個目的為提供開發人員更加方便的開發環境。撰寫Dart時不僅可以使用簡單快速的使用Google提供的Library,也能將自己所撰寫的Library開放出去,提供其他開發人員或其他專案使用,大幅發揮Code Reuse的精神,另外,Dart有提供專門的開發工具,使用此開發工具可以更簡單的進行重構與Debug,比起JavaScript沒有專門的開發工具,相較起來方便多了。

Dart最特別的也最大的亮點就是可跨平台開發,這裡的跨平台開發指的是你可以使用Dart語言來開發各種平台的應用程式,例如:網頁伺服器、網頁應用程式、手持裝置應用程式、Command-Line應用程式。Command-Line應用程式主要是用來設計網頁伺服器,就如NodeJS一樣,Dart是個可獨自在ClientServer上執行的Script語言。

Dart網頁應用程式範例

下面是用Dart取代JavaScript實作的網頁應用程式,這個網頁功能是動態的加入備忘欄並即時顯示在畫面上,備忘欄需要輸入名稱與內容,輸出則會有名稱, 內容與建立時間。

mydartwebtest.html:

mydartwebtest.dart:


在還沒進入Dart的語言規格介紹之前,先以OO的角度來看這段Dart Code,會發現比較好理解。在程式撰寫上也比較精簡,這就是使用Dart物件導向的特性。下面為該Dart Code的執行結果:


總結

經過Google這幾年來的推廣,加上Google自家MVVM技術AngularDart的加持,Dart在大眾間的普及率愈來愈高,ECMAScript標準也在2014年正式納入Dart(ECMA-408),這對Dart的肯定又往前跨了一大步。儘管Dart普遍性提高,瀏覽器的支援程度畢竟一直是個問題,目前Internet ExploreFireFoxSafari…等知名瀏覽器並不打算將DartVM裝載至自家的瀏覽器內。雖然Dart有提供將Dart Code轉為JavaScript的方法,但無法在DartVM上執行就無法完全發揮Dart的效果,這真是唯一的遺珠之憾。

最後,以下是2012 Google I/O大會上發表的Google Dart介紹影片:
(請耐心看完,會有意想不到的收穫)




參考來源:

End-to-end productivity with Dart
Dart 語言中文站




留言