近日,華為發(fā)布鴻蒙2.0操作系統(tǒng),該系統(tǒng)應(yīng)用開發(fā)框架采用JavaScript作為開發(fā)語言,這對于前端開發(fā)工程師來說無疑是一個好消息!果然JavaScript才是全世界最好的語言…
JavaScript優(yōu)勢:
JS 生態(tài)圈目前來看形式很好,未來也是第一梯隊(duì)。
JS 語言發(fā)展迅速,開源社區(qū)支持廣泛,上手入門門檻遠(yuǎn)低于 Java 和 Native 語言。后期希望可以原生支持 TypeScript。
JS + WebAssembly 性能還是不錯的,未來如果能加上 V8 速度會更快,不知道華為未來是否有能力自己做一個 VM 支持 WebAssembly。
Write once,run everywhere。目前來看是對 JS + WebAssembly 最好的描述。
鴻蒙的 JS 框架 ace_lite_jsfwk,從名字中可以看出來這是一個非常輕量級的框架,官方介紹說是“輕量級 JS 核心開發(fā)框架”。其核心代碼只有 5 個 js 文件,大概也就 300-400 行代碼吧。
runtime-coresrccoreindex.js
runtime-coresrcobserverobserver.js
runtime-coresrcobserversubject.js
runtime-coresrcobserverutils.js
runtime-coresrcprofilerindex.js
從名字可以看出來,這些代碼實(shí)現(xiàn)了一個觀察者模式。也就是說,它實(shí)現(xiàn)了一個非常輕量級的 MVVM 模式。通過使用和 vue2 相似的屬性劫持技術(shù)實(shí)現(xiàn)了響應(yīng)式系統(tǒng)。
在「鴻蒙 2.0」上,開發(fā)者只需編寫形如 Vue 組件式的 JavaScript 業(yè)務(wù)邏輯,即可將其渲染為智能手表等嵌入式硬件上的 UI 界面。
這里將其分為自上而下的三個抽象層來介紹:
JS 框架層,可理解為一個大幅簡化的 Vue 式 JavaScript 框架
JS 引擎與運(yùn)行時(shí)層,可理解為一個大幅簡化的 WebKit 式運(yùn)行時(shí)
圖形渲染層,可理解為一個大幅簡化的 Skia 式圖形繪制庫
這三個抽象層,整體構(gòu)成了一套面向嵌入式硬件的 GUI 技術(shù)棧。不同于許多高呼「不明覺厲 / 深不可測」的輿論,個人認(rèn)為至少對于 GUI 部分,國內(nèi)凡是接觸過目前主流 Hybrid 式跨端方案或 JS 運(yùn)行時(shí)研發(fā)的一線開發(fā)者,都很容易從源碼出發(fā)來理解它。
對于「鴻蒙 2.0」在 GUI 部分的亮點(diǎn),個人能想到這些:
確實(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,不利于上層抹平差異
圖形渲染層
沒有實(shí)質(zhì)可用的 GPU 加速
沒有 SVG 和富文本等高級渲染能力
Canvas 完成度低,缺狀態(tài)棧和很多 API
對于所有熟悉 JavaScript 的前端開發(fā)者們,JavaScript 被鴻蒙這樣的「國之重器」采用,可以大大增強(qiáng)前端的道路自信、理論自信、文化自信和技術(shù)棧自信。
想成為國之棟梁嗎?來寫 JavaScript 吧!
聲明:除云和數(shù)據(jù)原創(chuàng)文章外,分享和轉(zhuǎn)載的文章皆為促進(jìn)IT技術(shù)的傳播,并不代表本微信贊同其觀點(diǎn)和對真實(shí)性負(fù)責(zé),僅做交流學(xué)習(xí)使用,非商業(yè)用途。如有文章或圖片的原作者有異議或涉及版權(quán)問題,請立即聯(lián)系我們,我們將在第一時(shí)間進(jìn)行改正或刪除,確保您的權(quán)益,謝謝支持!
Copyright ? 2013-2021 河南云和數(shù)據(jù)信息技術(shù)有限公司 豫ICP備14003305號 ISP經(jīng)營許可證:豫B-20160281