華為發(fā)布鴻蒙2.0操作系統(tǒng),該系統(tǒng)應(yīng)用開發(fā)框架采用JavaScript作為開發(fā)語言,這對于前端開發(fā)工程師來說無疑是一個(gè)好消息!果然JavaScript才是全世界最好的語言……
JavaScript優(yōu)勢:
JS 生態(tài)圈目前來看形勢很好,未來也是第一梯隊(duì)。
JS 語言發(fā)展迅速,開源社區(qū)支持廣泛,上手入門門檻遠(yuǎn)低于 Java 和 Native 語言。后期希望可以原生支持 TypeScript。
JS + WebAssembly 性能還是不錯的,未來如果能加上 V8 速度會更快,不知道華為未來是否有能力自己做一個(gè) VM 支持 WebAssembly。
Write once,run everywhere。目前來看是對 JS + WebAssembly 最好的描述。
鴻蒙的 JS 框架 ace_lite_jsfwk,從名字中可以看出來這是一個(gè)非常輕量級的框架,官方介紹說是“輕量級 JS 核心開發(fā)框架”。其核心代碼只有 5 個(gè) js 文件,大概也就 300-400 行代碼吧。
runtime-coresrccoreindex.js
runtime-coresrcobserverobserver.js
runtime-coresrcobserversubject.js
runtime-coresrcobserverutils.js
runtime-coresrcprofilerindex.js
從名字可以看出來,這些代碼實(shí)現(xiàn)了一個(gè)觀察者模式。也就是說,它實(shí)現(xiàn)了一個(gè)非常輕量級的 MVVM 模式。通過使用和 vue2 相似的屬性劫持技術(shù)實(shí)現(xiàn)了響應(yīng)式系統(tǒng)。
在「鴻蒙 2.0」上,開發(fā)者只需編寫形如 Vue 組件式的 JavaScript 業(yè)務(wù)邏輯,即可將其渲染為智能手表等嵌入式硬件上的 UI 界面。
這里將其分為自上而下的三個(gè)抽象層來介紹:
JS 框架層,可理解為一個(gè)大幅簡化的 Vue 式 JavaScript 框架
JS 引擎與運(yùn)行時(shí)層,可理解為一個(gè)大幅簡化的 WebKit 式運(yùn)行時(shí)
圖形渲染層,可理解為一個(gè)大幅簡化的 Skia 式圖形繪制庫
這三個(gè)抽象層,整體構(gòu)成了一套面向嵌入式硬件的 GUI 技術(shù)棧。不同于許多高呼「不明覺厲 / 深不可測」的輿論,個(gè)人認(rèn)為至少對于 GUI 部分,國內(nèi)凡是接觸過目前主流 Hybrid 式跨端方案或 JS 運(yùn)行時(shí)研發(fā)的一線開發(fā)者,都很容易從源碼出發(fā)來理解它。
對于「鴻蒙 2.0」在 GUI 部分的亮點(diǎn),個(gè)人能想到這些:
- 確實(shí)有務(wù)實(shí)(但和當(dāng)年 PPT 介紹完全兩碼事)的代碼。
- 不是 WebView 套殼,布局和繪制是自己做的。
- 無需超過大學(xué)本科水平的計(jì)算機(jī)知識,也能順利閱讀理解。
而至于明顯(不只是某幾行代碼寫得丑)的缺失或問題,目前看來則有這么一些:
JS 框架層
- 沒有基本的組件間通信(如 props / emit 等)能力
- 沒有基本的自定義組件能力
- 沒有除基礎(chǔ)依賴追蹤以外的狀態(tài)管理能力
JS 引擎與運(yùn)行時(shí)層
- 標(biāo)準(zhǔn)支持過低,無法運(yùn)行 Vue 3.0 這類需 Proxy 的下一代前端框架
- 性能水平弱,難以支持中大型 JS 應(yīng)用
- 沒有開放 DOM 式的對象模型 API,不利于上層抹平差異
圖形渲染層
對于所有熟悉 JavaScript 的前端開發(fā)者們,JavaScript 被鴻蒙這樣的「國之重器」采用,可以大大增強(qiáng)前端的道路自信、理論自信、文化自信和技術(shù)棧自信。
-
華為
+關(guān)注
關(guān)注
216文章
34519瀏覽量
252503 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6874瀏覽量
123565 -
鴻蒙2.0
+關(guān)注
關(guān)注
2文章
60瀏覽量
6970
發(fā)布評論請先 登錄
相關(guān)推薦
評論