前面简单介绍了鸿蒙OS官方支持的三种主流语言,对于大多数开发来说,一般是选择自己熟悉的开发语言。一些人也会基于“最佳实践”原则,选择使用人数最多的语言。
三种语言在移动操作系统时代的优缺点如下:
语言 | 优点 | 缺点 |
---|---|---|
Java | 使用最广泛的语言,无论是PC端还是移动端,且在Android项目上取得了成功 | 不擅长做界面开发,虚拟机,JNI也一直被诟病 |
JavaScript | 学习门槛低,使用简单,发展迅猛,大前端方向的趋势 | 性能不如Java与C++,不擅长数据处理,语法随意导致程序强壮性不够 |
C++ | 运行效率高 | 不适合做界面开发,且开发难度远远大于以上两种 |
从早期和目前的情况来看,选择Java语言作为移动时代的主语言最多,但鉴于Java的不完美以及可能存在的法律风险,Java语言的可代替方案也越来越多,如Kotlin语言,Dart语言,以及JavaScript。
JavaScript作为一个浏览器运行的脚本语言,通过浏览器或者原生APP内的WebKit可以同时运行在iOS,Android之上,具有极大的便利性。随着手机性能的提升,JavaScript作为脚本语言执行效率低下的缺点不在明显。同时各大厂商的小程序和轻应用也不约而同的选择了JavaScript语言作为开发语言,目前的发展势头非常迅猛。
C++作为三种运行效率最高的语言,一般适合于底层系统的开发,如视频图像处理,或者对于执行效率特别高的APP,非特殊场合一般不选择C++。
鸿蒙官方给的Demo使用的语言多数为Java,这可能是早期鸿蒙生态不完善,很多App需要从Android操作系统移植鸿蒙OS,对于同样使用Java语言开发的鸿蒙App,移植工作量更小,在不添加鸿蒙新特性的情况下,鸿蒙OS是可以直接运行Android系统的App。
对于轻量级的App,选择JavaScript语言也是一个不错的选择,JavaScript语言在跨平台开发App方面有着较大的优势,同时在UI开发方面,也是Java不可比拟的,在外部框架的支持下,JavaScript语言开发的App可以同时运行在多个平台上,大大减少了开发和维护的工作量。
对于经验丰富的移动开发者来说,可以选择自己熟悉和擅长的语言,也可以选择混合模式,使用不同语言的特点,制定适合自己的开发方案。附上TIOBE编程语言排行榜(图4-1 数据来源https://www.tiobe.com/),帮助大家选择。
混合开发的支持
鸿蒙OS的开发工具DevEco Studio,不仅仅支持JavaScript,Java,C++的开发,而且还可以很好的支持多种语言混合开发。对于新手来说,建议使用Java语言开发,语言单一,学习成本较低。对于一个同时熟悉Java和JavaScript的工程师,利用好混合开发的特性,可以减少不少开发的工作量和调试难度。
在UI框架层面,鸿蒙OS提供了Java UI和JS UI两种框架,相对来说,JS UI框架在开发布局等方面更简单,Flex布局在前端开发领域广受欢迎。同时JS UI在画面预览方面比Java UI有着更大的优势,所见即所得的画面UI可以提高不少开发效率。所以在开发UI层面,可以考虑JS UI框架。
但是目前阶段,鸿蒙提供的 Java API 的功能比 JS API 的功能要强大,一些功能的实现还需要Java API,如Data Ability,Service Ability等,所以在开发过程中无法避免的必需使用Java语言。
在Android 和iOS的开发中,也存在着原生语言与JS混编的情况,JS运行在Webkit内核中,与原生交互则通过开发者编写Bridge来实现桥接通讯。鸿蒙OS则比较完善的提供了两者的通讯API,大大减少了开发者使用混合开发的难度。通过Java 和JavaScript的混编,可以发挥不同语言的优势。