全新版本的QQ,采用Electron框架开发,看到这儿,很多同学就开喷了,咱们先等一下。
Electron被很多人诟病,原因是体积太大,性能不够强。但是这其实是一个误区,由于Electron上手很简单,对跨平台开发,提供了很好的一个解决方案,并且原生支持NodeJS,又极大的降低了开发难度,所以现在使用Electron开发的人很多,基本上是你会点前端的东西,就能开发。
但是Electron程序存在一个严重的问题是,体积。为了方便用户使用HTML做UI以及跨平台,将Chromium打包了进来,也就是说,不管你实现多么简单的功能,都会给你打包一个浏览器进来,体积就会增加个一两百M,对开发者来说,不用考虑跨平台不同系统显示的问题了,一套代码也可以很方便的移植,但是对用户来说,功能复杂的大型程序还好说,你一个简单的程序,明明1M就能实现的东西,你要搞个100M,确实有点难以接受了。所以针对这一块内容,各家都在出优化方案,其中最成功的就是tauri了,通过调用系统的Webview实现UI显示,成功把体积压缩到了几百KB,极大的减小了程序的体积。
但是,Tauri是基于Rust语言的开发,先不说Rust上手的难度,这不是又要学一门新的东西啊,从学习到开发环境,这要的代价不是一点点,Electron好歹有一些个人开发者,也有不少个人开发的程序在网络流行,而Tauri基本上就没有几个个人开发者了。
现在的电脑,已经不像好多年前了,要考虑这样考虑那样。其实你东西只要做出来了,用户真要用,差不多还是会接受的,只要你给用户下载的速度搞快点,打包后100M左右,用户说下就下了,再配合热更新,对用户的影响是很小的。
好,说了这么多背景,咱们就来说一下新版QQ。反观QQ,尽管接入到了Electron,但是并没有完全使用nodejs开发,整个resources目录,几乎所有的程序内容,放到了versions目录里面。
进入后,跟以前版本的QQ一样,将不同版本的的程序,放到一个目录。更新的时候,会创建新的目录。这方式,跟QQ系如出一辙,不仅是QQ这么操作的,微信同样也是这么干的。更新也不会删除以前的目录,会导致目录越来越大,这并不是一个好习惯。
进入目录后,里面更除了node的东西,还有一大堆库文件,混杂了node程序,还有C++的程序。
里面QQ截图,就接近100M,并且打包进来了微软运行库,看样子是把以前的内容,完全直接打包过来用,并没有重构。
那如此费劲的重构,目的是什么呢?仅仅是为了多平台统一吗。看他的代码,还是会要针对不同的平台写不同的代码,也并没有多方便。
并且,内测包,还是32位!!我不知道正式版是否会支持64位,你都重构了,你最好还是支持一下!
内存占用感觉还是可以,比同样electron开发的程序,占用要低一些(这并不准)
目前挺简洁的,流畅确实是真流畅。不过现在的功能只有聊天相关的东西
设置里面唯一的SVIP功能就是调色,这玩意儿对于只聊天的人来说,可有可无。不知道后面能玩出个什么新花样。
界面上大部分的东西只是个显示,就是个纯粹的聊天工具,甚至点亮的图标都不能点击(那我怎么开通高贵的SVIP?)
现在没有QQ秀,是不是后面要来一个虚幻引擎?
最后,现在QQ最大的优点就是清爽流畅,抛弃了老掉牙的flash,其他的方面并没有什么特别的升级之处。
好,写完了,可以开始喷了。
查看原文。