概述

本文是对Drew Breunig提出的"为什么Claude桌面版是Electron应用"这一问题的回应。与Breunig认为"LLM还没有准备好实现完全的原生精致度"的观点不同,作者Niki提出了一个更具争议性的论点:原生应用已经没有什么可提供的了。文章从原生API的糟糕体验、操作系统厂商对开发者的敌意、UI一致性的丧失、深度系统集成的价值下降,以及性能问题的本质等多个角度,论证了Web技术栈取代原生开发的必然性。


详细内容

背景:Drew Breunig的原始问题

Drew Breunig提出了一个观察:

"尽管现在代码很便宜(指AI辅助编程降低了开发成本),为什么Claude桌面版仍然是一个Electron应用?"

他的假设答案是:

"LLM还没有准备好实现完全的原生精致度。"

这意味着,虽然AI可以帮助编写代码,但还不足以处理原生开发所需的精细UI/UX工作。


作者的核心论点:原生已死

Niki对Breunig的回答提出了根本性的反驳:

"原生已经没有什么可提供的了。"

这不是一个关于AI能力的问题,而是关于原生开发本身价值的问题。


论证一:原生API体验糟糕

开发者的痛苦

作者指出,原生API的开发体验长期以来都很糟糕:

  • 文档不完善:苹果和微软的文档常常过时或缺失
  • API不一致:同一平台的不同版本之间存在破坏性变更
  • 调试困难:原生开发的调试工具远不如Web开发友好
  • 学习曲线陡峭:掌握原生开发需要大量平台特定知识

平台锁定

  • 原生开发意味着被锁定在特定生态系统
  • skills 的迁移性差,开发者需要为每个平台重新学习
  • 企业需要维护多个代码库,成本倍增

论证二:操作系统厂商对开发者的敌意

苹果的"围墙花园"

  • 审核机制不透明:App Store审核标准随意变化
  • 抽成争议:30%的"苹果税"引发持续争议
  • 功能限制:iOS对应用功能的严格限制(如后台运行、系统级访问)
  • 开发工具限制:对第三方开发工具的限制和打压

微软的摇摆不定

  • 战略频繁变更:从Win32到UWP到WinUI,开发者无所适从
  • 向后兼容性负担:虽然微软以兼容性著称,但也导致技术债务累积
  • 文档和工具问题:Visual Studio虽强大,但臃肿且学习成本高

开发者的反击

作者暗示,Web技术的兴起某种程度上是开发者对平台厂商控制的反抗:

  • Web是开放的,不受单一厂商控制
  • Web标准由W3C等组织制定,更加透明
  • 一次开发,跨平台运行

论证三:UI一致性的消亡

"没有原生外观了"

作者提出了一个尖锐的观察:

"没有原生外观了。"

苹果的"凭感觉"设计

作者特别批评了苹果近年来的设计方向:

"苹果把元素放在那里是凭感觉,而不是根据任何可测量的指南。"

具体表现:

  • macOS和iOS的设计语言越来越不一致
  • 同一应用在不同苹果设备上的体验差异巨大
  • Human Interface Guidelines(人机界面指南)的权威性下降
  • 设计师更多依赖"感觉"而非明确的规则

"什么都可以看起来像任何东西"

现代UI的现状:

  • 品牌差异化需求:每个应用都想有独特的视觉识别
  • 设计趋势快速变化:扁平化、拟物化、新拟态...趋势来去匆匆
  • 跨平台统一:企业希望各平台体验一致,而非遵循各自平台规范
  • 自定义UI组件:现代框架(如SwiftUI、Jetpack Compose)鼓励自定义

原生一致性的价值消解

当"原生外观"本身变得模糊和多样时,遵循原生规范的优势就消失了:

  • 用户不再期待应用遵循平台规范
  • 用户更熟悉各应用的独特设计
  • 跨平台一致性比平台内一致性更重要

论证四:深度系统集成的价值下降

云服务取代本地服务

"深度系统集成随着服务转向Web而变得不那么有用。"

具体表现:

  • 存储:iCloud、Google Drive、Dropbox取代本地文件系统
  • 通信:Slack、Discord、微信取代系统级通知
  • 身份认证:OAuth、SSO取代系统用户管理
  • 协作:Figma、Notion、Google Docs取代本地办公套件

浏览器作为新的操作系统

  • 现代Web应用可以访问摄像头、麦克风、地理位置
  • PWA(渐进式Web应用)可以离线运行、推送通知
  • WebAssembly使Web可以运行高性能代码
  • 浏览器的能力边界不断扩展

原生集成的边际价值递减

对于许多应用来说:

  • 深度系统集成带来的好处有限
  • 用户更关心功能而非是否"原生"
  • 维护原生集成的成本超过收益

论证五:性能问题的重新定义

"Web应用也可以很快"

作者挑战了Web应用必然慢的观念:

"Web应用也可以很快。"

技术进步的证据

  • JavaScript引擎优化:V8、SpiderMonkey等引擎性能大幅提升
  • WebAssembly:提供接近原生的性能
  • 浏览器渲染优化:GPU加速、分层渲染等技术
  • 框架优化:React、Vue等框架的虚拟DOM和优化策略

臃肿的真正原因

作者指出,性能问题的根源不是技术栈:

"真正的问题是缺乏关怀。以及草率;你可以用任何技术栈构建它。"

原生应用的臃肿案例

作者暗示,原生应用同样可以是臃肿的:

  • Electron应用(如VS Code)可以很快
  • 原生应用(如某些iOS应用)可以很慢
  • 性能取决于开发者的关注和优化,而非技术栈选择

性能迷思

  • 过早优化:许多应用在没有性能问题时就被过度优化
  • 用户感知:用户更关心响应速度而非底层技术
  • 硬件进步:现代硬件使得Web应用的性能差距变得不那么明显

综合论证:为什么选择Electron

基于以上论点,Claude选择Electron的原因变得清晰:

因素Electron/Web优势原生劣势
开发效率一套代码,跨平台需要为每个平台单独开发
团队技能Web技术普及,人才易得原生开发人才稀缺且昂贵
UI灵活性完全自定义,不受平台限制受平台规范约束
迭代速度快速发布,无需审核应用商店审核流程
系统集成现代应用不需要深度集成深度集成的价值下降
性能足够好,且取决于实现质量理论上更快,但不一定

更广泛的含义

对开发者的影响

  • 技能投资:Web技术的投资回报更高
  • 职业路径:全栈Web开发比原生开发更有市场
  • 创业成本:Web/MVP优先成为默认选择

对平台厂商的影响

  • 控制力下降:Web削弱了平台厂商的守门人地位
  • 应对策略:苹果推出SwiftUI、微软推进Fluent Design,试图挽回开发者
  • 长期趋势:平台可能变得更加开放,或者失去开发者

对用户的意义

  • 体验一致性:跨平台体验更加统一
  • 功能优先:用户获得功能,而非平台特定的优化
  • 潜在代价:电池寿命、内存使用等可能受影响

观点存疑

  1. 是否低估了原生体验的价值?

    • 虽然作者认为"没有原生外观了",但许多用户仍然能够感受到原生应用与Web应用的差异
    • 触控响应、动画流畅度、电池效率等方面,原生仍有明显优势
    • 专业用户(如设计师、开发者)对原生工具有强烈偏好
  2. 对苹果设计的批评是否过于主观?

    • "凭感觉放置元素"是一个强烈的指控,但缺乏具体证据
    • 苹果的设计仍然有其内在逻辑,可能不是作者所说的完全随意
    • 设计指南的灵活性可能是为了适应多样化的应用场景
  3. 性能论点是否过于简化?

    • 虽然"Web应用也可以很快"在理论上是正确的,但在实践中,Electron应用(如Slack)的内存占用问题确实存在
    • "缺乏关怀"作为臃肿的解释可能过于笼统,没有触及技术层面的根本差异
    • 在资源受限的设备(如旧手机)上,原生优势仍然明显
  4. 忽视了特定应用场景

    • 游戏、视频编辑、3D建模等高性能需求场景,原生仍然不可替代
    • 文章似乎主要基于生产力工具(如Claude)的经验,可能不适用于所有应用类型
  5. 对平台厂商的敌意是否被夸大?

    • 虽然App Store政策有争议,但苹果和微软也在持续改进开发者体验
    • SwiftUI、WinUI等现代框架表明平台厂商仍在努力
    • Web也有其问题(如浏览器兼容、标准制定缓慢)
  6. 长期可持续性问题

    • 如果所有应用都转向Web,浏览器的复杂性和资源消耗将成为新的瓶颈
    • Web标准的演进速度能否跟上应用需求的增长?
    • 单一技术栈(Web)的垄断是否健康?

Tags

#原生应用 #Web开发 #Electron #跨平台 #UI设计 #应用开发 #技术趋势 #Claude #AI应用 #开发者体验