0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙系統(tǒng)為什么會(huì)選擇JavaScript 作為應(yīng)用開(kāi)發(fā)語(yǔ)言

鴻蒙系統(tǒng)HarmonyOS ? 來(lái)源:程序員客棧 ? 作者:開(kāi)發(fā)者全社區(qū) ? 2021-03-30 16:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

喜聞樂(lè)見(jiàn),其實(shí)使用 JavaScript 作為應(yīng)用開(kāi)發(fā)語(yǔ)言并不是第一家,比如 JerryScript 就是為了三星自家的 IoT 手表開(kāi)發(fā)的,國(guó)產(chǎn) RT Thread 也用了 JS 做 GUI,還有 MongooseOS 也是一套 JavaScript 的操作系統(tǒng),當(dāng)然還有我最喜歡的 YodaOS 也是基于 JavaScript 的。

前端(廣義前端)

前端(廣義前端)應(yīng)用編程語(yǔ)言這個(gè)生態(tài)位目前就那么幾種語(yǔ)言: Javascript/TypeScript、Java、OC、Kotlin、Swift.、Dart, 先不說(shuō)其他因素,日中后四個(gè)都是單個(gè)商業(yè)公司控制的,你說(shuō)雞蒙拿來(lái)用0k不ok呢? Java雖然有ICP,但Oracle.。。你懂的。所以選擇JS簡(jiǎn)直是必然的,(順便,華為在2019年12月成為Ecma標(biāo)準(zhǔn)組織成員,并加入了門(mén)TC39——JS標(biāo)準(zhǔn)委員會(huì)。

鴻蒙

鴻蒙作為個(gè)正在全新的系統(tǒng), 定位的目標(biāo)是要在多種場(chǎng)景多種設(shè)備上運(yùn)行。

一個(gè)全新的系統(tǒng),需要得到足夠多的開(kāi)發(fā)者支持資源,那么需要對(duì)開(kāi)發(fā)者友好,需要謹(jǐn)慎選擇,什么樣的開(kāi)發(fā)語(yǔ)言受眾最多?

什么樣的開(kāi)發(fā)語(yǔ)言能支持在多種設(shè)備多種場(chǎng)景下面運(yùn)行?

我們不難分析出java和javascrip是相對(duì)比較好的選擇,畢竟這兩大操作語(yǔ)言有足夠的開(kāi)發(fā)者,開(kāi)發(fā)者不需要再去學(xué)習(xí)一門(mén)新的語(yǔ)言,降低了開(kāi)發(fā)者的成本,更容易得到開(kāi)發(fā)者支持。

那為什么是javascript呢?

java語(yǔ)言已經(jīng)被安卓廣泛使用,如果堅(jiān)持選擇java的話,那么和安卓很難拉開(kāi)差距,可能一不小心就走到安卓的老路上去了,另外,一個(gè)熟悉java的開(kāi)發(fā)者,一個(gè)熟悉安卓的開(kāi)發(fā)者,放棄成熟的安卓生態(tài)不玩,為什么要來(lái)陪個(gè)各種不確定各種都不清楚的全新系統(tǒng)玩?

對(duì)自己有什么好處?

畢竟開(kāi)發(fā)者是要恰飯的,沒(méi)有收益甚至短期內(nèi)看不到收益的話,靠熱情是很難維持的。

相比javascript來(lái)看,就要好的多,首先javascript語(yǔ)言還沒(méi)有 個(gè)成熟的軟件生態(tài)支持,最重要的是javascript語(yǔ)言有足夠多的開(kāi)發(fā)者,基本上傳統(tǒng)的頁(yè)面開(kāi)發(fā)者都能寫(xiě)些javascript的代碼,至少開(kāi)發(fā)者基數(shù)夠大。

擁有了強(qiáng)大的開(kāi)發(fā)者基數(shù)資源,再加上對(duì)于一個(gè)遲遲沒(méi)有平臺(tái)生態(tài)兌現(xiàn)的語(yǔ)言,此時(shí)華為鴻蒙如果能給出個(gè)類似蘋(píng)果安卓的方案,那么將會(huì)得到大量熟悉的javascript開(kāi)發(fā)者支持,畢竟他們已經(jīng)期盼好久,看著java,看著OC語(yǔ)言,它們都有了前途,而javascript還沒(méi)有 一個(gè)生態(tài)讓他們來(lái)發(fā)光發(fā)熱獲取收益。

開(kāi)發(fā)者

開(kāi)發(fā)者可能會(huì)因?yàn)橐环N新的生態(tài)時(shí)沖動(dòng)進(jìn)入這個(gè)市場(chǎng),而能讓開(kāi)發(fā)者堅(jiān)持留下來(lái)的還是要生態(tài)本身強(qiáng)大,能賺到錢(qián),一個(gè)能讓開(kāi)發(fā)者賺到錢(qián)的生態(tài)不在乎使用什么語(yǔ)言,哪怕語(yǔ)言再難學(xué),只要利益足夠大,學(xué)的人都會(huì)蜂擁而至但是如果賺不到錢(qián), 看不到收益,那就前途未卜了。

是時(shí)候該學(xué)習(xí)javascript了。

缺陷

當(dāng)然,JS也有些缺陷。而日等慮現(xiàn)在各移動(dòng)平臺(tái)除了之外也都有自的飲定語(yǔ)言,所以長(zhǎng)遠(yuǎn)看,(光使用) J5對(duì)于鴻蒙可能是不夠的。鴻蒙在大內(nèi)存設(shè)備(如號(hào))上應(yīng)會(huì)支持Java,但戰(zhàn)略上我認(rèn)為平臺(tái)必須要有自研語(yǔ)言。而且方舟編譯器和MaplelR的特點(diǎn)就是多語(yǔ)言聯(lián)臺(tái)編譯,所以華為完全可能會(huì)出自研語(yǔ)言,讓象同時(shí)支持5 lava和傳言中的 0面」。如果僅僅考悅的需求,我個(gè)人實(shí)際上是比較傾向于我剪JS/TS的語(yǔ)義和語(yǔ)法來(lái)做一個(gè)高效的可直接編評(píng)到native的語(yǔ)言,不過(guò)從一些傳聞來(lái)看,「?jìng)}板」 可能不像TS而更類似Swift。

鴻蒙作為個(gè)正在全新的系統(tǒng), 定位的目標(biāo)是要在多種場(chǎng)景多種設(shè)備上運(yùn)行。

一個(gè)全新的系統(tǒng),需要得到足夠多的開(kāi)發(fā)者支持資源,那么需要對(duì)開(kāi)發(fā)者友好,需要謹(jǐn)慎選擇,什么樣的開(kāi)發(fā)語(yǔ)言受眾最多?

什么樣的開(kāi)發(fā)語(yǔ)言能支持在多種設(shè)備多種場(chǎng)景下面運(yùn)行?

我們不難分析出java和javascrip是相對(duì)比較好的選擇,畢竟這兩大操作語(yǔ)言有足夠的開(kāi)發(fā)者,開(kāi)發(fā)者不需要再去學(xué)習(xí)一門(mén)新的語(yǔ)言,降低了開(kāi)發(fā)者的成本,更容易得到開(kāi)發(fā)者支持。

支持

支持 JS 的原因,JS 是瀏覽器界的匯編語(yǔ)言,而瀏覽器目前有成為第一大人機(jī)交互接口的趨勢(shì)。

1.JS 生態(tài)圈目前來(lái)看形式很好,未來(lái)也是第一梯隊(duì)。

2.JS 語(yǔ)言發(fā)展迅速,開(kāi)源社區(qū)支持廣泛,上手入門(mén)門(mén)檻遠(yuǎn)低于 Java 和 Native 語(yǔ)言。后期希望可以原生支持 TypeScript

3.JS + WebAssembly 性能還是不錯(cuò)的,未來(lái)如果能加上 V8 速度會(huì)更快,不知道華為未來(lái)是否有能力自己做一個(gè) VM 支持 WebAssembly

4. Write once,run everywhere。目前來(lái)看是對(duì) JS + WebAssembly 最好的描述。

作為一個(gè)熱愛(ài)JavaScript的曾經(jīng)的程序員,我當(dāng)然支持鴻蒙采用JavaScript作為開(kāi)發(fā)語(yǔ)言,我還不了解細(xì)節(jié),但是我估計(jì)JavaScript是被作為應(yīng)用層面的編程語(yǔ)言來(lái)使用,換句話說(shuō),記憶鴻蒙平臺(tái)來(lái)開(kāi)發(fā)應(yīng)用,你可以用JavaScript,但是,如果你要做一些底層的開(kāi)發(fā),你可能還需要用其他編程語(yǔ)言。

為什么這樣呢?

因?yàn)镴avaScript就是為了『應(yīng)用開(kāi)發(fā)』而設(shè)計(jì)的,不是為了『底層開(kāi)發(fā)』而設(shè)計(jì)的。

舉個(gè)簡(jiǎn)單例子,JavaScript語(yǔ)言本身沒(méi)有線程(Thread)的概念(Chrome的worker不是語(yǔ)言特性),我知道很多人都詬病這一點(diǎn),但是,我一直認(rèn)同JavaScript就不該有線程,因?yàn)镴avaScript是用來(lái)開(kāi)發(fā)應(yīng)用的,一個(gè)應(yīng)用開(kāi)發(fā)者為什么要知道線程的存在呢?

對(duì)于很多本身有線程概念的編程語(yǔ)言,實(shí)際上誘惑了程序員去玩線程這種潘多拉魔盒,千萬(wàn)不要覺(jué)得自己會(huì)線程就牛逼了呀,很多人把線程玩拉胯了!

如果你現(xiàn)在用Windows上的Outlook,把Outlook關(guān)閉再重新打開(kāi),用任務(wù)管理器看一下Outlook占多少個(gè)線程,至少幾十個(gè),也就是說(shuō),Outlook什么都不敢都有幾十個(gè)線程存在,每個(gè)線程還要維持自己的stack,這……不是玩拉胯了是什么?

JavaScript堅(jiān)持自己是一個(gè)為了『應(yīng)用開(kāi)發(fā)』的語(yǔ)言,不是一個(gè)全能語(yǔ)言,所以才能繁榮昌盛這么久。

這就是我的一點(diǎn)看法。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2988

    瀏覽量

    109459
  • javascript
    +關(guān)注

    關(guān)注

    0

    文章

    525

    瀏覽量

    54780
  • 鴻蒙系統(tǒng)
    +關(guān)注

    關(guān)注

    183

    文章

    2642

    瀏覽量

    68049
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    鴻蒙系統(tǒng)優(yōu)缺點(diǎn),能否作為開(kāi)發(fā)選擇

    星河版已經(jīng)是純血鴻蒙,但是它的發(fā)展一些周期。生態(tài)圈的建立難度大,各大廠商加入鴻蒙原生開(kāi)發(fā)需要時(shí)間累積。 鴻蒙開(kāi)發(fā)人才空缺,由于
    發(fā)表于 02-16 21:00

    想做web開(kāi)發(fā),就學(xué)JavaScript嗎?

    相對(duì)容易給出來(lái):學(xué)習(xí)JavaScript。四周看看,曾經(jīng)低端的瀏覽器腳本語(yǔ)言現(xiàn)在變得隨處可見(jiàn),從服務(wù)器端到客戶端,每天好像有更多的選擇。出身低微我記得數(shù)年前投入web開(kāi)發(fā),學(xué)習(xí)了HTM
    發(fā)表于 12-09 15:34

    鴻蒙適配APP要用什么開(kāi)發(fā)語(yǔ)言?!

    開(kāi)發(fā)鴻蒙的應(yīng)用要用什么開(kāi)發(fā)語(yǔ)言?Java?C++?JavaScript?
    發(fā)表于 09-11 11:55

    為什么會(huì)選擇C語(yǔ)言作為開(kāi)發(fā)語(yǔ)言

    C語(yǔ)言作為開(kāi)發(fā)語(yǔ)言呢?一起了解一下。首先來(lái)說(shuō)這應(yīng)該是必然的吧,嵌入式開(kāi)發(fā)是在操作系統(tǒng)內(nèi)部做
    發(fā)表于 11-08 09:05

    請(qǐng)問(wèn)如何選擇鴻蒙App開(kāi)發(fā)的編程語(yǔ)言?

    如何選擇鴻蒙App開(kāi)發(fā)的編程語(yǔ)言
    發(fā)表于 04-13 11:15

    JavaScript語(yǔ)言基礎(chǔ)

    JavaScript關(guān)鍵字(Reserved Words)是指在JavaScript語(yǔ)言中有特定含義,成為JavaScript語(yǔ)法中一部分的那些字。
    發(fā)表于 04-03 16:58 ?8次下載

    要成為鴻蒙開(kāi)發(fā)者,應(yīng)該學(xué)習(xí)哪些編程語(yǔ)言

    據(jù)了解,鴻蒙系統(tǒng)是基于Linux開(kāi)發(fā)的,源碼是C語(yǔ)言。那么,作為一名開(kāi)發(fā)者,如何幫助
    的頭像 發(fā)表于 09-24 12:06 ?1.3w次閱讀

    鴻蒙2.0操作系統(tǒng)采用JavaScript作為開(kāi)發(fā)語(yǔ)言 可看出JS生態(tài)圈未來(lái)形勢(shì)很好

    華為發(fā)布鴻蒙2.0操作系統(tǒng),該系統(tǒng)應(yīng)用開(kāi)發(fā)框架采用JavaScript作為
    的頭像 發(fā)表于 09-27 15:00 ?5372次閱讀

    鴻蒙系統(tǒng)是基于什么開(kāi)發(fā)

    鴻蒙系統(tǒng)作為華為的備用方案,首先必須要考慮的就是兼容性和開(kāi)放性,這樣更加自由的Linux自然就是首選,由于Linux可以運(yùn)行在多種硬件平臺(tái)上,所以基于此開(kāi)發(fā)
    的頭像 發(fā)表于 07-01 16:43 ?1.7w次閱讀

    鴻蒙系統(tǒng)用的什么語(yǔ)言開(kāi)發(fā)

    鴻蒙系統(tǒng)用的什么語(yǔ)言開(kāi)發(fā)的?華為的鴻蒙操作系統(tǒng)正式發(fā)布已經(jīng)過(guò)去了將近一個(gè)月的時(shí)間,相信很多用戶朋
    的頭像 發(fā)表于 07-07 09:48 ?9704次閱讀

    鴻蒙系統(tǒng)是什么語(yǔ)言開(kāi)發(fā)

    華為鴻蒙系統(tǒng)作為華為的備用方案,首先必須要考慮的就是兼容性和開(kāi)放性,這樣更加自由的Linux自然就是首選,由于Linux可以運(yùn)行在多種硬件平臺(tái)上,所以基于此開(kāi)發(fā)
    的頭像 發(fā)表于 07-11 10:51 ?7234次閱讀

    JavaScript JavaScript是什么語(yǔ)言

    JavaScript是屬于開(kāi)發(fā)Web頁(yè)面的腳本編程語(yǔ)言,是一種具有函數(shù)優(yōu)先的輕量級(jí)編程語(yǔ)言。JavaScript基于原型編程、多范式的動(dòng)態(tài)腳
    的頭像 發(fā)表于 07-27 15:41 ?6895次閱讀

    嵌入式為什么選擇C語(yǔ)言作為開(kāi)發(fā)語(yǔ)言?

    C語(yǔ)言作為開(kāi)發(fā)語(yǔ)言呢?一起了解一下。首先來(lái)說(shuō)這應(yīng)該是必然的吧,嵌入式開(kāi)發(fā)是在操作系統(tǒng)內(nèi)部做
    發(fā)表于 11-03 14:06 ?15次下載
    嵌入式為什么<b class='flag-5'>選擇</b>C<b class='flag-5'>語(yǔ)言</b><b class='flag-5'>作為</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>語(yǔ)言</b>?

    javascript語(yǔ)言的特點(diǎn)

    JavaScript是一種廣泛應(yīng)用于Web開(kāi)發(fā)的腳本語(yǔ)言,具有許多獨(dú)特的特點(diǎn)和優(yōu)勢(shì)。在本篇文章中,我將詳盡、詳實(shí)、細(xì)致地解釋JavaScript的特點(diǎn),讓你全面了解這門(mén)
    的頭像 發(fā)表于 12-03 11:31 ?1429次閱讀

    javascript規(guī)定了幾種語(yǔ)言類型

    和移動(dòng)應(yīng)用程序。JavaScript的靈活性和易用性使其成為開(kāi)發(fā)人員最喜愛(ài)的編程語(yǔ)言之一。本文將詳細(xì)介紹JavaScript的幾種語(yǔ)言類型。
    的頭像 發(fā)表于 12-03 11:37 ?1150次閱讀

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品