Dart 語言要崛起?谷歌官宣下一代作業系統 UI 編寫只支持 Dart

2020-12-23 InfoQ技術實驗室

Fuchsia 技術選型,Dart 笑到最後

Android 和 Chrome OS 可能是谷歌最知名的 OS 項目,但實際上這兩年曝光量逐漸增大的是谷歌正在開發的第三個作業系統——Fuchsia。Fuchsia 是一個開源項目,類似於 AOSP(Android 開放原始碼項目),但 Fuchsia 可以運行各種設備,從智能家居設備到筆記本電腦和手機等等。它也被認為是建立在一個谷歌構建的名為「zircon」的全新內核之上,而不是構成 Android 和 Chrome 作業系統基礎的 Linux 內核。

近日谷歌 Fuchsia 網站上更新了一則「Fuchsia Programming Language Policy」的文檔,詳細解釋了 Fuchsia 項目在程式語言方面的選型考慮。據官方文檔披露,C/C++、Dart、Rust、Go 語言都是 Fuchsia 開發的候選語言,除了老牌程式語言 C 和 C++ 的江湖地位穩固得到了官方開發人員的認可以外,新興程式語言中,Dart 擊敗了 Rust 和 Go 語言,成為用戶 UI 界面的正式官方語言。

谷歌為什麼選擇 Dart?

優勢:

Fuchsia 的終端開發人員已經在使用 Dart;Fuchsia 的大部分 UI 界面使用的是 Flutter,而 Dart 正是 Flutter 的官方語言;可以使用直線代碼編寫異步程序;Dart 的開發效率高;Fuchsia 項目有機會影響語言的演變;Dart 語言提供了內存安全保證,從而降低了開發的軟體存在安全漏洞的風險;劣勢:

Dart 使用垃圾回收機制管理內存,更加佔用資源;Dart 具有大量的運行時環境;工具鏈強制在二進位大小、性能和啟動延遲之間進行權衡,這比工具鏈為其他語言提供的權衡更糟糕。最終決定:

支持面向非驅動程序的終端開發人員;最終用在 UI 界面編寫和非無限期運行程序中。Flutter 為什麼要選擇 Dart 開發?

2011 年 10 月 10 日的 GOTO 大會上,谷歌的兩位工程師發布了「Dart」語言,剛開始的定位是取代 JavaScript,但卻以 Flutter 的程式語言出道而被人熟知。由於是第一個使用聲明式 UI 的程式語言,也引發過很過爭議。

據了解,早期的 Flutter 團隊在選型時評估了十多種語言,最終選擇了 Dart,因為它符合他們構建用戶界面的方式。

更進一步,Dart 的諸多特性堪稱為 Flutter 量身打造:

Dart 是 AOT(Ahead Of Time)編譯的,編譯成快速、可預測的本地代碼,使 Flutter 幾乎都可以使用 Dart 編寫。這不僅使 Flutter 變得更快,而且幾乎所有的東西(包括所有的小部件)都可以定製。Dart 也可以 JIT(Just In Time)編譯,開發周期異常快,工作流顛覆常規(包括 Flutter 流行的亞秒級有狀態熱重載)。Dart 可以更輕鬆地創建以 60fps 運行的流暢動畫和轉場。Dart 可以在沒有鎖的情況下進行對象分配和垃圾回收。就像 JavaScript 一樣,Dart 避免了搶佔式調度和共享內存(因而也不需要鎖)。由於 Flutter 應用程式被編譯為本地代碼,因此它們不需要在領域之間建立緩慢的橋梁(例如,JavaScript 到本地代碼)。它的啟動速度也快得多。Dart 使 Flutter 不需要單獨的聲明式布局語言,如 JSX 或 XML,或單獨的可視化界面構建器,因為 Dart 的聲明式編程布局易於閱讀和可視化。所有的布局使用一種語言,聚集在一處,Flutter 很容易提供高級工具,使布局更簡單。開發人員發現 Dart 特別容易學習,因為它具有靜態和動態語言用戶都熟悉的特性。雖然以上功能並非 Dart 獨有,但它與 Flutter 的組合卻恰到好處,使其在實現 Flutter 項目時變得無比高效。

Dart & Flutter 版本時間表—— GMTC

前端開發,衝衝衝

有位騰訊的前端專家曾對我說,「前端十八個月難度翻一番」,他這一言道出了無數前端開發的心酸血淚:就沒見過哪個領域的技術更新換代速度有前端圈這麼快的!造輪子一時爽,一直造輪子一直爽,苦了前端開發一邊喊著「學不動了」,一邊含淚說出一句「真香」。

縱觀近年來大熱的新技術,基本上都能看到科技巨頭在背後力推的身影。每年的 Google I/O 大會上都可以看到移動、前端領域的新風向:

2017 年 I/O 大會上,谷歌宣布在其 Android Studio IDE 中支持 Kotlin;2019 年 I/O 大會上,谷歌宣布 Kotlin 程式語言現在是 Android 應用程式開發人員的首選語言。對 Flutter 框架而言,2019 年 I/O 大會的更新更是重磅:新增新增 Web 和嵌入式目標平臺,走向全平臺制霸!對於軟體開發行業來說,技術的實現只是成功中的關鍵一環,如何形成一個以某項技術為核心的龐大生態圈、良好的開發者社區和及時的維護同樣無比重要。可以看到 Flutter 目前的使用流行度越來越廣泛,各大廠的 Flutter 項目也正在穩步推進,未來對 Flutter 生態下開發人員的需求將進一步擴大。

所以,扶你起來,你還能學?

關注我並轉發此篇文章,私信我「領取資料」,即可免費獲得InfoQ價值4999元迷你書!

相關焦點

  • Dart 2.10 發布,帶來新的 Dart 開發者工具
    這個新工具支持所有常見任務,例如創建新項目和程序包;分析和格式化代碼;以及運行、編譯和測試項目。要使用該工具,只需運行 dart 命令:從 Flutter 1.22 SDK 開始, <flutter-sdk>/bin 同時包含 flutter 和 dart 命令。如果同時進行 Flutter 開發和通用 Dart 開發,則可以通過單個 Flutter SDK 滿足開發需求,而無需安裝其他任何東西。
  • Google同時啟動Flutter 1.2和Dart 2.2
    行動應用程式開發過程是通過使用dart語言完成的,該語言也是由技術巨頭Google創建的。software engineer關於Dart 2.2和Dart DevTools的所有信息儘管有多種Flutter編寫方式,但是使用dart
  • 你知道dart是什麼意思嗎?
    今天,我們一起看一下dart這個單詞,說到dart這個單詞,有部分英語學習者知道dart的意思是飛鏢、擲鏢遊戲。下面,我們就一起看一下dart這個單詞。首先,我們看一下dart做名詞的用法。1、Markov died after being struck by a poison dart.馬爾科夫身中毒鏢而亡。這句話中dart的意思是鏢、飛鏢。有毒的飛鏢也可以表達為a poisoned dart。
  • Dart必須要學習的變量
    今天給大家講解Dart當中的變量,雖然 Dart 代碼是類型安全的,但是由於支持類型推斷,大多數變量是不需要顯式指定類型的,我們來看一個例子指定類型我們能看出上面的變量,大多時候我們是不用指定類型的,他自己就能推斷出來什麼類型
  • Flutter 1.20穩定版發布 基於Dart程式語言2.9版本構建
    Flutter 1.20 現已發布,該版本基於 Dart 程式語言 2.9 版本構建,包含了諸多的性能改進、多項 UI 增強功能、對 Visual Studio Code 擴展的更新以及針對移動文本欄位的自動填充等內容。
  • 用 Flutter + Dart 快速構建一款絕美移動 App
    我們只需要導航回去即可。在MyHomePage(homepage.dart)內,你可以看到一些UI定義。頁面的根名稱為Scaffold,它負責設置應用程式欄、操作按鈕、文檔主體和其他各種選項,實際上這就是通用的移動應用模板。未定義的部分會被省略該。
  • 谷歌官宣新消息,還帶來了全新作業系統
    華為方面已經正式官宣將會在本月面向開發者開放手機測試版。華為鴻蒙正式上線而最近華為的消費者軟體總裁王成錄也正式官宣,將會在12月16日於北京舉辦鴻蒙2.0手機開發者大會,希望很多開發都能夠積極加入,這也就意味著我們的手機系統馬上就要問世,終於能夠面向消費者了。
  • Qualcomm與谷歌合作擴展Android作業系統支持,簡化作業系統升級
    Qualcomm要聞 — 此項合作旨在向廣泛的驍龍平臺提供四個Android作業系統版本和四年安全支持 Qualcomm和谷歌近日宣布雙方將合作增強並擴展
  • 谷歌正式宣布,全新作業系統上線,截胡華為鴻蒙?
    在未來的物聯網時代,作業系統尤為重要,智能設備一旦沒有了作業系統的支持,就只能為成為一塊「搬磚」,毫無任何價值可言! 據悉,Fuchsia作業系統是面向物聯網時代,基於Linux內核打造的一款全新的微內核作業系統,具有多終端、跨平臺運行等特點,與鴻蒙作業系統的功能類似,並且也是開源的! 對此,不少網友紛紛表示,谷歌這是要截胡鴻蒙!
  • 強大的離子推進器將執行NASA的DART任務
    DART要到達Didymos需要飛過很多區域。在2021年7月發射後,它將於9月22日達到目標小行星,屆時這個雙星系統將距離地球不到1100萬公裡(680萬英裡)。為了抵達這一雙星系統,DART將依靠功能強大的離子推進器,稱為NASA的進化氙推進器(NEXT-C)。
  • 高通和谷歌宣布合作擴展Android作業系統支持 簡化作業系統升級
    【TechWeb】 12月17日消息,日前,高通技術公司和谷歌宣布,雙方將合作增強並擴展Project Treble,以助力更多搭載高通驍龍移動平臺的終端運行最新版本的Android作業系統。據悉,此次提升意在助力OEM廠商無需調整高通技術公司晶片組的相關軟體,即可將其搭載驍龍移動平臺的終端升級至Android作業系統的最新版本,並能夠利用通用Android軟體分支,對搭載高通技術公司驍龍移動平臺的終端進行作業系統升級。這些提升旨在減少搭載驍龍的終端進行Android作業系統版本升級所需的時間和資源。
  • Chrome作業系統獲得谷歌Play商店官方支持
    我們一直在抱怨有關Chrome作業系統正式支持Play商店的說法,但今天Google正式宣布了這一舉動。通過這一最新舉措,Chrome作業系統和Chromebook可以訪問Google Play商店中可用的整個應用生態系統,而不會影響體驗。與輕量級的面向Web的作業系統相比,這為Chrome OS帶來了更多的潛力,吸引了更多人使用已經流行的應用程式生態系統。
  • Chrome作業系統能否很快獲得谷歌Play商店全面支持
    Chrome作業系統與Android合併。這是每個Pixel C擁有者的夢想。但是很長一段時間以來,夢並沒有太多證據證明它的存在。當然,您可以使用駭客的方法來加載某些Android應用,以將apk作為Chrome擴展程序安裝, 但即使使用了一些漂亮的自動化工具,使用 起來仍然很不方便。
  • 教孩子寫遊戲:什麼是作業系統?它和程式語言有什麼關係?
    因為作業系統把所有的計算機功能分類整理,只實現了那些最最基礎的功能,然後以這些基礎功能為背景,再去開發新的功能。這種打完基礎再創造的方式,一直到了微軟的DOS系統出來後,才被利用得淋漓盡致。雖然這些功能看起來很簡單,可是,要用數學的方法來實現這些功能是非常不容易的,況且這個數學只是二進位的加法而已。拿DOS系統來說,它包含了這100個基礎功能的所有機器語言代碼。作為一個程式設計師,只需要熟悉這100個基礎功能怎麼用,就能寫出各種各樣的擴展程序了。比方說,我們要編輯文字,程式設計師就用這100個功能給我們寫了一個DOS版本的文字編輯程序。
  • 谷歌翻譯新增對五種語言的支持 可下載並離線使用
    谷歌推出了許多膾炙人口的網絡應用與服務,涵蓋了人們日常生活與工作的方方面面,比如 Gmail 電子郵件、相冊雲盤、地圖導航、日曆、通訊等大家都很熟悉的產品。 近日,該公司還為谷歌翻譯用戶新增了對五種語言的支持。
  • 微軟.NET 官宣跨平臺 UI 框架 MAUI
    IT之家5月21日消息 在Build 2020開發者大會上,微軟宣布推出 .NET 官宣跨平臺 UI 框架 MAUI,全稱是 .NET Multi-platform App UI。正式版將在 .NET 6 和大家見面。微軟介紹,你可以使用.NET進行任何構建。
  • AI加碼 谷歌翻譯又添離線功能 支持59種語言
    智東西 編 | 曹心緣導語:谷歌稱新版離線翻譯將適用於任何手機,目前支持59種語言。近日,谷歌宣布推出基於神經機器翻譯(NMT)技術的離線翻譯。如果你沒有無限的移動數據,或者你的語言在國際上難以通行,現在可以從Google的Android和iOS應用下載並使用谷歌離線翻譯應用。此前,你很可能在手機上安裝了隨時可以翻譯外語的離線字典應用。然而,由於不同語種的差異性,無論你是試圖翻譯外國菜單或者店面,你都會發現這些逐字逐句的翻譯並不能幫助你完全理解一門外語。當你試圖翻譯有不同語法和詞根的語言時,即使是AI翻譯也難保沒有錯誤。
  • 谷歌Android Auto汽車作業系統新增覆蓋30多個亞歐非國家
    首頁 > 外聞 > 關鍵詞 > 谷歌最新資訊 > 正文 谷歌Android Auto汽車作業系統新增覆蓋30多個亞歐非國家
  • Google翻譯增加了對五種新語言的支持
    谷歌今天宣布將在其翻譯服務中增加對五種新語言的支持。Google Translate四年來首次添加了Kinyarwanda,Odia(Oriya),Tatar,Turkmen和維吾爾語等語言。總體而言,Google通過其翻譯應用程式提供了對超過108種語言的支持。超過7千5百萬人說五種語言。Google翻譯將支持每種語言的文本和網站翻譯。對於Kinyarwanda,Tatar和維吾爾族,Google也將支持虛擬鍵盤輸入。Kinyarwanda是盧安達的官方語言,有超過1200萬人使用。
  • 萬物互聯時代的作業系統在哪裡?
    每到技術發展的關鍵節點,總會出現相配套的作業系統回顧歷史,ICT行業的發展歷程中出現過一代代符合當時軟硬體需求的作業系統,可以說作業系統的形態體現了歷史階段下對軟硬體服務的集中承載。在1984年前,基於命令行終端的作業系統限制了不懂程式語言的普通人接觸個人電腦,計算機技術被鎖在科研機構和企業級別的應用中。而在蘋果(Mac OS 1.0)和微軟(Windows 1.0)分別推出可視化圖形操作的作業系統後,圖形化界面極大的降低了普通人使用電腦的門檻,促進了個人電腦的普及。