2014 年,有人在知乎提了个问题:为什么直到现在 RAR 仍然比 7z 更流行? 这个问题陆陆续续一直有人回答,直到今天,RAR 在商业上仍然比 7z 更加流行。

这个问题有很多角度,每个时期的答案也非常不同。这个时代版本的答案是,用户只需要一个打包工具,根本不关心压缩率,7z 最核心的竞争力荡然无存。

我有一个更简洁的回答,即 7z 是面向后端开发的,而不是消费者。
它虽然诞生自 Windows 平台,但它使用的是 Linux 的那套方法论,这就是它难以普及的根本原因。

Linux 的设计哲学是,所有工具都专心做自己的事,然而专一的同时,对商业化非常不友好。
7z 的功能是丑陋的,它拥有 Linux 软件的通病,即:开箱即用的默认配置不合理,无法第一时间满足用户关注的需求。明明它可以做到,但它会把一大堆参数丢给用户。比如,不看说明,有多少人知道 2021 年前 7z 要加入 cu 参数才能保证 zip 不乱码?
如果一定要类比的话,7z 可能是压缩解压界的 ffmpeg,相信没人会问出 为什么 ffplay 不如快播流行 这种鬼话。

相比 tar.gz,7z 还是做到了打包压缩一体化,但这仅仅是做到了不反人类,还远远不够。RAR 支持一步解压 tar.gz、支持分卷、支持注释、支持恢复记录、支持添加到 Email、支持记住密码、扫描病毒等等。很多功能功能是过时的、臃肿的,但是可以看出来,真正优秀的商业软件是如何在每个时代,去迎合用户的需求。反观 7z,只是能用,但不好用。

话又说回来,7z.exe 是不好用 ,但 7z.dll 又不同。一些软件经过 7z.dll 套壳后问世,功能界面几乎完全复刻 WinRAR,然后就好用了。这进一步说明,7z 是面向开发者和后端设计的。
很多软件爱好者会说,这些套壳软件是带广告的流氓软件,有些甚至是强行安装的。但市场已经证明,用户不在乎广告。RAR 弹一个试用过期,和这些软件弹一个广告,对普通用户来说有什么区别呢?用户只是想要一个解压软件,一个不需要说明书就能用好的软件,一个不太反人类、至少压缩 zip 文件名不会乱码的软件。如果一个用户的知识水平达到了认识 7z,他大概率会选择用 RAR,或者某些不带广告的 7z 套壳。

可悲的是,如今,7z 连后端的流行度也难保。尽管企业仍有压缩的需求,但已经不如早期那么极端。而且企业大部分的压缩需求源于流量昂贵,数据更多是为了传输后立刻解包的,而不是为了冷备份。能够顺序读并解压的 zip、效率更高的 zstd,又或者是 webp/webm 这种为浏览器而生的格式,才是贴近时代的解决方案。

我可能还是会用 7z 的命令行做一些极限压缩,或许只是因为好玩,但也仅限于小体积的打包。7z 只能用于个人分享,反正解压它不是难事,但是商业交付,7z 绝对不是什么好选项。不想和用户啰嗦的话,zip 是唯一正解。
最后,做商业产品,一定不要学 7z。