0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙系统为什么会选择JavaScript 作为应用开发语言

鸿蒙系统HarmonyOS 来源:程序员客栈 作者:开发者全社区 2021-03-30 16:11 次阅读

喜闻乐见,其实使用 JavaScript 作为应用开发语言并不是第一家,比如 JerryScript 就是为了三星自家的 IoT 手表开发的,国产 RT Thread 也用了 JS 做 GUI,还有 MongooseOS 也是一套 JavaScript 的操作系统,当然还有我最喜欢的 YodaOS 也是基于 JavaScript 的。

前端(广义前端)

前端(广义前端)应用编程语言这个生态位目前就那么几种语言: Javascript/TypeScript、Java、OC、Kotlin、Swift.、Dart, 先不说其他因素,日中后四个都是单个商业公司控制的,你说鸡蒙拿来用0k不ok呢? Java虽然有ICP,但Oracle.。。你懂的。所以选择JS简直是必然的,(顺便,华为在2019年12月成为Ecma标准组织成员,并加入了门TC39——JS标准委员会。

鸿蒙

鸿蒙作为个正在全新的系统, 定位的目标是要在多种场景多种设备上运行。

一个全新的系统,需要得到足够多的开发者支持资源,那么需要对开发者友好,需要谨慎选择,什么样的开发语言受众最多?

什么样的开发语言能支持在多种设备多种场景下面运行?

我们不难分析出java和javascrip是相对比较好的选择,毕竟这两大操作语言有足够的开发者,开发者不需要再去学习一门新的语言,降低了开发者的成本,更容易得到开发者支持。

那为什么是javascript呢?

java语言已经被安卓广泛使用,如果坚持选择java的话,那么和安卓很难拉开差距,可能一不小心就走到安卓的老路上去了,另外,一个熟悉java的开发者,一个熟悉安卓的开发者,放弃成熟的安卓生态不玩,为什么要来陪个各种不确定各种都不清楚的全新系统玩?

对自己有什么好处?

毕竟开发者是要恰饭的,没有收益甚至短期内看不到收益的话,靠热情是很难维持的。

相比javascript来看,就要好的多,首先javascript语言还没有 个成熟的软件生态支持,最重要的是javascript语言有足够多的开发者,基本上传统的页面开发者都能写些javascript的代码,至少开发者基数够大。

拥有了强大的开发者基数资源,再加上对于一个迟迟没有平台生态兑现的语言,此时华为鸿蒙如果能给出个类似苹果安卓的方案,那么将会得到大量熟悉的javascript开发者支持,毕竟他们已经期盼好久,看着java,看着OC语言,它们都有了前途,而javascript还没有 一个生态让他们来发光发热获取收益。

开发者

开发者可能会因为一种新的生态时冲动进入这个市场,而能让开发者坚持留下来的还是要生态本身强大,能赚到钱,一个能让开发者赚到钱的生态不在乎使用什么语言,哪怕语言再难学,只要利益足够大,学的人都会蜂拥而至但是如果赚不到钱, 看不到收益,那就前途未卜了。

是时候该学习javascript了。

缺陷

当然,JS也有些缺陷。而日等虑现在各移动平台除了之外也都有自的饮定语言,所以长远看,(光使用) J5对于鸿蒙可能是不够的。鸿蒙在大内存设备(如号)上应会支持Java,但战略上我认为平台必须要有自研语言。而且方舟编译器和MaplelR的特点就是多语言联台编译,所以华为完全可能会出自研语言,让象同时支持5 lava和传言中的 0面」。如果仅仅考悦的需求,我个人实际上是比较倾向于我剪JS/TS的语义和语法来做一个高效的可直接编评到native的语言,不过从一些传闻来看,「仓板」 可能不像TS而更类似Swift。

鸿蒙作为个正在全新的系统, 定位的目标是要在多种场景多种设备上运行。

一个全新的系统,需要得到足够多的开发者支持资源,那么需要对开发者友好,需要谨慎选择,什么样的开发语言受众最多?

什么样的开发语言能支持在多种设备多种场景下面运行?

我们不难分析出java和javascrip是相对比较好的选择,毕竟这两大操作语言有足够的开发者,开发者不需要再去学习一门新的语言,降低了开发者的成本,更容易得到开发者支持。

支持

支持 JS 的原因,JS 是浏览器界的汇编语言,而浏览器目前有成为第一大人机交互接口的趋势。

1.JS 生态圈目前来看形式很好,未来也是第一梯队。

2.JS 语言发展迅速,开源社区支持广泛,上手入门门槛远低于 Java 和 Native 语言。后期希望可以原生支持 TypeScript

3.JS + WebAssembly 性能还是不错的,未来如果能加上 V8 速度会更快,不知道华为未来是否有能力自己做一个 VM 支持 WebAssembly

4. Write once,run everywhere。目前来看是对 JS + WebAssembly 最好的描述。

作为一个热爱JavaScript的曾经的程序员,我当然支持鸿蒙采用JavaScript作为开发语言,我还不了解细节,但是我估计JavaScript是被作为应用层面的编程语言来使用,换句话说,记忆鸿蒙平台来开发应用,你可以用JavaScript,但是,如果你要做一些底层的开发,你可能还需要用其他编程语言。

为什么这样呢?

因为JavaScript就是为了『应用开发』而设计的,不是为了『底层开发』而设计的。

举个简单例子,JavaScript语言本身没有线程(Thread)的概念(Chrome的worker不是语言特性),我知道很多人都诟病这一点,但是,我一直认同JavaScript就不该有线程,因为JavaScript是用来开发应用的,一个应用开发者为什么要知道线程的存在呢?

对于很多本身有线程概念的编程语言,实际上诱惑了程序员去玩线程这种潘多拉魔盒,千万不要觉得自己会线程就牛逼了呀,很多人把线程玩拉胯了!

如果你现在用Windows上的Outlook,把Outlook关闭再重新打开,用任务管理器看一下Outlook占多少个线程,至少几十个,也就是说,Outlook什么都不敢都有几十个线程存在,每个线程还要维持自己的stack,这……不是玩拉胯了是什么?

JavaScript坚持自己是一个为了『应用开发』的语言,不是一个全能语言,所以才能繁荣昌盛这么久。

这就是我的一点看法。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    19

    文章

    2903

    浏览量

    102867
  • javascript
    +关注

    关注

    0

    文章

    507

    浏览量

    53379
  • 鸿蒙系统
    +关注

    关注

    183

    文章

    2594

    浏览量

    65127
收藏 人收藏

    评论

    相关推荐

    鸿蒙系统优缺点,能否作为开发选择

    星河版已经是纯血鸿蒙,但是它的发展一些周期。生态圈的建立难度大,各大厂商加入鸿蒙原生开发需要时间累积。 鸿蒙开发人才空缺,由于
    发表于 02-16 21:00

    想做web开发,就学JavaScript吗?

    相对容易给出来:学习JavaScript。四周看看,曾经低端的浏览器脚本语言现在变得随处可见,从服务器端到客户端,每天好像有更多的选择。出身低微我记得数年前投入web开发,学习了HTM
    发表于 12-09 15:34

    鸿蒙适配APP要用什么开发语言?!

    开发鸿蒙的应用要用什么开发语言?Java?C++?JavaScript?
    发表于 09-11 11:55

    为什么会选择C语言作为开发语言

    C语言作为开发语言呢?一起了解一下。首先来说这应该是必然的吧,嵌入式开发是在操作系统内部做
    发表于 11-08 09:05

    请问如何选择鸿蒙App开发的编程语言

    如何选择鸿蒙App开发的编程语言
    发表于 04-13 11:15

    JavaScript语言基础

    JavaScript关键字(Reserved Words)是指在JavaScript语言中有特定含义,成为JavaScript语法中一部分的那些字。
    发表于 04-03 16:58 8次下载

    要成为鸿蒙开发者,应该学习哪些编程语言

    据了解,鸿蒙系统是基于Linux开发的,源码是C语言。那么,作为一名开发者,如何帮助
    的头像 发表于 09-24 12:06 1.2w次阅读

    鸿蒙2.0操作系统采用JavaScript作为开发语言 可看出JS生态圈未来形势很好

    华为发布鸿蒙2.0操作系统,该系统应用开发框架采用JavaScript作为
    的头像 发表于 09-27 15:00 4655次阅读

    鸿蒙系统用什么语言开发

    华为鸿蒙系统作为华为的备用方案,首先必须要考虑的就是兼容性和开放性,这样更加自由的Linux自然就是首选,由于Linux可以运行在多种硬件平台上,所以基于此开发
    的头像 发表于 06-28 11:22 3973次阅读

    鸿蒙系统用的什么语言开发

    鸿蒙系统用的什么语言开发的?华为的鸿蒙操作系统正式发布已经过去了将近一个月的时间,相信很多用户朋
    的头像 发表于 07-07 09:48 7898次阅读

    鸿蒙系统是什么语言开发

    华为鸿蒙系统作为华为的备用方案,首先必须要考虑的就是兼容性和开放性,这样更加自由的Linux自然就是首选,由于Linux可以运行在多种硬件平台上,所以基于此开发
    的头像 发表于 07-11 10:51 6079次阅读

    JavaScript JavaScript是什么语言

    JavaScript是属于开发Web页面的脚本编程语言,是一种具有函数优先的轻量级编程语言JavaScript基于原型编程、多范式的动态脚
    的头像 发表于 07-27 15:41 5981次阅读

    嵌入式开发为什么选择C语言作为开发语言

    了解嵌入式开发的朋友们都非常的清楚其核心的开发语言为C语言,C语言在嵌入式开发的过程中占有十分重
    发表于 11-03 09:21 17次下载
    嵌入式<b class='flag-5'>开发</b>为什么<b class='flag-5'>选择</b>C<b class='flag-5'>语言</b><b class='flag-5'>作为</b><b class='flag-5'>开发</b><b class='flag-5'>语言</b>?

    嵌入式为什么选择C语言作为开发语言

    C语言作为开发语言呢?一起了解一下。首先来说这应该是必然的吧,嵌入式开发是在操作系统内部做
    发表于 11-03 14:06 15次下载
    嵌入式为什么<b class='flag-5'>选择</b>C<b class='flag-5'>语言</b><b class='flag-5'>作为</b><b class='flag-5'>开发</b><b class='flag-5'>语言</b>?

    javascript规定了几种语言类型

    和移动应用程序。JavaScript的灵活性和易用性使其成为开发人员最喜爱的编程语言之一。本文将详细介绍JavaScript的几种语言类型。
    的头像 发表于 12-03 11:37 429次阅读