喜聞樂見,其實(shí)使用 JavaScript 作為應(yīng)用開發(fā)語言并不是第一家,比如 JerryScript 就是為了三星自家的 IoT 手表開發(fā)的,國產(chǎn) RT Thread 也用了 JS 做 GUI,還有 MongooseOS 也是一套 JavaScript 的操作系統(tǒng),當(dāng)然還有我最喜歡的 YodaOS 也是基于 JavaScript 的。
前端(廣義前端)
前端(廣義前端)應(yīng)用編程語言這個(gè)生態(tài)位目前就那么幾種語言: Javascript/TypeScript、Java、OC、Kotlin、Swift.、Dart, 先不說其他因素,日中后四個(gè)都是單個(gè)商業(yè)公司控制的,你說雞蒙拿來用0k不ok呢? Java雖然有ICP,但Oracle.。。你懂的。所以選擇JS簡直是必然的,(順便,華為在2019年12月成為Ecma標(biāo)準(zhǔn)組織成員,并加入了門TC39——JS標(biāo)準(zhǔn)委員會。
鴻蒙作為個(gè)正在全新的系統(tǒng), 定位的目標(biāo)是要在多種場景多種設(shè)備上運(yùn)行。
一個(gè)全新的系統(tǒng),需要得到足夠多的開發(fā)者支持資源,那么需要對開發(fā)者友好,需要謹(jǐn)慎選擇,什么樣的開發(fā)語言受眾最多?
什么樣的開發(fā)語言能支持在多種設(shè)備多種場景下面運(yùn)行?
我們不難分析出java和javascrip是相對比較好的選擇,畢竟這兩大操作語言有足夠的開發(fā)者,開發(fā)者不需要再去學(xué)習(xí)一門新的語言,降低了開發(fā)者的成本,更容易得到開發(fā)者支持。
那為什么是javascript呢?
java語言已經(jīng)被安卓廣泛使用,如果堅(jiān)持選擇java的話,那么和安卓很難拉開差距,可能一不小心就走到安卓的老路上去了,另外,一個(gè)熟悉java的開發(fā)者,一個(gè)熟悉安卓的開發(fā)者,放棄成熟的安卓生態(tài)不玩,為什么要來陪個(gè)各種不確定各種都不清楚的全新系統(tǒng)玩?
對自己有什么好處?
畢竟開發(fā)者是要恰飯的,沒有收益甚至短期內(nèi)看不到收益的話,靠熱情是很難維持的。
相比javascript來看,就要好的多,首先javascript語言還沒有 個(gè)成熟的軟件生態(tài)支持,最重要的是javascript語言有足夠多的開發(fā)者,基本上傳統(tǒng)的頁面開發(fā)者都能寫些javascript的代碼,至少開發(fā)者基數(shù)夠大。
擁有了強(qiáng)大的開發(fā)者基數(shù)資源,再加上對于一個(gè)遲遲沒有平臺生態(tài)兌現(xiàn)的語言,此時(shí)華為鴻蒙如果能給出個(gè)類似蘋果安卓的方案,那么將會得到大量熟悉的javascript開發(fā)者支持,畢竟他們已經(jīng)期盼好久,看著java,看著OC語言,它們都有了前途,而javascript還沒有 一個(gè)生態(tài)讓他們來發(fā)光發(fā)熱獲取收益。
開發(fā)者
開發(fā)者可能會因?yàn)橐环N新的生態(tài)時(shí)沖動進(jìn)入這個(gè)市場,而能讓開發(fā)者堅(jiān)持留下來的還是要生態(tài)本身強(qiáng)大,能賺到錢,一個(gè)能讓開發(fā)者賺到錢的生態(tài)不在乎使用什么語言,哪怕語言再難學(xué),只要利益足夠大,學(xué)的人都會蜂擁而至但是如果賺不到錢, 看不到收益,那就前途未卜了。
是時(shí)候該學(xué)習(xí)javascript了。
缺陷
當(dāng)然,JS也有些缺陷。而日等慮現(xiàn)在各移動平臺除了之外也都有自的飲定語言,所以長遠(yuǎn)看,(光使用) J5對于鴻蒙可能是不夠的。鴻蒙在大內(nèi)存設(shè)備(如號)上應(yīng)會支持Java,但戰(zhàn)略上我認(rèn)為平臺必須要有自研語言。而且方舟編譯器和MaplelR的特點(diǎn)就是多語言聯(lián)臺編譯,所以華為完全可能會出自研語言,讓象同時(shí)支持5 lava和傳言中的 0面」。如果僅僅考悅的需求,我個(gè)人實(shí)際上是比較傾向于我剪JS/TS的語義和語法來做一個(gè)高效的可直接編評到native的語言,不過從一些傳聞來看,「倉板」 可能不像TS而更類似Swift。
鴻蒙作為個(gè)正在全新的系統(tǒng), 定位的目標(biāo)是要在多種場景多種設(shè)備上運(yùn)行。
一個(gè)全新的系統(tǒng),需要得到足夠多的開發(fā)者支持資源,那么需要對開發(fā)者友好,需要謹(jǐn)慎選擇,什么樣的開發(fā)語言受眾最多?
什么樣的開發(fā)語言能支持在多種設(shè)備多種場景下面運(yùn)行?
我們不難分析出java和javascrip是相對比較好的選擇,畢竟這兩大操作語言有足夠的開發(fā)者,開發(fā)者不需要再去學(xué)習(xí)一門新的語言,降低了開發(fā)者的成本,更容易得到開發(fā)者支持。
支持
支持 JS 的原因,JS 是瀏覽器界的匯編語言,而瀏覽器目前有成為第一大人機(jī)交互接口的趨勢。
1.JS 生態(tài)圈目前來看形式很好,未來也是第一梯隊(duì)。
2.JS 語言發(fā)展迅速,開源社區(qū)支持廣泛,上手入門門檻遠(yuǎn)低于 Java 和 Native 語言。后期希望可以原生支持 TypeScript
3.JS + WebAssembly 性能還是不錯(cuò)的,未來如果能加上 V8 速度會更快,不知道華為未來是否有能力自己做一個(gè) VM 支持 WebAssembly
4. Write once,run everywhere。目前來看是對 JS + WebAssembly 最好的描述。
作為一個(gè)熱愛JavaScript的曾經(jīng)的程序員,我當(dāng)然支持鴻蒙采用JavaScript作為開發(fā)語言,我還不了解細(xì)節(jié),但是我估計(jì)JavaScript是被作為應(yīng)用層面的編程語言來使用,換句話說,記憶鴻蒙平臺來開發(fā)應(yīng)用,你可以用JavaScript,但是,如果你要做一些底層的開發(fā),你可能還需要用其他編程語言。
為什么這樣呢?
因?yàn)镴avaScript就是為了『應(yīng)用開發(fā)』而設(shè)計(jì)的,不是為了『底層開發(fā)』而設(shè)計(jì)的。
舉個(gè)簡單例子,JavaScript語言本身沒有線程(Thread)的概念(Chrome的worker不是語言特性),我知道很多人都詬病這一點(diǎn),但是,我一直認(rèn)同JavaScript就不該有線程,因?yàn)镴avaScript是用來開發(fā)應(yīng)用的,一個(gè)應(yīng)用開發(fā)者為什么要知道線程的存在呢?
對于很多本身有線程概念的編程語言,實(shí)際上誘惑了程序員去玩線程這種潘多拉魔盒,千萬不要覺得自己會線程就牛逼了呀,很多人把線程玩拉胯了!
如果你現(xiàn)在用Windows上的Outlook,把Outlook關(guān)閉再重新打開,用任務(wù)管理器看一下Outlook占多少個(gè)線程,至少幾十個(gè),也就是說,Outlook什么都不敢都有幾十個(gè)線程存在,每個(gè)線程還要維持自己的stack,這……不是玩拉胯了是什么?
JavaScript堅(jiān)持自己是一個(gè)為了『應(yīng)用開發(fā)』的語言,不是一個(gè)全能語言,所以才能繁榮昌盛這么久。
這就是我的一點(diǎn)看法。
-
JAVA
+關(guān)注
關(guān)注
19文章
2966瀏覽量
104700 -
javascript
+關(guān)注
關(guān)注
0文章
516瀏覽量
53850 -
鴻蒙系統(tǒng)
+關(guān)注
關(guān)注
183文章
2634瀏覽量
66302
發(fā)布評論請先 登錄
相關(guān)推薦
評論