如何看待鸿蒙应用开发框架采用JavaScript作为开发语言?-程序员宅基地

技术标签: java  jni  编程语言  人工智能  软件开发  

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

 前端(广义前端) 

1

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

JS标准委员会。

 鸿蒙

2

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

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

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

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

 

那为什么是javascript呢? 

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

对自己有什么好处?

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

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

 

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

 开发者 

3

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

是时候该学习javascript了。

 缺陷

4

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

 

●●●

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

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

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

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

 支持

5

支持 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坚持自己是一个为了『应用开发』的语言,不是一个全能语言,所以才能繁荣昌盛这么久。

这就是我的一点看法。

祝JavaScript随着鸿蒙再一次大放光彩吧。

  开发者全社区 

5T技术资源大放送!包括但不限于:Android,Python,Java,大数据,人工智能,AI等等。关注公众号后回复「2T」,即可免费获取!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xhmj12/article/details/108744092

智能推荐

筷云解读企业上云:为什么上云?选什么上云?_企业上云和用户上云啥意思-程序员宅基地

文章浏览阅读611次。近段时间,大家都在说企业上云,那么到底什么是企业上云?企业为什么要上云?应该怎么上呢?在新旧动能转换的关键时期,企业上云的确是可以驱动流程创新和业务创新,成为企业新的利润增长点。筷云作为国内知名的互联网生态体系构建者,以云服务为核心,赋能数字经济为使命,在助力企业上云方面有着丰富的经验。企业上云是什么?企业上云是指企业通过网络,将企业的基础设施、管理及业务部署到云端,利用网络便捷..._企业上云和用户上云啥意思

node、 node-sass 和sass-loader的版本对应问题_node-sass 版本-程序员宅基地

文章浏览阅读2.1k次。错误产生原因:node、 node-sass 和sass-loader的版本对应问题。_node-sass 版本

Java中的静态和非静态(有代码实例,超详细!)_java 静态-程序员宅基地

文章浏览阅读1.8k次,点赞10次,收藏39次。静态变量和方法是属于类的,而不属于类的实例或对象。它们可以通过类名直接访问,不需要创建对象。因此,静态成员常常用于描述与类本身有关的信息,比如常量、工具方法等。例如,Math类中的PI常量和abs()方法都是静态的。非静态变量和方法则是属于类的实例或对象的。它们必须依赖于对象的状态,才能进行相应的操作。因此,非静态成员常常用于描述类的实例状态,比如具有不同属性的学生或员工对象。例如,一个Person类中的name和age变量就是非静态的。_java 静态

关于tecplot动画的制作_tecplot动图-程序员宅基地

文章浏览阅读1.2w次。原文地址:关于tecplot动画的制作作者:Cherry参考文献一:http://hi.baidu.com/zhaoyj_111/blog/item/7939c318bb71e37cdab4bdbe.htmltecplot——画等高线和做动画的流程2008-10-10 11:22 Tecplot构筑结构网格有两种方式:point format和blockformat。_tecplot动图

在Ubuntu16.04中安装nvidia驱动_nvlink ubuntu-程序员宅基地

文章浏览阅读918次。对于双显卡(intel集显 + nvidia独显)的电脑,安装windows10和ubuntu 双系统时,往往会因为ubuntu中缺少 nvidia 驱动而出现各种启动问题。本文讲述的就是在ubuntu16.04上安装nvidia驱动,来解决前面提到的问题。第一步:从英伟达(nvidia)官网上下载相应的驱动文件,文件后缀名为.run。我的电脑是联想小新的,快捷键要在同时按下 键盘上的 Fn 键..._nvlink ubuntu

ubuntu使用docker_ubuntu进入docker-程序员宅基地

文章浏览阅读4.2k次,点赞2次,收藏4次。docker是一个用Go语言实现的开源项目,可以让我们方便的创建和使用容器,docker将程序以及程序所有的依赖都打包到docker container,这样你的程序可以在任何环境都会有一致的表现。_ubuntu进入docker

随便推点

用户画像步骤_如何通过20个步骤破坏良好的用户体验-程序员宅基地

文章浏览阅读1.5k次。每天我们都会访问几个新的或熟悉的站点,并遇到一些不同的体验。 有时候,您可能会感到愉快而普通,但是如果不幸的话,您会获得彻头彻尾的糟糕经历。 是什么使一种体验比另一种体验更好? 网站不一定是出色设计的巅峰之作。 它的信息不必比维基百科更多; 良好的用户体验是它所需要的(并且不要低估这有多困难) 。 现在要开发一个简单明了的用户体验,需要花费大量的工作-如果没有,那么像Apple这样..._优雅地失败 web

【前端基础小案例】HTML+CSS实现酷狗音乐热榜效果_酷狗音乐html和css代码-程序员宅基地

文章浏览阅读3k次,点赞11次,收藏67次。超级简单的案例_酷狗音乐html和css代码

【水声通信】OFDM-QPSK水声通信仿真(含误码率检测)【含Matlab源码 3954期】_水声相控阵仿真-程序员宅基地

文章浏览阅读786次,点赞20次,收藏21次。OFDM-QPSK水声通信仿真(含误码率检测)完整的代码,方可运行;可提供运行操作视频!适合小白!_水声相控阵仿真

Android中Editext响应回车键事件_android edittext 回车事件-程序员宅基地

文章浏览阅读182次。Editext 按键响应回车事件事件。_android edittext 回车事件

iSCSI存储系统知识详解_iscsi目前发展状况-程序员宅基地

文章浏览阅读1.1w次,点赞4次,收藏25次。原文:https://community.emc.com/docs/DOC-33815SCSI 即 小型计算机系统接口 。小型计算机系统接口(英语:Small Computer System Interface; 简写:SCSI),一种用于计算机和智能设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。SCSI是一种智能的通用接口标准。它是各种计算机与外部_iscsi目前发展状况

C# 不能引用命名空间_hybridclr 引用不了c#的命名空间-程序员宅基地

文章浏览阅读701次。C# 不能引用命名空间_hybridclr 引用不了c#的命名空间

推荐文章

热门文章

相关标签