Aug 3, 2005

Small is beautiful


如果把软件比作衣服, 那我们还生活在19世纪. 为了向后兼容, 或传统或规范, 我们必须穿上三件套, 戴上高筒帽, 拄上文明棍儿. 更糟, 软件衣服在保持向后兼容的同时, 还会照顾人们的特殊需要, 有人爱远游, 有人爱打猎, 于是三件套有了内置背包和外挂枪套. 因为要大量生产来降低设计成本, 于是没有了正好合适的衣服, 于是每个人被迫花高价穿着这些去上班. 更糟, 常有人忘记了钱包是随手放进了哪个背包或枪套再也找不到, 而厂商已经声明 AS IS 概不负责, 还有人写傻瓜书 1234 教人们如何定位口袋, 破解扣子, 安放钱包, 再如何查寻是放在哪个口袋...

还好人们解放了自己的衣服, 在家老头衫, 上班牛仔裤, 海边比基尼. 大厂小厂, 大店小店, 衣服千变万化, 供人们随意搭配. 人们喜欢的是合适的衣服, 能自由搭配, 价格也不能贵.

小而专, 是 UNIX 传统的设计理念, 但当更多的人开始编写 UNIX 程序时, 从其它系统得来的思维习惯开始污染她, 于是有了网络系统和X 窗口系统和更多庞大复杂试图自成系统的系统, 每个系统不但内部结构复杂, 对外的接口也各自为政. 系统间不再能轻易的互联, 系统不再能轻易的裁减, 不再有刚好合适的系统, 而只是一大堆不同系统奇怪的堆积.

Plan9 重新回归了小而专的理念. 文件和管道是程序互联的基础. Plan9 进一步把所有可用的资源文件化, 又用频道使多个进程轻易互联. 这些使Plan9 程序开发和维护变得简单.

Inferno 进一步将程序代码变为可随时共享的资源. 专一的格式免去为不同体系结构重新编译的麻烦, 也保证了新的体系结构能立即使用现有代码.

Inferno 模块化的结构使每一模块只专注做好一件事, 用户又能自由组合模块, 裁减系统使之刚好合适. 统一的外部文件接口, 使用户能轻易的组织系统. 甚至只使用Shell 也可搭建完整的网络化图形界面程序!

Inferno 是一套很小很纯的系统, 不要污染她, 用心体会她的设计理念: 小即是美!