再聊聊鸿蒙
内容提要
该文章讨论了鸿蒙操作系统的问题和感悟,包括选择JavaScript作为开发语言的原因,鸿蒙的开发效率和MVVM架构,API的选择以及对华为官方的期望。
延伸解读
语言选择的背后逻辑
文章指出,鸿蒙选择JavaScript(ArkTs)而非Java/Kotlin,主要原因是Java版权问题,而非技术生态优势。作者认为Java/Kotlin在移动端生态更好,且实际转型鸿蒙的多是安卓开发者。ArkTs基于JavaScript却试图引入强类型,给前端和移动端开发者都带来理解障碍。这提示读者,技术选型常受非技术因素影响,开发者需适应现实。
开发效率的提升与代价
鸿蒙的声明式UI和状态管理实现了自然的MVVM,UI开发效率远高于Android View体系。View不持有状态,仅根据VM数据渲染,VM处理业务逻辑。但作者也指出,ArkTs的强类型约束和语法限制可能增加学习成本,尤其对习惯动态类型的前端开发者。效率提升的背后,是开发思想的转变和适应成本。
API升级的变与不变
从API 9到API 11,鸿蒙的整体架构和核心思想没有太大差异,主要变化在于ArkTs语法的编译期检查增强了强类型查看。如果之前代码写得随意,可能需要花精力修改。作者认为,没有最新API也可以上手,并建议参考OpenHarmony的适配规则。这有助于缓解开发者对版本跨度的焦虑。
给开发者的学习建议
对于未接触过JavaScript的移动端开发者,作者建议阅读《JavaScript高级程序设计》的第3、8、11章,以掌握语言基础、对象与异步编程。因为官方ArkTs语法文档较简陋,缺乏JavaScript基础会导致困惑,例如不理解为何没有函数重载或遇到'is not callable'异常。前端开发者则需放弃动态类型,尽量使用class。
Q&A
鸿蒙操作系统为什么选择JavaScript作为开发语言?
选择JavaScript主要是因为Java的版权问题,尽管Java/Kotlin在移动端生态更好。
鸿蒙的UI开发效率如何与Android原生开发相比?
鸿蒙的UI开发效率高于Android原生开发,得益于声明式UI和MVVM架构。
ArkTs语言对前端开发者有什么影响?
ArkTs为前端开发带来了强类型的限制,增加了理解难度,开发者需要适应这种变化。
鸿蒙的API更新有什么变化?
API从9到11的变化虽然大,但整体架构和核心思想没有太大差异,主要在于ArkTs语法的编译期检查增强了强类型检查。
开发者如何提高对ArkTs的理解?
建议开发者阅读《JavaScript 高档程序设计》的相关章节,以掌握基础知识,尤其是语言基础和面向对象编程。
对华为官方在鸿蒙开发上的期望是什么?
希望华为官方能够加快进度,改善开发者体验,特别是在API和文档方面。