HarmonyOS 鸿蒙Next开发 Java 与 ArkTS 如何抉择
HarmonyOS 鸿蒙Next开发 Java 与 ArkTS 如何抉择 在 “鸿蒙系统实战短视频 App 从 0 到 1 掌握 HarmonyOS” 视频课程中,很多学员来问我,在 HarmonyOS 开发过程中,面对 Java 与 ArkTS,应该选哪样?
本文详细分析 Java 与 ArkTS 在 HarmonyOS 开发过程的区别,力求解答学员的一些困惑。
何为 HarmonyOS?
在讨论语言的差异时,我们先了解下什么是 HarmonyOS。华为官方是这么解释 HarmonyOS 的:
“鸿蒙操作系统”特指华为智能终端操作系统。“鸿蒙操作系统”具有以下三大特征:
一是一套操作系统可以满足大大小小设备需求,实现统一OS,弹性部署;
二是搭载该操作系统的设备在系统层面融为一体、形成超级终端,让设备的硬件能力可以弹性扩展,实现设备之间硬件互助,资源共享;
三是面向开发者,实现一次开发,多端部署。
HarmonyOS 就是 “鸿蒙操作系统” 的英文名,也简称为 “鸿蒙 OS”,是基于 OpenHarmony、AOSP 等开源项目的商用版本。
这里需要注意:
- 一是 HarmonyOS 不是开源项目,而是商用版本。
- 二是 HarmonyOS 手机和平板之所以能运行 Android 程序,是因为 HarmonyOS 实现了现有 Android 生态应用(即 AOSP)的运行。
详细参见我的另外一篇文章《一文搞懂什么是鸿蒙、OpenHarmony、HarmonyOS》。
当然,HarmonyOS 的志愿远非如此,未来有可能会完全剥离掉 AOSP(详见 HarmonyOS Next 项目),当然,其结果必然是不再兼容 Android,无法在 HarmonyOS 上运行 Android 程序。
何时发布 HarmonyOS Next?
在今年的 HDC 2023 上,华为宣布了 HarmonyOS NEXT 开发者预览版。开发者如果想体验到 HarmonyOS NEXT,估计要等到明年的第一季度。
HarmonyOS NEXT 除了剥离掉 AOSP 之外,可能是完全只使用自家的 LiteOS 内核。
HarmonyOS 编程语言的发展
前面铺垫了这么多,最终是为了回归到 “编程语言” 这个话题上来。HarmonyOS 的编程语言的发展,是随着 HarmonyOS 的发展而演进的。
早期的 HarmonyOS 支持的开发语言包括 JS(JavaScript)、C/C++。其中,JS 主要用于应用开发,而 C/C++ 主要用于设备开发。因为,早期的 HarmonyOS 只支持手表等智能穿戴设备,所以,用 JS 是能够胜任的。
从 HarmonyOS 2 开始,HarmonyOS 开始兼容 Android,引入了 Java 开发语言,能够支持手机、平板、智能穿戴、智慧屏、车机、PC、智能音箱、耳机、AR/VR 眼镜等多种终端设备,提供全场景(移动办公、运动健康、社交通信、媒体娱乐等)业务能力。此时的 HarmonyOS 才算真正意义上的 “鸿蒙操作系统”,因为已经具有 “鸿蒙操作系统” 的三大特征。
从 HarmonyOS 3 开始,引入了华为自研的 ArkTS 开发语言(前身是 eTS)、方舟编译器等。ArkTS 基于 TypeScript(简称 TS)语言扩展而来,是 TS 的超集。其最大的亮点是,ArkTS 在 TS 基础上主要扩展了声明式 UI 能力(即 ArkUI),让开发者以更简洁、更自然的方式开发高性能应用。
但比较遗憾的是,直到 HarmonyOS 4,ArkTS 开发语能实现的功能还是比较有限。甚至无法兑现 “鸿蒙操作系统” 三大特征的承诺。具体表现为
- 不支持多设备,只支持 “Phone”;
- 没有相机等功能的开发;
- 没有平行视界;
- 没有 AI 功能;
- 没有流转、跨端迁移和多端协同;
- 等等。
总之,ArkTS 现阶段上能实现的功能还不如 Java 强大。
HarmonyOS 编程语言的选择
在了解上述 HarmonyOS 编程语言的区别之后,相信各位对于 HarmonyOS 编程语言的选择有了自己的判断能力。学员可以综合考虑以下几个方面。
1、个人的偏好
开发者对于编程语言是有一定的偏好的,选 ArkTS 或是 Java 也是可以尊重个人的喜好。
如果你熟悉 Java 或者 Android 则可以选 Java;如果你熟悉 JS 或者 TS,就可以选 ArkTS。
2、职业的需要
如果想要实现一个强大的完整的 HarmonyOS 应用功能,那么现阶段只有 Java 能做到。ArkTS 还处在初级阶段。
如果你是纯粹想学习一门新语言,想不断跟随语言的演进,那么 ArkTS 也是不错的选择。从未来发展上看,HarmonyOS NEXT 有可能会将 ArkTS 作为主力开发语言。
3、我个人的选择
对于我个人而言,不做选择题,我全要,因为我个人职业决定了。Java 是我司以及大多数互联网公司的主力开发语言。无论是后台、前端、还是移动开发,Java 都能胜任大部分工作。所以学一门语言,能够解决公司项目里面大部分的问题,何乐而不为呢?
其次,ArkTS 也是目前我正在使用的语言。因为我平时也有使用 Vue.js 3、Angular,因此对于 TS 还是比较熟悉,上手 ArkTS 并不困难。在我的开源系列教程 “跟老卫学 HarmonyOS 开发” 里面,很多示例都是采用 ArkTS、ArkUI 编写的。
更多 HarmonyOS 参考资料
以下是笔者编写的一些学习资料,可以作为参考:
- 《跟老卫学 HarmonyOS 开发》 开源免费教程:https://github.com/waylau/harmonyos-tutorial
- 《鸿蒙 HarmonyOS 手机应用开发实战》(清华大学出版社):https://waylau.com/about-harmonyos-mobile-application-development-book/
- 《鸿蒙 HarmonyOS 应用开发从入门到精通战》(北京大学出版社):https://github.com/waylau/harmonyos-tutorial
- “鸿蒙系统实战短视频 App 从 0 到 1 掌握 HarmonyOS” :https://coding.imooc.com/class/674.html
笔者另外一本全新基于 HarmonyOS 3.1、采用 ArkTS 编写的书籍《HarmonyOS 应用开发入门》也将会清华大学出版社出版,近期将会面市。对 ArkTS 感兴趣的同学,可以关注下。
其他
本文同步至:https://waylau.com/how-to-choose-between-java-and-arkts-in-harmonyos-development
更多关于HarmonyOS 鸿蒙Next开发 Java 与 ArkTS 如何抉择的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next开发中,Java和ArkTS是两种主要的开发语言。Java是传统的开发语言,而ArkTS是鸿蒙系统推出的新型开发语言,基于TypeScript,专为鸿蒙生态设计。选择Java还是ArkTS,主要取决于项目需求和开发团队的熟悉程度。如果项目需要快速适配现有Java代码或团队对Java更熟悉,可以选择Java。如果项目需要充分利用鸿蒙系统的特性,如分布式能力、高性能等,或者团队愿意学习新技术,ArkTS是更优选择。ArkTS在鸿蒙生态中具有更好的兼容性和性能优化,适合长期在鸿蒙平台上发展的项目。
更多关于HarmonyOS 鸿蒙Next开发 Java 与 ArkTS 如何抉择的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next开发中,选择Java还是ArkTS取决于项目需求和开发效率。Java适合已有Java代码库或需要与Android生态兼容的项目,而ArkTS是鸿蒙原生推荐语言,提供更好的性能和开发体验,特别适合新项目或需要深度集成鸿蒙特性的应用。建议优先考虑ArkTS,以充分利用鸿蒙系统的优势。