移动开发者终于失去了往日荣耀?
部分原因在于AI浪潮. 但可能还有其他原因.
作为一名资深移动开发者, 我渴望了解苹果, 安卓和跨平台生态系统的最新趋势. 然而, 最近业界发出的信号并不令人振奋.
这篇文章并不是要讨论在最新的 WWDC 或 Google I/O 上开发者们被灌输了什么. 我们要讨论的是当前的趋势是如何影响开发者的职业生涯的.
移动开发人员的工作岗位正在迅速消失 -- 至少我在 脉脉 上搜索到的情况是这样. 关于这一点, 还有一个有趣的Reddit讨论, 以及StackOverflow 开发人员调查开发人员数量统计: 移动开发调查受访者人数从 12.45% 降至 3.38%.
虽然行业领先论坛的结果不足以详细反映真实问题, 但线上+线下论坛的集体反馈也能反映些许蛛丝马迹.
我们是如何走到这一步的?
就在不到十年前, 移动开发还是最酷的技术. 每家领先的科技公司都在努力征服 iOS 和 Android 这两个平台.
近十年来, 原生平台和跨平台之争持续不断. 在此之前, Cordova, Xamarin 和 Titanium 是每个技术Manager口中的热门词汇. 这些框架在技术上并不出众, 但它们成功地维持了业界最喜欢的“一次开发, 到处发布, 节省资金”的信念.
同类产品的第二波浪潮以 React Native 和 Flutter 等跨平台框架的形式出现. Facebook 和谷歌称赞它们是完全原生的.
但是, 只有每天与它们打交道的程序员才知道, 在开发具有流畅性, 高性能和可玩性(利用传感器功能--使移动体验更加深入和个性化)用户体验(智能手机人机交互的最大组成部分)的大型应用时, 它们是多么的力不从心.
虽然用户体验是由 Facebook 和谷歌开发的, 但它们的整个发展历程都是由那些必须向大客户推销开发人员的代理商传播的. 在以降低开发成本为价值主张时, 他们开始声嘶力竭地高唱跨平台的大戏. 为了提高代理公司的投资组合, 他们还通过开发组件来扩大各自框架的 GitHub 代码仓库. Facebook 和谷歌的开发人员看着自己的边缘项目蓬勃发展, 乐得合不拢嘴. 大家都很高兴.
实际上, 从长远来看, 跨平台项目让拥有项目的公司付出了更大的代价, 因为这种方法存在明显的缺陷:
- 只提供两个平台的最大公约数.
- 开发人员疲劳(除了《Hello World》, 开发人员无论如何都得学习本地程序)
- 开源(因此没有问责制)开发.
在完全原生的跨平台工具(Unity 及其朋友)与忠实于原生的 XCode 和 Eclipse 之间也发生了有趣的采用战争, 不过, 根据设计, 这场战争仅限于游戏开发.
这些战争是否削弱了移动开发事业? 也不尽然. 但它们确实割裂了普通开发人员对行业的认知. 新手急于跳槽, “得学那个东西(跨平台)”, 这将是他们进入IT行业的单程票, 但后来却失望了. 老手们还在坚持使用那些经过时间考验的东西(C++, Java, 以及后来的 Swift, Kotlin), 但他们常常发现, 由于这样或那样的原因, 他们很难在不断摇摆不定的市场中立足.
尤其是, 摇摆不定.
是AI, 还是其他原因?
似乎随着 GenAI 的到来, 关于移动开发的讨论已经酝酿成型.
然而, 移动开发的第一块多米诺骨牌倒在了 2017 年, 当时剑桥分析的宝贝竟然是从 Facebook 的壁橱里走出来的.
西方世界的民主理念与隐私紧密相连. 未经同意追踪用户成了至今不被承认的罪过. 剑桥分析丑闻引发了政府在全球范围内对大型科技公司的攻击.
Facebook就是最直接的受害者. 谷歌作为智能手机市场最大的利益相关者, 同时也是全球著名的雇主和政府服务提供商(GCP, 谷歌教育等), 成功地争取到了时间. 为了遵守规定, 谷歌对其广告产品和货币化 SDK 进行了多次修改. 安卓开发者的收入来源主要是广告, 他们不得不拖着不做, 否则就会失去市场.
苹果公司站在隐私保护的制高点上, 选择成为手握大棒的人, 将广告追踪的权力交到用户手中. Facebook 成为此举的最大受害者. 为了支持这一立场, 苹果开始将其备受推崇的订阅模式奉为应用开发的黄金标准. 2020 年是苹果开始改进其备受诟病的订阅 API 支持的第一年.
隐私合规对移动开发行业的冲击是前所未有的. 独立开发者受到的冲击最大, 但公司级的开发也放慢了脚步. 开发人员本可用于创建新框架的时间开始被浪费在与支持和法律专业人士进行无休止的问答, 快速修复以及与企业主进行无用的讨论上.
与此同时, 无代码也在兴起. 虽然它的成功还远未得到验证, 但它已成为管理讨论中的一个主要观点, 并成为主流开发的有力竞争者.
一些小型开发公司选择转向无代码/网页产品开发上. 大公司不再在移动交付方面冒大的风险. 预算不再流向开源项目. 维护商店评级成了新的焦点, 为此, 预先开发的功能大多已经足够了.
“不要破坏已有的工作. 不要冒险去创造什么了不起的东西, 因为我们不知道什么叫了不起."成了新的口头禅.
移动开发人员无法应对这种对他们有利的转变. 为什么? 这就引出了我们的下一个问题.
移动开发者的真正力量在哪里?
这要看什么是优秀移动开发者的真正定义.
优秀开发人员的标准定义(“设计师, 编码员, 测试员”)并不能完全定义优秀的移动开发人员.
关于“怎样才能成为一名优秀的移动开发人员”, 人们几乎没有达成共识. 移动开发技能与网页开发技能几乎没有区别.
一个优秀的移动应用应该更多地与UE和UI有关, 还 应该与智能手机传感器的巧妙使用有关. 优秀开发人员的标准定义(“程序设计师, 编码员, 测试员”)并不能完全定义优秀的移动开发人员. 一个人首先必须是一名优秀的开发人员, 但还不止于这些.
绑定(UI + 数据库 + API)必须弄清楚. 必须选择在架构上最合适的. MVC 是否足够? 还是需要ViewModel? Coordinator等顽固模式呢?
设计的坏处在于没有经过验证的验证器. 衡量一个好设计的唯一指标是, 未来的开发人员是否能在其能力和主动性的基础上进行改进.
说到移动开发, 还必须掌握硬件集成的工作流程. 例如, 蓝牙, 加速计, 光传感器, 陀螺仪等. 这正是嵌入式工程师的优势所在. 金融技术(苹果和谷歌支付)增加了另一个维度: NFC.
虽然成功集成所有这些功能需要付出大量的精力和时间, 但从管理/领导的角度来看, 它们只是具有相同即插即用接口的简单盒子. 尽管 “Mobile First”的口号已经深入人心, 个人体验也越来越丰富, 但在公司的 IT 战略中, 移动仍然 只是一个辅助出口.
一个像样的移动应用代码库需要一个专门的架构师, 但小型团队很少有这样的人. 即使是大公司的团队也会因为平台分散而在此方面偷工减料.
只有大公司才有能力开发可重复使用的库和框架. 中小型公司的团队没有护城河, 无法证明在平台巨头随时可能破坏任何东西的情况下, 他们的长期努力是有道理的.
与网络不同的是, 网络上的伟大感知来自于个人创作者, 而移动应用的伟大则是由平台决定的: 苹果和谷歌. 《人机界面指南》和《材料设计》标准引导着业界的期望.
然而, 在大多数情况下, 这些标准仍未得到充分展示. 这是因为定义优秀应用的标准是在没有此类范例的情况下制定的. 它们的示例大多是开发人员必须在此基础上构建的简易版.
这种设计是一种简化主义, 阻碍了许多可能的创新, 只有那些获得平台奖励(安卓和苹果编辑选择的舞台)的创新才会不断被复制.
超越标准的杰出移动体验只是一个例外(设计师在其中同样发挥着重要作用). 规则就是要萧规曹随, 即使是最杰出的移动开发者也不得不这样做.
如果一个独立移动开发者向世界展示了他/她能为这些平庸的平台带来惊喜, 那么这些平台就会刺探他/她的作品, 并将其打上自己的烙印.
总结一下
AI(特别是 GenAI)正在吸走其他各个部门的资金. Manager们想证明自己没有错过潮流,即使他们知道这只是错失良机的焦虑。.
在移动端大语言模型成为现实之前, 移动开发人员几乎不可能再次大放异彩. 在那里, 他们将不得不与数据科学家分享荣耀.
当形势一片大好时, 所有开发人员都会有机地成长为镇上最大的赢家. 当经济不景气时, 有能力的开发人员会通过创建框架, 库和可重复使用的组件来倍增他们的影响力. 中低技能的开发人员受到顶级开发人员的启发, 开始提升自己的技能. 当他们再也找不到这条路时, 他们就会转换领域. 他们离开狭窄的溪流(移动开发), 开始在海洋中游泳, 模式如下:
同一平台的所有设备(Mac, Vision pro) => 跨平台(iOS + Android) => 网页开发(+web).
当情况变得更糟时, 大多数水手都会下船. 船长会留下来. 但当海盗占据上风时, 船长们也会被屠杀. 如果船还算幸运, 海盗们将会考虑重建.
入门级开发人员或来自边缘领域的开发人员就是这些海盗. 他们受雇充当临时工, 让这艘船保持漂浮, 直到老手重新发现它.
这就是今天移动开发的现状. 它还没有被毁灭. 也永远不会. 中级入门级开发人员将移动开发保持在 2015 年的水平.
这些人热衷于通过构建组合应用来炫耀自己的技能, 他们不想购买域名/托管服务, 并且对 500 多个 NPM/Yarn 软件包望而却步.
这些新手能否夺回平台? 更重要的是, 他们能找到值得热爱的创作领域吗? 唯一的办法就是超越单纯的软件开发, 成为硬件 + 设计的大师.
在AI重塑每个人期望的时代, 这种可能性并不存在.
一家之言, 欢迎拍砖!
Happy Coding! Stay GOLDEN!
来源:juejin.cn/post/7410989416866955291