写点什么

Electron 末日来了?又一应用将其抛弃!WhatsApp 强制推行原生应用:速度更快、内存占用更少

  • 2023-06-29
    北京
  • 本文字数:2341 字

    阅读完需:约 8 分钟

Electron末日来了?又一应用将其抛弃!WhatsApp强制推行原生应用:速度更快、内存占用更少

Electron 又被嫌弃了,让人又爱又恨的 Electron 还能扛起跨平台开发框架的大旗吗?

WhatsApp 弃用基于 Electron 框架构建的桌面应用程序

 

近日,WhatsApp 正式弃用基于 Electron 框架构建的桌面应用程序,用户需切换到原生版本以继续使用。

 

WABetaInfo 平台报告称,全体 Electron 版用户都会看到提示信息,上面写着“应用已过期”。屏幕还提供链接,指向 Microsoft Store 或 Mac App Store 上发布的本机 WhatsApp 桌面应用。这些本机应用虽然已经稳定交付约一年,但此番强制切换仍有些仓促。部分用户可能会抱怨过渡期太短,或者本机应用无法向商业用户提供全部功能,例如目录管理和快速回复。


Electron版WhatsApp桌面客户端上的关闭信息


Electron 是使用 JavaScript、HTML 和 CSS 构建跨平台的桌面应用程序框架,基于 Chromium 和 Node.js,兼容 Mac、Windows 和 Linux。

 

当 WhatsApp 处于开发早期时,有开发者基于 Electron JS 框架创建了一款桌面应用。项目成果带来一套共享代码库,能够在 WhatsApp Web、Windows 和 Mac 之上跨平台运行桌面应用。

 

去年,WhatsApp 从头开始​​为 Windows 开发了一款新的本机应用程序,该应用程序采用了与 Windows 11 设计语言相匹配的全新现代设计,比如透明度、适应操作系统颜色主题的能力等等。除此之外,该应用程序还提供了更好的用户界面,允许用户共享消息、照片、视频和其他媒体内容,并允许用户拨打和接听音频和视频通话。

 

与此同时,适用于 macOS 的原生 WhatsApp 也开始进行公开测试。据悉,起初该版本是封闭测试版,仅供 TestFlight 参与者使用,但目前已对公众开放。有报道显示,WhatsApp 团队使用了 Apple 的 Mac Catalyst 框架,开发人员可以更轻松地构建在 iPadOS 和 macOS 上运行的应用程序。不过目前,适用于 macOS 操作系统原生的 WhatsApp 桌面应用程序仍处于开发的早期阶段。

 

在过去,通过 WhatsApp Web、Microsoft Store 上的本机应用以及基于 Electron 框架构建的全平台应用,用户一直可以在桌面系统上轻松访问 WhatsApp。从大概四周前开始,这款桌面应用的主屏幕上出现一个倒计时,宣布将在截止时间正式关闭。随着当前 WhatsApp 正式淘汰 Electron 这一分支,使得部分用户必须转向其操作系统对应的本机应用才能继续享受服务。

 

WhatsApp 表示,原生应用程序主要具备以下优势:

  • 增强了可靠性并提升了速度;

  • 专为桌面操作系统而设计并进行了优化;

  • 即使手机离线,也能继续接收通知和消息。

 

有分析指出,WhatsApp 的种转变也有其充分理由。尽管 Electron 版应用功能丰富且运行便捷,但并未针对 macOS 或 Windows 系统进行过优化,因此在运行中会占用大量资源。这个问题在低端设备上体现得尤其明显。相比之下,新的本机应用针对各桌面操作系统进行了优化,在提供更高稳定性的同时降低了系统资源占用量。

 

此外,WABetaInfo 还希望此举有助于促进 WhatsApp Business 工具程序的开发,避免 Electron 应用分解开发者群体的注意力。

Electron 的 AB 面:有人弃用,也有人选择

 

除了 WhatsApp,微软Teams也弃用了 Electron。

 

2021 年,微软 Teams 高级副总裁宣布,Teams 将放弃 Electron,转而匹配微软自己的 Edge WebView2 渲染引擎以寻求性能提升。2023 年,微软宣布以公共预览版的形式,在 Win10 / Win11 系统上推出新版 Microsoft Teams 应用程序,正式从 Electron 过渡到 Microsoft 的 Edge WebView 2 渲染引擎。

 

“2015 年,我们开始开发 Teams 时,选择 Electron 等框架可使跨平台 Web 和桌面客户端的快速交付成为可能,”该公司的公司工程副总裁 Sumi Singh 在博客文章中解释道。“然而,随着 Teams 的功能不断扩展,给设备资源带来了压力。认识到这一点后,我们开始分析可用技术、进行基准测试、构建原型并设计了一个在内部称为北极星的新架构。”

 

微软协作应用程序和平台总裁 Jeff Teper 在一篇博文中表示,新版应用的设计核心是速度和易用性,“我们始终听取用户的反馈,于是我们围绕着速度、性能、灵活性和智能,重头构建了 Teams 应用。运行速度提高了 2 倍,同时使用的内存减少 50%,因此您可以节省时间并更有效地协作。”

 

有人弃用 Electron,也有人坚定地选择它。

 

2023 年 4 月 23 日,新版 Windows QQ 正式开启用户公测,采用全新 QQ NT 架构,以此实现了 QQ 架构的统一。而 QQ NT 技术的一个重点就是使用 Electron 作为新版 QQ 桌面端 UI 跨平台解决方案

 

据了解,QQ 开发团队还在 Electron 基础上做了大量优化。比如,针对 Electron“占内存”的问题,QQ 根据不同的使用场景,在 Electron 与 N 用 Electron 开发多平台客户端的成本相对低很多。相比于大多数都能完全复用的代码,针对性优化成本可以忽略不计。

 

同样是考虑到多端统一的需求,2017 年,GitHub 也曾使用 Electron 重写了 macOS 和 Windows 的客户端。

写在最后

 

2017 年,Electron 可以说是 Web 应用在桌面平台发布的最佳、甚至是唯一选项。如今,虽然仍有众多知名应用都选用 Electron 来提供支持,但也有越来越多的应用选择弃用。

 

腾讯微信客户端工程师方秋枋曾在接受 InfoQ 采访时表示,从框架开发者的角度来看,跨平台开发的难点就在于处理平台差异性;从框架使用者的角度来看,难点在于如果框架出问题了,维护成本将会变得非常高。

 

与此同时,跨平台框架存在很多通病,比如项目庞大后维护困难、第三方库良莠不齐、兼容上需要耗费更多精力等等。“跨平台意味着需要花费很多时间来解决平台差异性问题,同时要面临第三方库不够原生平台丰富健壮的现状。跨平台其实是牺牲部分功能和体验,换取开发速度和一致性的权衡,并不是业务开发的银弹。目前并没有一个能完善解决这些问题的解决方案。”方秋枋说道。

 

参考链接:

https://www.androidpolice.com/whatsapp-desktop-electron-dead/

https://faq.whatsapp.com/451924530376167/?cms_platform=web

2023-06-29 14:386868

评论 3 条评论

发布
用户头像
为啥不用Flutter?性能非常高,跨平台非常多
2023-06-29 16:58 · 上海
回复
看过 Flutter 桌面端的文档,感觉相比 Electron 之类还不成熟,整体重心在移动端。据我了解目前业界也没什么拿得出手的桌面端案例。浏览 flutter 官方 repo 的 Issues 中 Desktop 标签下面的问题,看到许多基础的功能都没完整实现。
相比之下 Electron 有很多大厂已经踩过坑了,而且前端的生态很完善成熟了。Flutter 目前阶段开发桌面端的小项目玩玩可以,如果用在企业级的项目上,还是要慎重考量。
2023-06-29 18:56 · 北京
回复
Flutter在桌面端就是个未成年
2023-07-09 15:17 · 北京
回复
没有更多了
发现更多内容

架构师训练营 第 5 周作业

Lingjun

极客大学架构师训练营

什么时候不要用微服务?以 Istio 为例

无予且行

Java 微服务 后端

面试官:既然CPU有MESI,为什么 JMM 还需要volatile关键字?

犬来八荒

Java 面试 JVM 硬件

专科程序员与本科程序员之间有什么区别?薪资待遇又差多少?

码农月半

spring 程序员 面试

授权专利争夺正当时

CECBC

数据隐私 授权专利 平台应用服务

ConcurrentHashMap里面也有死循环

无予且行

Java jdk 面试 jdk8

锦囊篇|一文摸懂SharedPreferences和MMKV(二)

ClericYi

农产品电商平台的S曲线分析

石云升

增长 S型曲线 破局点

在Windows上使用IIS来托管站点

Puran

windows IIS Server

spring 那点事儿——让你少走弯路

爱java爱自己

Spring Cloud Spring Boot

面试中必问的JVM应该怎么学(面试题含答案)

猿灯塔

架构师训练营第五周学习总结

张明森

今天来聊聊如何挑书

封不羁

读书 个人感想

你真的理解透彻高并发了吗?来看看架构师眼里的高并发

小谈

Java 面试 高并发 高并发系统设计

1.2w字 | 初中级前端 JavaScript 自测清单 - 1

Geek_z9ygea

Java 大前端 Web

如何搭建一个Zookeeper集群

Rayjun

大数据 zookeeper 分布式

计算机操作系统基础(十一)---线程同步之互斥量

书旅

php laravel 线程 操作系统 进程

SQLite你用对了吗

山楂大卷

sqlite 数据库 选型

【思考】互联网厂商争夺企业市场

superman

企业中台 互联网

饿了么4年,阿里2年:我的总结与思考

程序员生活志

工作经验

源码分析 | 数据异构Canal 初探

小新

如何站在架构师的角度做框架

小新

Java 集合 框架

区块链+金融赋能高原特色农业重点产业

CECBC

打破信息孤岛 区块链+咖啡 特色农业 咖云链

cms项目系列(一)——SSM框架搭建

程序员的时光

spring

编程核心能力之组合

顿晓

Java 学习 pipe

解读 java 并发队列 BlockingQueue

猿灯塔

Java

Java架构-Apache POI Excel

猿灯塔

PHP实现一致性哈希算法

任小龙

架构师训练营 -week5 命题作业

J.Smile

极客大学架构师训练营

为什么建议项目中统一线程池类?

张挺

程序员阿里、京东、美团面试整理的面试题,测试一下你都会了吗?

小谈

Java 阿里巴巴 面试

Electron末日来了?又一应用将其抛弃!WhatsApp强制推行原生应用:速度更快、内存占用更少_框架_凌敏_InfoQ精选文章