如何評價Google新推出的Android開發語言sky?

谷歌推安卓應用開發語言Sky 目前處於測試階段每秒120幀


前段時間 Google 宣布了 Chrome 將不會集成 Dart VM,看起來 Dart 團隊是在為語言另謀出路了。取代不了 JavaScript,咱可以取代 Java 嘛!

糾正一下題主,Sky 不是一個新語言,而是一套新的 Android App 開發模式,它包括兩個部分:

  1. Sky 引擎(C++ 寫的,負責渲染)

  2. Sky 框架(Dart 寫的,提供應用開發的基本組件,包括全套 Material Design 組件)。

底層通過一個跨語言通信層 Mojo(Chrome 里也有用到)和 Android OS 原生 API 通信。

重點來了,這套系統,無論是從架構還是開發 API 上來看,都和 React Native 極為相似。不同的只是語言換成了 Dart,並且(目前)似乎沒有跨平台的計劃。

我們來看看相似的地方:

  • Functional Reactive 的界面開發模式。看看這個示例代碼:sky_sdk/stock_app.dart at master · domokit/sky_sdk · GitHub 和不用 JSX 的 React 如出一轍。在 build() 函數內返回類似 virtual dom 一樣的描述界面結構的組件樹,通過 setState() 觸發更新,然後非同步在渲染進程中進行渲染。
  • 相似的架構。和 React Native 一樣,兩者都強調在主進程通過輕量的數據結構描述界面的狀態,但將實際渲染和其他昂貴的操作放到專門的進程中非同步進行,從而解放珍貴的主進程資源。
  • 布局方案同樣借用 CSS / Flexbox。Sky 直接用的就是 Chrome 的 layout 系統。兩者都是通過直接創建內聯的 Style 對象來進行樣式設置。Sky 的門面人物 Eric Seidel 之前擔任 Chrome/Blink 的主力工程師多年,對這一塊的經驗應該比負責 React Native 布局系統的 Vjeux 更強一些。
  • 相似的類 Web 開發優勢:更快的保存 -&> reload -&> 調試周期,繞過 app store 發布流程進行更新等等...

總的來說,我覺得 Sky 還是為 Dart 這個語言提供了一個很有意思的想像空間。React Native 有著跨平台的優勢,但在專門針對 Android 開發時,Sky 可能會提供更好的整合度,因為畢竟是親兒子 + 有 Chrome 的現成資源。


Github地址在這裡:domokit/sky_sdk · GitHub。

代碼還沒仔細看,不過這個120幀的想法,MTK已經在做這個事情了,我玩過樣機,最大的感受是:

1. 滑動LIst時120幀比60幀跟手

2. 滑動List時,字體不虛,基本沒有拖影

沒有啥不可能的,以後處理器越來越強,8ms之內完成不是沒有可能。尤其是在有硬體加速的情況下,不去重新繪製整個DisplayList,速度是非常快的。參考Android手機滑動桌面的時候。


官方視頻中的說法容易造成誤解,從實現原理上看,其實 mojo 不僅僅做通訊,它是一個簡版的 Chrome 內核,難怪 Dart 放棄了嵌入 Chome 的努力,原來它自己 fork 了一個屬於自己的 Chrome...

這只是某個小團隊的實驗項目,如果真是 Google 官方發布,那肯定是在 I/O 大會上,而不是什麼 Dart 會議。


這不是一個公司行為,這只是團隊行為。

這只是一種解決方案而已。

討論這個我覺得就像是討論用 JavaScript 開發 Android 應用一樣。

和 Swift 這樣的新語言是有根本區別的。


隨著硬體越來越強大, mobile終將走上desktop的道路, web還是會捲土重來


看了一下,個人感覺,其實就是類似phonegap,還不跨平台。

可以做普通app,但是有一些東西,估計不太容易做到。

Java還是會存在下去

網速不是萬能的。

那些用sky和phonegap能做的東西,原本就是屬於web的東西,只是移動熱潮搶過去了幾天而已。

而原本該native做的東西,web永遠搶不走。

都在玩概念而已,人類在計算機領域,已經很久沒有根本意義上得更新了。


Sky is an experimental, high-performance UI framework for mobile apps. Sky helps you create apps with beautiful user interfaces and high-quality interactive design that run smoothly at 120 Hz.


語言是Dart吧,sky是framework……


人家介紹里明明寫著framework,怎麼變語言了?而且例子里明顯用的dart


有了這個,Dart群最近幾天沒少加人進來


坐等react native推出android版,歷史一定會朝著有利於簡化開發的方向發展的


以後web工程師也可以搗蛋app咯!


不是很懂,目前主流手機屏幕的刷新率達到多少了?


安卓開發抄襲ios的路上又多了一套api而已。

我們的pm是最牛逼的你們根本理解不了這種境界,只要不跟ios長的一樣,安卓設計都是垃圾反人類。沒錯,微信安卓版跟ios長的不一樣就是垃圾,陌陌也是,其他。。。。(真為你們沒有這麼高端的PM感到傷心。呵呵)

反正我們怎麼做都是抄ios.只是又多了一個抄襲ios的工具。(好心酸)

@李鵬園


推薦閱讀:

哪些手機黑屏後WIFI會自動斷開?為什麼要這樣設計?
移動互聯網積分牆模式如何能夠提高廣告主確認率?
移動互聯網做精準廣告投放可依賴的手段和難點有哪些?
通過什麼渠道可以獲取移動互聯方面領域的大數據樣本?
如何看 YunOS 3.0?

TAG:移動互聯網 | 移動應用 | Android開發 | Java | 谷歌Google | Android |