加载失败
Meta 将 WhatsApp Windows 客户端从早期的 Electron -> UWP/WinUI 原生实现改回基于 WebView2 的网页壳,报道指出空闲状态下可保留接近 1GB 内存,引发用户与工程师批评。讨论围绕三个层面展开:企业为何选择 web 优先(跨平台协调与成本)、Chromium/V8 与多进程架构带来的内存/虚拟内存预留问题、以及是否存在可行的原生或跨平台替代(如 Qt、Flutter、PWA)。评论同时提到 Windows 桌面 UI 框架长期演进碎片化、裁员与组织激励如何影响技术选型,以及网络效应使大多数用户难以因资源占用而迁移到替代品。
多位评论者指出,Meta 等大厂把原生客户端改成网页壳,核心原因不是技术能力不足,而是跨平台协调成本太高。原生桌面需要为每个平台维持独立团队或频繁同步设计,快速试验会使沟通复杂度非线性上升,因此公司倾向于“一次写 web,处处跑”的策略以降低组织开销。有人补充说裁员或解散原生团队也使得继续维护 UWP/WinUI 变得不现实,WebView2 路径被视为快速且廉价的替代方案。
多条评论给出具体的技术解释:Chromium/V8 的多进程与内存预留策略会让一个看似简单的网页应用在 Windows 上保留大量虚拟内存。有人具体提到 V8 在 Windows 上用 VirtualAlloc 以 256MB 块预留内存、每个 isolate/worker 会占用独立进程,多个隔离进程叠加即可达到接近 1GB 的保留空间。另有人列举 Chromium 包含的子系统(HTML 渲染、视频编解码、WebRTC、WASM、调试器等),这些功能合并到桌面壳里会带来显著开销;同时指出任务管理器显示的往往是“保留”而非实际活跃使用量,平台选择和多进程架构是主因。
不少评论用 Telegram、Qt、Flutter 等反例说明原生或跨平台原生工具并非不可维持:Telegram 被举为 30 人团队既维护 web 又有一流的 Qt 桌面客户端,且有用户测得 Telegram 桌面内存非常低(约几十 MB)。有人建议 Flutter 或 Qt 可作为折衷方案,允许用单一代码库覆盖移动与桌面且比打包完整 Chromium 运行时更省资源。结论是:若组织愿意投入或保持专门团队,原生或原生跨平台实现可以显著优于网页壳的资源占用。
用户角度的讨论更细致:桌面原生客户端能提供任务栏通知、离线可读、系统快捷键、便捷的文件/截图粘贴和通话支持,这些都被认为是原生优势,尤其对把 WhatsApp 当作工作工具的人很重要。另一方面,许多用户抱怨旧的原生客户端长期存在输入卡死、连接断开、搜索/归档行为异常等 bug,使得部分人宁可用 web 版或 PWA。总的来说,网络效应使得大多数用户不会因为内存占用而迁移,但对有“专业”需求的群体来说,功能与稳定性比内存更关键。
评论中有强烈的制度性批评:维护成熟、低缺陷的原生应用在组织里往往得不到晋升激励,相反重写或推出新技术更能带来个人升迁和可见度。有人指出高层/财务驱动的成本削减、裁员和偏好“可复用 web 代码”会导致原本优秀的原生产品被放弃。也有评论把这归因于以指标为主导的产品文化(McNamara fallacy),忽视性能和用户成本,最终以牺牲用户体验换取更低的工程与运营成本。
WebView2: WebView2(Microsoft Edge/Chromium 内核的嵌入式 web 视图),用于在 Windows 桌面应用中加载网页并复用系统安装的 Edge 运行时。
Electron: Electron(基于 Chromium 与 Node.js 的跨平台桌面应用框架),把网页与 JS 打包成独立应用,内含完整 Chromium 运行时,因而体积与内存较大。
UWP: UWP(Universal Windows Platform),微软曾推广的 Windows 原生应用平台,旨在跨 Windows 设备统一开发,但在生态与演进上争议较多。
WinUI / Win32: WinUI(微软的现代 Windows UI 框架)与 Win32(传统 Windows 原生 API)。Win32 长期向后兼容但缺乏部分现代 UI 便利,WinUI 的多次演进导致开发者抱怨碎片化。
V8: V8(Chrome/Chromium 的 JavaScript 引擎),为性能常常预留大量虚拟内存并采用 isolates/多进程模型,这会让网页壳在任务管理器中显示高内存占用。
PWA: PWA(Progressive Web App,可安装的网页应用),能以独立窗口运行并在某些系统中表现为“应用”而无需打包完整浏览器运行时。
Qt: Qt(C++ 跨平台 GUI 框架),常被用来做高性能、资源友好的桌面客户端(例如 Telegram 的桌面版)。
Flutter: Flutter(Google 的跨平台 UI 框架),可编译到移动与桌面,被部分人建议作为比网页壳更轻量的跨平台原生替代方案。