冬雨财经 发表于 2024-6-13 20:51:23

鸿蒙体系扫盲(三):鸿蒙开发用什么语言?

1.两种开发方向

我们常说鸿蒙开发,但是其实鸿蒙开发分为两个方向:
一个是体系级别的开发,比如驱动,内核和框架层的开发,这种开发以C/C++为主
另有一个是应用级别的开发,在API7以及以下,还是支持Java的,从API8开始,只能用Arkts,js或着C++开发了,我们这篇文章重点讲下应用级别的开发。
2.鸿蒙应用开发

和安卓应用和IOS应用开发一样,鸿蒙体系也需要运行对应的生态应用,才能发达发展,通过官方的DevEco的SDK Manager可以看到
https://img-blog.csdnimg.cn/direct/1b989ca984d04bf09d56ce9fd311c7b9.png
从API8开始,Java语言已经从鸿蒙开发剔除了,而官方保举的是ArkTs,那门ArkTs到底什么,它和js和ts有什么关系呢?
https://img-blog.csdnimg.cn/direct/b3cbdcd88342499db66c619275c0f8b1.png
简朴来说,是个arkTs 是TS的超集,TS是JS的超集,每个都基于前者,而且在这个基础上做了一些自己的拓展。
https://img-blog.csdnimg.cn/direct/ed71f64219f841d3a8b17ac4009d4f4c.png
PS:多说一句,ArkTs愿来叫ETS,所以两者是一个东西,可以看到鸿蒙的工程文件,都是以ets和ts结尾的,而在开源鸿蒙代码里面,还是有很多js_xxx.cpp文件,所以末了还是通过编译器编译成js,通过类似于jni(他们叫napi)的东西,调用到C++层面。
3.为什么舍弃Java

其实这个标题,我也思考了很久,但是官方没有一个说法,大胆推测下有两个原因:
1)就像Android抛弃Java一样,怕倒时候被人告,陷入官司风波中(感爱好的朋友可以搜索,甲骨文诉讼谷歌Java侵权之案,这里不赘述)
2)Java是一门表明性语言,必须跑JVM,就像负重跑一样,一定低沉体系的流畅性,这也是Android卡的原因之一,体系完全抛弃JVM,从布局上就自然流畅多了
当然大概另有一种大概,告诉各人我都不支持Java开发了,你们不能再说我安卓套壳了吧!
4.为什么选择ets

arkUI用的是声明式的写法(如今不管是Android新出的compose还是Flutter都是这种写法),目前的js和ts不支持,还是只能用以前那种过程式的写法,至于C++纯写,C++是一门门槛比力高的语言,不适合一般开发者。
arkTS是基于TS的,TS是微软一门完全开源的语言,没有版权标题,也有一定的前端开发者。
基于上述两个原因,官方保举用arkTS比力符合。
总结:

鸿蒙经过几年的迭代,抛弃了Java,基于TS出了一个官方保举的ArkTS语言,甩开了JVM,提拔效率,同时支持自己研发的一些现代化特性,没有版权的标题,如今唯一的标题就是各大公司愿不乐意为它去适配生态了,还好的是,目前各大互联网公司已经开始适配了。
后续:

感谢一些朋友的提问和指正,后面又写了一篇作为本篇文章的补充:鸿蒙体系扫盲(五):再谈鸿蒙开发用什么语言?

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 鸿蒙体系扫盲(三):鸿蒙开发用什么语言?