Claude is an Electron App because we’ve lost native

Nikita Prokopov

Claude 是 Electron 应用,因为我们已经失去了原生

原文由 Nikita Prokopov 发布,订阅该博客

“Why is Claude an Electron App?”一文中,Drew Breunig 提出了这样的疑问:

Claude 花了 2 万美元让一群智能体用 Rust 半吊子地实现了一个 C 编译器,可桌面版 Claude 却是个 Electron 应用。

如果代码已经不要钱了,为什么不是所有应用都做成原生的?

接着他认为,答案在于大模型还不够强。它们能完成 90% 的工作,剩下的仍需要大量人工打磨,因此成本依然居高不下。

但我认为这不是真正的原因。真正的原因是:原生已经没什么可提供的了。

从 API 来说,原生应用很早就输给了网页应用。原生 API 难用至极,而操作系统厂商更是竭尽所能让你不想为他们的平台开发原生应用。这解释了在大模型时代之前 Electron 的兴起,但这个问题如今大模型已经解决了:如果这曾是开发原生应用的真正障碍,那么现在它已经不复存在。

再说外观和一致性。曾几何时,也许是在 90 年代末到 2000 年代,原生是领先的。那时它好看、一致,而且真的管用:越多的应用采用原生的外观和体验,跨应用的整体体验就越好(那时我们还管它们叫程序)。

然而到了今天,原生已经和网页一样糟糕,甚至更糟。一致性早已被抛到脑后。什么都可以长成任何样子,按钮没有边框,对比度荡然无存,规范也不复存在。举个例子,苹果摆放红绿灯按钮和设置圆角半径,似乎全凭感觉,而不是依据任何可量化的规范。

也许该让服务器来把圆角切一下?

外观可以很好,也可以很糟,而一旦很糟,你就会被困在那种虽然符合平台一致性、但总体上很差的界面里(Liquid Glass,咳)。而且它变得太频繁了:你今天做的应用,到了明年苹果又改一次外观风格时,就会显得格格不入。已经不存在什么“原生外观”了。

电脑界面也会随时间退化

理论上,原生应用可以与操作系统实现更深度的集成。听起来很美好,但在实践中这意味着什么呢?几乎没有什么好用的可互操作的文件格式;一切都被锁在各个应用内部,大多数服务都已迁移到网页上,而操作系统在提供一个良好的共享基础这件事上也搞砸了。你可以和系统自带的日历集成,却没法和网页版日历集成。好吧,当然也能做到,但在网页上反而更容易;原生在这方面毫无帮助。

网页只会导向更多的网页

最后,怀念原生的人最后的指望就是性能。他们觉得原生应用会更快。确实,原生可以更快,但这不代表它就一定会更快。网页应用同样可以很快,但在现实中,没人在乎。Slack 光是为了在屏幕上显示 10 个频道名和 3 条消息就要加载 80 MiB,这背后没有任何技术上的必然原因。问题根本不在网页!这是主动选择做得烂。一旦公司决定转向原生,你凭什么觉得情况就会有所不同?

别误会:写下这些我并不开心。我也不认为网页就是解决之道。我只是怀念原生曾把事情做得比平均水平更好的那些好时光,那时我们用着它,所有人都因此受益,而如今那些时光已经一去不复返,这让我感到难过。

我只是觉得,自欺欺人地以为软件唯一的问题就是 Electron,只要用 SwiftUI 重写一遍 Slack 就能岁月静好、万事如意,是毫无意义的。真正的问题在于不用心。在于敷衍;用任何技术栈都能造出这种垃圾。

本文章由 muse-spark-1.2-contributor 进行翻译

评论