bg
  • 差评
  • 2023年1月19日12时

    “巨型屎山”QQ桌面版终于要重做,但腾讯还是被骂惨了。。。



    每次打开 QQ 桌面版,世超都有一种回到小时候的感觉 —— 这可不是对 QQ 的夸奖。


    作为一个 20 多岁的互联网活化石,在不断的修修补补、增增减减之后,QQ 电脑版也和微软 Win11 一样,存在着很多不协调的 “ 割裂感 ” 。


    就比方说,本来就不算大的主界面里,愣是存在着三个可展开的选项菜单。


    主要的功能按钮也被划分到了顶部、中间、底部。


    并且还被分别赋予了 “ 小图标 ” 、 “ 纯文字 ” 、 “ 中图标 ” 三种展现形式。


    尤其是这两年 “ 移动文化 ” 的反哺,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 浏览器这个 “ 万恶之源 ” 说起。。。


    等一等,我们刚刚不是在聊写代码吗,怎么突然扯到谷歌浏览器身上了?


    emmmmm,大家先别急,麻烦大家伙先跟我一起回想个事:


    你还记得谷歌 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 框架吃内存的问题。


    当然了。。。怎么样算 “ 控制好 ” ,大家心里的标尺也不一样。


    我们也只能等春节之后装上用用再看了。。。


    撰文:鹤然 编辑:米罗 & 面线 美编:子曰

    参考资料:

    现在的Windows程序大多都是用什么语言开发的? - 知乎
    腾讯基于Electron技术的Windows版QQ内测版本预计2023 年推出,该版本有哪些新功能? - 知乎
    腾讯QQ为什要自研UI框架,而不用QT/MFC? - 知乎
    大公司该不该用Electron?
    腾讯开发者谈基于 Electron 技术的 Windows 版 QQ,将带来哪些新变化? - IT之家
    跨越平台桌面应用开发框架electron使用的心路历程_小飞猫_的博客-CSDN博客_electron