blob: 4217ce95856cf6b1779a075cb52a11dca14fede5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
+++
title = '不能承受的软件之轻'
slug = 'lightness-of-software'
tags = []
categories = ''
date = 2026-06-08T15:07:39+08:00
draft = true
toc = true
+++
我不允许包大小超过 500 MB 的软件出现在我的电脑上。当然,这排除掉了大多数 Electron 软件(再见,Obsidian!不过鉴于 Logseq 是用 Clojure 写的,我暂且容忍它),我的电脑上也没装 QQ 和微信,不重要但必要的软件我都尽可能选择 Web 端。
我自己作为软件开发者,也尽可能保持包足够小,占用的内存足够小,CPU 占用也尽量合理,但事实是:这很难,各种意义上都很难。<!--more-->
## 认知负荷之难
软件的设计与实现从头到尾都十分消磨精力,界面设计、功能设计、用户体验、安全性、隐私、健壮性、轻量等等要素难以考虑全面,就算思考周全,也必然有取舍。甚至说,设计(产品设计、架构设计、界面设计)就是决策的集合,决策就是取舍——软件设计原则都在那儿,至于要遵从哪些、违背哪些,是开发者的选择。由于不少原则其实相互矛盾,十全十美几乎不可能。
其中,包大小就是最先被舍弃的要素之一。没人在意软件有多大,尤其是那些跑在服务器上的软件,只要不造成性能瓶颈,软件包本身大一点算什么?(或者换一换,只要运行效率高,内存占用多一些又算什么?)对于那些运行在个人电脑和手机上的软件,如今内存和硬盘都*相对*更便宜了,100 MB 和 1GB 之间又有多大区别?
我承认,像我这样对包大小吹毛求疵的人,可能有些太关注细节了。软件最重要的不应该是它好不好用吗?——*可那些粗制滥造的软件恰好也是那些最不在意依赖树大小和编译产物大小的啊。*
|