2023年,前端行业哀鸿遍野,不仅就业形势严峻,而且整个行业本身也摇摇欲坠,“前端已死”的论调不绝于耳。虽然我们知道,这个行业不可能死绝,但是对于就业者而言,可能60%以上的都不会好过。对前端行业的悲观预期,让很多人开始思考新的出路。本期就来聊一聊一条新路——鸿蒙开发。
原文地址:https://www.tangshuang.net/8817.html 在线收听:https://www.ximalaya.com/sound/692693142
先来看看为什么在2024年,你需要思考调整职业规划。
我在040期讲过,技术晋级的时代落幕了,这一点在前端领域尤其明显。从大环境也好,行业发展也好,过去10年的前端技术晋级路径已经彻底失效。我在去年看了一眼考公的职位,没有任何一个岗位可以由前端胜任,而如果在后端领域比较资深的话,进可以做技术咨询,退可以考架构公务编。在过去这些年里,我不能说投资前端是一场失败,但在当下这个时间节点上,不能说是成功。因此,我们应该想一想,我们如何将这10来年积累的技术和经验,赋予一个新的意义。
另一方面,当下的前端开发本身也存在问题。从整个行业来看,随着互联网2.0时代落幕,工业互联网的黯然神伤,真正对技术深度需求比较大的非常少,例如figma、剪映、飞书、腾讯文档、qq秀等等这类需要具备非常小众的深度的资深技术的岗位很少,而绝大多的前端开发者拉平来看,除了经验不同,技术差别并不大。于此同时,低代码正在取代前端开发者,很多系统不在需要前端开发者,后端的人拖拉拽就可以生成一个界面给到用户去用,虽说没有什么设计感,但是能实现目的。再者,AIGC正在颠覆前端开发的方式,在figma上面,可以搜索出一大堆设计稿直接输出为vue、react、微信小程序的插件,以前我们需要花很多力气才能开发好上线的,现在只需要有一个前端跟着设计师把导出的代码再整理整理就可以发布。虽然前端领域还在有新技术出现,web标准和新接口还在出,但从国内前端的发展来看,似乎已经到了百足之虫,死而不僵的局面,除非有大的风口,否则很难再出现整个互联网行业狂欢的局面。
今天我在刷公众号时,发现国内掀起了一波转鸿蒙系统的高潮,各类一线厂商都开始准备为鸿蒙生态构建自己的应用。这是一个非常有意思的信号。虽然这里面有很多值得质疑的地方,但是不得不说,在这种信号面前,不同的人,听出不同的声音。
前段时间,小米发布了自己在做澎湃系统,当时很多人和鸿蒙做对比,认为鸿蒙与安卓割席绝交,不再支持安卓应用,是割裂生态,让开发者再次回到了必须为不同系统定制应用的时代。虽然我也有90%认同这一观点,对华为很多行为有些鄙视,对其对待员工的方式也颇有异议。但是从宏观层面,作为独立生态的鸿蒙正在不断成长,而且速度很快,健全度很好,可以预见未来一定可以在消费类科技软硬件生态中占有非常重要的地位。除了电脑、手机、手表等终端,华为还拥有智能家居、电视、甚至汽车等消费品终端,而且鸿蒙系统具有嵌入式的能力,在其他工业、机器人、电信通信等领域,也可以开放给开发者来做大它的生态。可以说,在生态的完整度上,华为比小米还要厉害,而且华为的产品远销发达国家,单品价格还高,可见其商业能力也远超小米,如果这种商业收益能够在将来反哺给开发者,相信开发者也能从中受益。如果这样来看,华为的消费品领域,真的在对标苹果,作为中国的民族企业,没有上市的情况下,能够做出如此成绩,确实非常令人敬佩。
我在了解了鸿蒙应用开发之后,发现,如果我们前端开发者拥有这10年来的经验,要切换到鸿蒙生态中真的是非常容易。理由有如下几点:
完善的开发体系和文档
和一些装装样子的国内系统不同,鸿蒙的开发体系真的很完善,从IDE到调试工具,文档也很全,还有视频教程。对于前端开发者而言,只要自己从头开始在自己的电脑上搭建过开发环境,都能按照鸿蒙文档搭建起自己的鸿蒙开发环境。而且作为后起之秀,鸿蒙团队也考虑到了开发者水平,没有整非常多高大上的名词和概念,开发文档中的很多概念都是现有行业中见过的,只要你曾经在安卓、前端、后端等社区里面听说过,都能快速理解它的概念。
继承TS/JS的开发语言
鸿蒙提供了ArkTS开发语言,虽然它早期甚至直接抄前端开发的html+css+js的开发模式,但是可能考虑到性能等方面的原因,现在已经把重点放在了ArkTS。ArkTS就是在Typescript的基础上,再扩充了一些语法,不多,也不难,但凡用过vue或react写过应用的,都可以上手,因为它们的底层都是js。这可以说是为前端转行鸿蒙应用开发扫清了障碍,似乎华为很早就知道2024年前端行业惨状,提前布局拯救无数失足青年一样。
ArkUI视图框架
在原理和写法上非常类似谷歌的flutter,在地位和效果上非常类似苹果的swiftUI。使用ArkUI来开发鸿蒙应用,不仅不需要自己再引入一套类似antdesign一样的UI库,而且声明式的写法很简单,甚至它是跨平台的,在电脑和手机、手表之间可以无缝切换。作为框架,它还通过编程范式,让UI和逻辑分离,有点类似小程序的架构,从而保证了性能。一旦上手,可以说比用vue、react生态来开发应用还要简单,而且还可以在一种具有规范化的代码组织体系下写代码,心情也更愉悦。
ArkUI X跨平台同构框架
既然和flutter很像,那么基于和flutter一样的道理,我们甚至可以用ArkUI来写web应用,甚至转化为小程序,实现一码多端。
响应式编程
熟悉vue的同学,都对这个词不陌生。没错,立足于TS的ArkUI,竟然和早期的Vue Class 组件的设计思路几乎一样,遵循响应式编程,通过直接修改struct上的属性的值来触发UI的更新。这让我们在写鸿蒙应用的时候,又倍感亲切了一些。
原生应用
不过别忘了,我们在用ArkUI写程序时,是真的在写原生应用。在过去几年里,前端一直希望能过侵入到原生应用开发,不过最终都走了一些弯路,例如react native,仅仅是写UI层,要调系统底层还是得用原生系统支持的语言来开发模块后链接到项目中,例如electron虽然可以开发桌面应用程序,但是性能又令人堪忧。flutter完全抛弃了js生态,启用dart作为开发语言。而基于ArkUI写的应用,就像用swiftUI写的Mac应用一样,不仅丝滑,而且可以调用系统组件,例如系统气泡、小挂件、通知窗口等等。
而在微观代码层面,你时不时就会冒出“这不就是flutter”“这不就是vue”“这不就是react native”“这不就是微信小程序”“这不就是安卓”等等这一类的想法,可以说,作为新生代的生态缔造者,鸿蒙团队在拿捏开发者心态时,也是做到了游刃有余。
字节码
ArkTS经过编译器之后,形成方舟字节码,实际分发的程序都是以字节码的形态运行,比前端领域的代码分发安全得多。当然,它之所以要用字节码,很有可能是因为它需要在不同设备(不同CPU架构)上跑,因此,底层还是基于类似JVM的虚拟机来跑更好。
天时地利
当前这个时间点,鸿蒙正处于蓄势待发的阶段,你说鸿蒙这个项目会黄,在两年前可能有人会信,但是现在,有谁会信?随着各大厂商的入驻,慢慢的整个软件生态就会起来,最核心的一点是,华为的商业能力,能让生态中的合作伙伴赚到钱,那么,这个生态就会持续下去。而对于我们开发者个人而言,在生态早期入局,不一定大富大贵,但在2024年前端行业普遍扑街的时间节点上,或许能给我们带来一些不一样的结果。
在节目最后,我还是想要重复我的观点:虽然前端的技术本身还在发展,但是国内的前端就业已经“攻守之势异也”,而在这个时间节点上,鸿蒙早就用ArkTS这一诚意满满的语言向前端开发者敞开了大门,我们不妨放下偏见看一看,说不定又是另外一番景象。