如何看待鸿蒙应用开发框架采用JavaScript作为开发语言?
喜闻乐见,其实使用 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」,即可免费获取!!
如何看待鸿蒙应用开发框架采用JavaScript作为开发语言?相关推荐
- 鸿蒙os能支持c语言吗,再次确认华为鸿蒙OS系统采用C预言开发,流畅度相当ios
华为鸿蒙OS系统,手机 App会用什么语言开发? 华为自研的鸿蒙操作系统也要用别人的语言,编程语言主要有汇编语言和高级语言,高级语言是大多编程者的选择,目前世界主流编程语言首选Java,其次是C.C+ ...
- 如何看待 Python (PyScript) 可以做浏览器前端开发语言?
本次分享的内容:主要讨论在 PyCon US 2022[2] 上,由 Anaconda 发布的 PyScript[3] 技术.据说这项技术被 Anaconda 基于为 99% 的人带来编程这么宏伟的愿 ...
- 如何看待 Python(PyScript) 可以做浏览器前端开发语言?
大家好,我是三十一[0],自上次更新 Nvidia 命令总结以来,期间
- JavaScript联网开发架构
JavaScript联网开发架构 随 JavaScript 语言的流行,及物联网领域的崛起,我们能看到它们结合的可能性,同时也发现它特别适合于物联网开发.因此,在这篇文章里,笔者将主要从以下三个方面进 ...
- 物联网需要什么样的应用开发语言?
目前来说,是没有一套专门面向物联网应用开发的语言的,这不利于推动物联网的大发展,因此,必须要选择一种适合物联网特点的开发语言.下面我们结合物联网本身的特征,分析物联网对应用开发语言的要求.然后感觉这些 ...
- 10.app后端选择什么开发语言
在qq上,经常看到有创业团队的创始人一直都招不到技术人员,除了项目的因素外,很大的原因就是所需要掌握的开发语言偏门.通过阅读本文,详细了解选择开发语言的核心原则,使各位心里对开发语言的选择更加有数. ...
- 鸿蒙浏览器是华为,鸿蒙javascript项目开发----华为轻量级运动手表
鸿蒙javascript项目开发----华为轻量级运动手表 鸿蒙javascript项目开发----华为轻量级运动手表 没有人能够熄灭满天星光 每一位开发者,都是华为要汇聚的星星之火 第一个javas ...
- 鸿蒙 OS:使用 JavaScript 开发 Todo App UI 界面
距离鸿蒙 OS 2.0 发布已经过去一些日子了,看到鸿蒙系统强大的设备共享能力,我觉得未来它一定能够成为主流的操作系统.在利用了分布式系统的优势之后,多个设备间可以共享应用程序界面和数据,并且对于开发 ...
- [译] 新一代 JavaScript 的开发图谱(2017)
本文讲的是[译] 新一代 JavaScript 的开发图谱(2017), 原文地址:A Map To Modern JavaScript Development 原文作者:Santiago de Le ...
最新文章
- Python 函数的可变参数(*paramter与**paramter)的使用
- python3 pycharm 断点调试 报错 greenlet.error: cannot switch to a different thread
- 关于angularjs dom渲染结束再执行的问题
- 网易云信助力长沙银行打造远程视频银行 | 字母点评数字化先锋案例
- LUT Utility for FCPX(Luts调色文件加载工具)支持M1
- 测试下微信公众号新功能
- Flex的事件(十四)
- 类加载器ClassLoader
- Putty工具包简单使用
- 二级公共基础知识_计算机二级选择题(公共基础知识)
- numpy—np.repeat、np.roll
- 博文视点大讲堂 37 期——It's Android Time :程序员创富有道!圆满结束
- jQuery、Ajax,DataTable数据如何转换成Json格式
- 2018 中国短视频开发者创意大赛震撼来袭,万元现金大奖邀你来战!
- Android 矢量图动画(完结篇)
- 解决Promise.all一个被rejected,整个都被rejected的缺陷
- 自动上传视频到B站和西瓜视频
- 开机显示输入最佳预设值_电脑显示输入最佳预设值并重新开机是什么意思
- MATLAB绘图基础01—复杂网络工具箱命令
- 如何在局域网中查看其他电脑上的文件