每次打开 QQ 桌面版,我都有一种回到小时候的感觉 —— 这可不是对 QQ 的夸奖。作为一个 20 多岁的互联网活化石,在不断的修修补补、增增减减之后,QQ 电脑版也和微软 Windows 11 一样,存在着很多不协调的 “ 割裂感 ” 。
就比方说,本来就不算大的主界面里,愣是存在着三个可展开的选项菜单。
主要的功能按钮也被划分到了顶部、中间、底部。
并且还被分别赋予了 “ 小图标 ” 、 “ 纯文字 ” 、 “ 中图标 ” 三种展现形式。
尤其是这两年 “ 移动文化 ” 的反哺,QQ 电脑版也开始迎合 “ 潮流 ” 。
先是出现了个独立于主界面、神似国外语音软件 Discord 的 “ QQ频道 ” 模块。
然后是往桌面版增加了个用来刷短视频的 “ QQ 小世界 ” 。
类似这样的操作更加深了 QQ 桌面版体验和观感上的割裂。
所以也难怪了,为什么会有那么多 QQ 用户自发在网上劝大家 “ 改用 TIM ” :
作为一个最近几年 QQ 团队搞出来的新项目,这个 “ QQ 官方办公简洁版 ” 没有糅合太多的东西。
并且整个界面的设计语言也比较统一和现代化。一眼合理。
不过 TIM 也有自己的问题:比如太强调 “ 办公 ” 属性了,把强调个性的一些气泡、动画、装扮什么也给砍掉了。
所以。目前的现状就有点不上不下 ——
大家要么忍受一团浆糊的 QQ 桌面版;要么牺牲一些功能便利,使用 TIM 桌面版。
当然了还有一些魔改操作,不过因为有概率导致封号,我在这里就不赘述了。
但是就在前一阵,有消息说 QQ 桌面版即将迎来一次 “ 史诗级重构 ” !
据说这个版本会在 2023 年春节之后正式发布,UI 界面更加大气、现代化。
而且以后的 QQ 将会在 Windows / MacOS / Linux 三个系统上同步更新!
连 Linux 都有!!!
统信 UOS 、中科红旗、深度、Ubuntu 操作系统的用户们,你们等这一天可等太久了。
然而,随着时间的推移,内测版、公测版的陆续发布,这个 “ QQ 2023 重构计划 ” 非但没有得到大家的肯定,甚至还有人直接开骂了。
原因在于,腾讯这次放着原本自家的 Hummer 框架、开源高效的 Qt 框架不用,扭头选择了Electron 框架!
我说到这儿,估计有些懂开发的差友已经懂了 ( 并且心脏骤停了 ) 。
因为,这个框架对老电脑 ( 尤其小内存 ) 的用户们 —— 非、常、不、友、好!
可能有些小伙伴还是没纳过闷来,所以我们再稍微展开讲一讲:
一切的一切,都要从 Chrome 浏览器这个 “ 万恶之源 ” 说起。
等一等,我们刚刚不是在聊写代码吗,怎么突然扯到Google浏览器身上了?
emmmmm,大家先别急,麻烦大家伙先跟我一起回想个事:
你还记得Google Chrome 浏览器发布之前,微软 IE 6.0 时代的网页们,长什么样子嘛?
不记得没关系,我在这里贴张图大家感受一下。
巨丑,纯文字,而且几乎没有动画 —— 有动画通常也是外挂了 Flash 插件和文件的结果。
但是这种网页如今几乎已经绝迹了,Flash 也寿终正寝了。
现在的网页,连网址导航的动画都丝滑流畅,WPS、聊天、甚至 Photoshop 一类的软件可以直接做出全功能的网页版。
甚至就连需要调用显卡的 2.5D 端游,都直接 Web 化了。
归根结底,这一切能实现,在于 Chrome 内置的 Blink ( 渲染引擎 )/ V8( JS 解释器 ) 太吊了。
有人说 Chrome 浏览器的开发工作量完全不亚于一套操作系统。确实是这样。
而且这么 NB 的浏览器,它核心代码是完全开源的!
于是,就有人动起 “ 歪心思 ” 了:
既然网页里面能实现的功能已经这么强了,我能不能直接把网页套一层壳,然后伪装成客户端?
这样我只需要写一个网页,再打包一下,不就能直接同时兼容 Windows / MacOS / Linux 了?
哦买噶哦买噶。我真是太天才了 —— 这么跨时代的东西要是能面世,全世界的程序员不得给我集体磕三个?!
其实 “ 磕三个 ” 真不算夸张:因为以前程序员们写程序,想支持几个系统、通常就得写几份代码。
因为每个系统的架构、接口啥的通常都不一样。
而且还涉及到偏底层的资源指针、内存释放什么的性能调试过程。
这就导致了程序员的牛x程度决定了程序的运行速度,头发数量决定了 bug 数量。
但是!假如变成 “ 网页套壳 ” —— 只要代码在浏览器里彻底跑通了,那么浏览器能支持多少个系统,这段代码就能支持多少个操作系统!
相当于以前,程序员们需要直接对系统环境和资源负责,但现在:
“ 网页写漂亮了就行,剩下的 Chrome 来想办法 ” !
基于这个 “指导思想”,2013 年的时候,开发者平台 GitHub 发布了个名叫 Electron 的框架。
Electron 框架由两大部分揉成:一个是名叫 CEF ( Chrome 嵌入式框架 ) 的前端部分,一个是名叫 NodeJS 的后端部分。
这部分要是展开的话又能唠个差不多十分钟了,所以我们今天就不细说了。
你们可能不知道,目前基于 / 半基于 Electron 框架制作的程序已经非常多了:网易云、Epic 游戏商店、飞书、KOOK、百度网盘。
这些程序的特点很明显,目录里都自带了个名叫 Chrome 或是 libcef 的资源文件。
u1s1,Electron 框架的想法真的是好的 —— 毕竟网页代码比传统程序代码好写多了,程序员可以从原本头大的调试工作里解放出来。
但是,Electron 框架有一个问题。确切来说,是 Chrome 浏览器的问题:
非、常、吃、内、存!!!
就比方说,飞书打开界面之后,内存占用 400 MB,网易云 241.8 MB。
游戏语音软件 KOOK 比较腼腆,但也吃了 184 MB!
可能大家对这样的内存占用没什么概念,所以我又打开了传统意义上大家可能觉得会有些臃肿的 Word 和 PowerPoint 。
实测,Word 内存占用 99 MB ,PPT 内存占用 106 MB 。
好家伙,这年头我就听个歌,两个 PPT 出去了?
那么假如 QQ 用上 Electron 框架呢?
目前最新的 QQ Windows 版还是基于原生 C++ 语言写的,打开一个群聊之后内存占用只有100 MB。
但是客户端里独立的 QQ 频道 ( QQ Guild ) 模块整个是基于 Electron 写的,内存占用 288 MB 。
一个模块用 Electron 打包,就已经是 QQ 本体三倍的内存占用了。
根据一些使用了 MacOS 公测版(Electron 重构版)的小伙伴所述,新版 QQ 偶尔能吃掉 0.8 GB - 1 GB 的内存!
什么噬元兽啊!!!
现在大家明白,为什么腾讯宣布重构 QQ 桌面版,但是电脑用户们乐不起来了吧。
虽然 UI 界面现代化了,但是以前 100 MB 内存能搞定的事,以后不知道得多少个 100 MB 才能 Hold 住了。
所以,明知道 “Chrome 套壳” 方案可能导致内存绷不住,为什么 QQ 桌面版团队还是一股脑往前冲呢?
就像我前面跟大家提过一嘴的:开源的 Qt 框架、腾讯自研的 Hummer 框架,在这方面处理的都比 Electron 要好,为什么不用呢?
不出意外地,这个事在知乎上也激起了不小的讨论 —— 而目前看来,可能是因为两个比较现实的情况。
我们先说第一个吧:精通 C++ 原生开发的人才越来越稀有了,拿来写图形界面、客户端什么的太可惜了。
本着 “ 好钢用在刀刃上 ” 的原则,肯定优先让这些 “ 稀有物种 ” 去倒腾后端,保证整套系统的稳定。
而不是让他们把精力浪费在客户端界面的输出上。
很可惜,我们前面提到的 Qt 啊、Hummer 之类的,都是以 C++ 语言为底的。
外加上第二个原因:去年的大厂们,几乎都在 “ 减负 ” 。鹅厂看起来也没少 “ 减 ” 。
所以问题来了:绕过 C++、用最少人手完成面向三个操作系统的客户端开发。
Electron 貌似是唯一的解。
真的。大家可能不知道 Electron 框架到底有多省开发:前面我提了一嘴的游戏语音软件 KOOK ,两年前的时候我曾经去他们公司拜访过。
他们的四个端:全功能网页版、Windows 客户端、Android 客户端、iOS 客户端。
满打满算只用了三个人!
我估计,QQ 桌面版要是全面切换成 Electron 框架,不算后端只算前端的话。
最多四五个人,就把 Windows / Linux / MacOS 的活全都给干了。
也就是说,把现有代码彻底放弃改用 Electron 重构,对于 QQ 团队的负责人来说属于 “人效比拉满”、百利无一害。
顶多用户的内存受点儿苦。
但是话又说回来了,需要受这份苦的用户,还剩下多少呢?
QQ 最后一次顶点是 2018 年,那一年,QQ 全平台月活 8 亿,移动端 6.99 亿。
但是五年之后,这个数据已经少了两个小目标了。
以前,QQ 还会公布一下桌面端的月活人数,然而现在已经……
这次 QQ 桌面端推倒重来,说的阴暗些,就是它的地位再次下滑了。
不然怎么从来没听说过微信电脑版需要使用 Electron 重构呢?
看得出来,QQ 这两年还是很支楞的,并且也在想尽办法促活:
比如网上偶尔会有吐槽微信没有 XXX 功能的帖子,QQ 扭头一个更新就安排上了。
也有比如像小世界、QQ 频道等等。
现在我身边习惯使用 QQ 频道的小伙伴已经有不少了。
但是该说不说,语音进度条一类的功能只能算是微创新,频道功能又是赤果果借鉴 Discord。
这些功能,成不了 QQ 本身的护城河。
Discord 界面截图 ▼
要想彻底支楞起来,QQ 还是得想办法掏出来真正属于自己的创新和特色。
不然的话,别看现在是下坡路 —— 以后的下坡路,可还长着呢。
到时候说不定,给 QQ 优化 Electron 代码的人手也要被 “ 优化 ” 啦。
哦话说回来,后来知乎上疑似是 QQ 官方开发人员的知友 “ MagiLu ” 发帖说,开发团队有信心控制好 Electron 框架吃内存的问题。
当然了。怎么样算 “ 控制好 ” ,大家心里的标尺也不一样。
我们也只能等春节之后装上用用再看了。