寫在最前面(時間緊的朋友看第一段即可)
Dart語言將是您必須掌握的一門語言,因為他將是成為統一前端與后端的全棧語言。各位程序員朋友可要小心了,現在三個崗位的工作,未來可能只需要一個人了。
一、該不該學習Dart語言?
如果你在2018年問這個問題,收到答案肯定是不應該學,因為2018年Dart被評為了最不應該學習語言的榜首。如果您在2019年,我建議學習Dart,因為Dart被評為2019年開發者最希望學習的榜首。
2018 和2019為何出現如此截然相反的態度呢,原因很簡單其親爹谷歌已經將其冊封為太子,而且還為其娶了一個叫Flutter的太子妃,未來新一代操作系統fuchsia將以Dart為主力語言。而且谷歌最賺錢的Adwords廣告業務已經采用Dart進行開發。站在巨人肩膀上的Dart肯定能夠成為未來的主流語言。
二、Dart使命是什么?
我們通過Dart語言的成長歷史,來發掘一下Dart的歷史使命
1. Dart語言的誕生
2011年10月10日,Google 發布了Dart語言,文章的標題為《Dart: A language for structured web programming》(Dart:結構化的Web編程語言)。下面是Dart語言的設計目標:
為web開發創建一個結構化并且靈活的語言
Dart讓開發者感覺親切友好并且容易學習
確保Dart語言在所有新型瀏覽器和服務器上都保持更高的執行性能,并且能夠在支持從智能手持設備到服務端開發工作。
Dart具有非常廣泛的應用場景,其即支持一個人簡單的項目還支持大型項目的開發工作。Dart團隊認為該語言將成為開發大型Web的偉大語言。
https://blog.chromium.org/2011/10/dart-language-for-structured.html
從上面介紹我們可以看出,Dart語言是一個開發web應用的語言,其主要是為了創建大型web應用而發明的。
2. 第一個正式穩定的版本
2013年11月14日,谷歌發布Dart 1.0版本,其標題為《Dart 1.0: A stable SDK for structured web apps》(Dart 1.0:一個穩定的web應用結構開發SDK)
Dart 1.0版本發布,不但推出了Dart語言1.0版本而且還推出了相關開源工具箱和配套的編輯器。還介紹了已經有Blossom, Montage, Soundtrap, Mandrill, 谷歌內部 CRM 應用 and Google Elections等應用使用Dart進行了開發。
https://news.dartlang.org/2013/11/dart-10-stable-sdk-for-structured-web.html
3. Dart 2.0 重生的版本
2018年8月8日,谷歌發布Dart2.0版本,其標題為《Announcing Dart 2 Stable and the Dart Web Platform》(Dart2 穩定版本和Dart Web平臺發布)
此次更新,可謂是讓Dart浴火重生。從13至18年,Dart不問不火,特別是其運行效率成為了被人詬病的槽點。2018年谷歌對Dart進行全新改版,從底層重構了Dart語言,加入了很多面向未來的新特別,語言性能大幅提供。此次發布谷歌不僅發布了Dart 2.0穩定版,而且還重寫了Dart web platform。新版的web platform 提供了一套高性能、可擴展的生產力工具。
Dart 2 終點聚焦下面三個方面:功能不斷加強和越來越嚴謹的語言;同時支持web和移動客戶端開發;豐富工具箱和組件,全面融合谷歌全家桶。
https://medium.com/dartlang/dart-2-stable-and-the-dart-web-platform-3775d5f8eac7
4. Flutter 發布
2018年12月4日,谷歌發布Flutter 1.0版本,其標題為《Flutter 1.0: Google’s Portable UI Toolkit》(Flutter 1.0:谷歌的可移植UI工具箱)
Flutter是谷歌開源的移動應用開發SDK,使用Flutter 可以直接開發Android和iOS應用。其最大的特點就是一套代碼多平臺運行、高性能和Hot Reload(熱重載)。谷歌即將發布Fuchsia系統就以Flutter為主要開發框架。Flutter采用Dart作為其底層語言。Dart也由于Flutter美好未來而得到眾多開發者的青睞。
https://developers.googleblog.com/2018/12/flutter-10-googles-portable-ui-toolkit.html
三、關于Dart的傳說
關于Dart傳說有多種,一種為Dart是未來的Javascript,另外一種是Dart未來的Java。
1. 未來的Javascript
引自 《Dart in Action》 第18頁
2011年9月,網絡上出現了一封標題為“未來的JavaScript”的谷歌內部電子郵件,郵件中表明由于Javascript語言發展緩慢,因此谷歌打算設計一個更好的web開發語言。這種新語言旨在成為下一代的JavaScript。它的主要目標是“保持JavaScript的動態特性,但具有更好的性能配置文件,并且適合大型項目的工具。”它還能夠交叉編譯為JavaScript。這種語言作為技術預覽發布給更廣泛的世界,并命名為Dart。
JavaScript可謂是前端開發的王者,然而其在面向對象方面的薄弱讓無數人詬病。由于其設計之初的缺陷,開發者社區一種呼吁進行修改,因此谷歌推出了一門新的開發語言來取代Javascript。另外Dart語言設計者Lars Bak也是V8 JavaScript engine開發者,可見Dart與Javascript傳言不假。
2. 未來的Java
Java是Sun公司的偉大發明,不過很可惜Sun后來被Oracle收購后,Java是否收費問題影響了其發展。作為Sun公司的同名師兄弟Google成為了Java發展的幕后英雄,Android系統的推出讓Java再次煥發了青春。不過進入2018年后,Oracle開始在Java授權方面蠢蠢欲動,Google也因此下定決心設計一個新的面向對象語言(下一代Java)。另外Dart 語言設計者Lars Bak 就是jvm發明者,從此點可以看出Dart肯定是有Java的基因。
3. Javascript 和 Java的傳說
Java 和 Javascript從名稱上看肯定是有一定淵源,翻看Javascript歷史可以發現Javascript和Java的關系果真不簡單。
1995年在網景公司工作的Brendan Eich在設計一款在瀏覽器上運行的編程語言,某位高級主管要求他該語言要遵守Java的語法規范,Brendan Eich不得不接受這個要求,他用了10天就完成新語言的設計工作。
寫在最后
因此融合“Javascript 傳說”和“Java傳傳說”,我們發現一個秘密,Dart 未來不僅僅是Java或者Javascript,其野心可能是要統一前后端開發,成為一個真正的全棧語言。各位程序員朋友可要小心了,現在三個崗位的工作,未來可能只需要一個人了。