喜闻乐见,其实使用 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作为开发语言?相关推荐

  1. 鸿蒙os能支持c语言吗,再次确认华为鸿蒙OS系统采用C预言开发,流畅度相当ios

    华为鸿蒙OS系统,手机 App会用什么语言开发? 华为自研的鸿蒙操作系统也要用别人的语言,编程语言主要有汇编语言和高级语言,高级语言是大多编程者的选择,目前世界主流编程语言首选Java,其次是C.C+ ...

  2. 如何看待 Python (PyScript) 可以做浏览器前端开发语言?

    本次分享的内容:主要讨论在 PyCon US 2022[2] 上,由 Anaconda 发布的 PyScript[3] 技术.据说这项技术被 Anaconda 基于为 99% 的人带来编程这么宏伟的愿 ...

  3. 如何看待 Python(PyScript) 可以做浏览器前端开发语言?

    大家好,我是三十一[0],自上次更新 Nvidia 命令总结以来,期间

  4. JavaScript联网开发架构

    JavaScript联网开发架构 随 JavaScript 语言的流行,及物联网领域的崛起,我们能看到它们结合的可能性,同时也发现它特别适合于物联网开发.因此,在这篇文章里,笔者将主要从以下三个方面进 ...

  5. 物联网需要什么样的应用开发语言?

    目前来说,是没有一套专门面向物联网应用开发的语言的,这不利于推动物联网的大发展,因此,必须要选择一种适合物联网特点的开发语言.下面我们结合物联网本身的特征,分析物联网对应用开发语言的要求.然后感觉这些 ...

  6. 10.app后端选择什么开发语言

    在qq上,经常看到有创业团队的创始人一直都招不到技术人员,除了项目的因素外,很大的原因就是所需要掌握的开发语言偏门.通过阅读本文,详细了解选择开发语言的核心原则,使各位心里对开发语言的选择更加有数. ...

  7. 鸿蒙浏览器是华为,鸿蒙javascript项目开发----华为轻量级运动手表

    鸿蒙javascript项目开发----华为轻量级运动手表 鸿蒙javascript项目开发----华为轻量级运动手表 没有人能够熄灭满天星光 每一位开发者,都是华为要汇聚的星星之火 第一个javas ...

  8. 鸿蒙 OS:使用 JavaScript 开发 Todo App UI 界面

    距离鸿蒙 OS 2.0 发布已经过去一些日子了,看到鸿蒙系统强大的设备共享能力,我觉得未来它一定能够成为主流的操作系统.在利用了分布式系统的优势之后,多个设备间可以共享应用程序界面和数据,并且对于开发 ...

  9. [译] 新一代 JavaScript 的开发图谱(2017)

    本文讲的是[译] 新一代 JavaScript 的开发图谱(2017), 原文地址:A Map To Modern JavaScript Development 原文作者:Santiago de Le ...

最新文章

  1. Python 函数的可变参数(*paramter与**paramter)的使用
  2. python3 pycharm 断点调试 报错 greenlet.error: cannot switch to a different thread
  3. 关于angularjs dom渲染结束再执行的问题
  4. 网易云信助力长沙银行打造远程视频银行 | 字母点评数字化先锋案例
  5. LUT Utility for FCPX(Luts调色文件加载工具)支持M1
  6. 测试下微信公众号新功能
  7. Flex的事件(十四)
  8. 类加载器ClassLoader
  9. Putty工具包简单使用
  10. 二级公共基础知识_计算机二级选择题(公共基础知识)
  11. numpy—np.repeat、np.roll
  12. 博文视点大讲堂 37 期——It's Android Time :程序员创富有道!圆满结束
  13. jQuery、Ajax,DataTable数据如何转换成Json格式
  14. 2018 中国短视频开发者创意大赛震撼来袭,万元现金大奖邀你来战!
  15. Android 矢量图动画(完结篇)
  16. 解决Promise.all一个被rejected,整个都被rejected的缺陷
  17. 自动上传视频到B站和西瓜视频
  18. 开机显示输入最佳预设值_电脑显示输入最佳预设值并重新开机是什么意思
  19. MATLAB绘图基础01—复杂网络工具箱命令
  20. 如何在局域网中查看其他电脑上的文件

热门文章

  1. JCE(icecream用英语怎么说)
  2. 湖南安全职院•美和易思举办第一届卓越项目发布会
  3. iphone4s微信_如何通过USB在iPhone 4s上使用window8的PC互联网
  4. 一加6 避免 crashdump mode win11
  5. asp.net教师好助手考试系统源码
  6. 详细讲解磁盘及文件系统管理(图例解析)
  7. 【安全扶梯毛刷】的种类和适用范围小知识
  8. 铁道内部人士称12306购票网站崩溃因运力不足
  9. oracle最强大函数之一decode函数的使用
  10. 喝茶让你降三高之“桑玉茶”