这是笔者鸿蒙扫盲系列的最后一篇了,准备对过去的六篇扫盲系列文章,错误的地方做一些勘误,并且补充更新一些朋友们感兴趣的知识,最后收个尾。
在鸿蒙系统扫盲(五):再谈鸿蒙开发用什么语言?中,有这样一句话
“而解释型语言的代表就是耳熟能详的C/C++、Rust,以及IOS应用的开发语言,Object-C、Swift等。”
这句话写错了,感谢LLLNg这位朋友的指出,上面说的几种,他们都是编译型语言,不是解释型语言,那时候想着解释型语言和编译型语言,手脑不统一,写错了,上面的几种语言,执行效率都非常高,所以不可能是解释性语言,特别勘误!
鸿蒙Next星河版发布,说了鸿蒙内核这个事,是自己研发的新内核,不是传统的Linux内核
发布会鸿蒙内核介绍
在笔者的文章:鸿蒙系统扫盲(四):鸿蒙使用的是微内核?中说到,目前L5级别的内核是还是Linux内核。可以推测出,华为内部已经开发出的鸿蒙内核,只是目前应该还没具备商用的程度,这个真的可以期待下!属于中国的完全的国产内核!
我们常说,看一个系统是不是真的自研,就看他们的内核,大部分所谓的自研系统,其内核都是Linux,外面套层壳包装下。如果鸿蒙Next连内核都可以完全替换的话,那是真正意义上的自研了,因为连安卓都是Linux套壳,作为中国人可以骄傲一把了!
笔者写了两篇文章来说鸿蒙应用开发的语言,也有很多朋友留言,大伙对ETS和TS可能还是有点迷糊,觉得可以深入的补充几点:
arkts语言和ts、js的关系
1)arkts是ts的超集,ts又是js的超集,不管是ts还是ets,最后都是通过编译成js,然后由鸿蒙系统执行。
2)arkts,又叫ets,在鸿蒙应用开发的目录中,可以看到ts和ets结尾的文件,就是项目的源代码,ets在ts的基础上,做了一些改进,除了上面能看到的声明式UI的支持外,还去除了运行时动态类型转换等耗时的操作,精简了ts。
鸿蒙应用开发的项目结构目录
3)关于多线程,js是单线程语言,但是实际开发过程中肯定要涉及多线程开发,所以有两种方式:
一种是woker模型(js调用到C++,由C++去开辟线程去做)
第二种就是,ets自己搞了一个套taskpool框架,弥补了js单线程的缺憾,关于这两个的区别,感兴趣的朋友可以去看下:OpenAtom OpenHarmony
taskpool介绍
4)最后一点,因为ets是ts超集的原因,ets可以引用ts的库,反过来就不行。所以在创建文件的时候,尽量定义成ets后缀名的文件,理清楚引用和从属关系。
这个大浪潮中,想转行鸿蒙开发的,或者想为国产自主系统做贡献的,一定都很好奇,鸿蒙开发到底支持哪几种语言?这也是网友们问的最多的一个问题?
目前鸿蒙应用开发支持的语言
从目前来看,比较推荐大家使用arkts和C++来联合开发,js不怎么推荐了,因为无法使用一些新的特性!
也有网友提问:C#为啥不能作为开发语言?
c#要运行在.net框架上,这个只有微软的系统用,linux内核没有相关官方的配套(民间的有),而且很重,不开源,原来对标的java,但是比java复杂,还有就是没法用声明式ui的语法写,实在想不出为啥要用它,以上只是个人观点,华为没用,咱也不知道为啥
关于仓颉语言:
这个能查到的公开资料非常少,我也不了解,目前来看,鸿蒙应用开发不支持仓颉。
扫盲系列到这里就结束了,下一篇文章准备整理一下现在的鸿蒙学习资料,有哪些比较好的学习路径呢?鸿蒙现在处于萌芽期,资料比较乱,也比较少,笔者也是希望用通俗易懂的语言,普及一下正确的知识,文中未尽之处,还请大家多多包涵!
希望对鸿蒙敢兴趣的朋友,点个收藏给个赞,你们的支持是我不断创作的动力,带来更多简单朴实正确的科技知识!