计算机极简主义的实际价值
Table of Contents
我一直非常喜欢使用一些 CLI 和 TUI 的程序,也就是命令行和纯文本界面。即使很多同为开发者的小伙伴也常常好奇,为什么我明明有更好的图形界面程序可用,反而偏要选择那些看起来简陋的终端软件?
回过头来仔细想想,真的有必要使用那些臃肿的 Web 程序吗?我们真的需要那些功能庞大的巨型软件吗?随着我在这个行业中待得越久,见识的东西也越多,越能感受到思考这些问题的意义。实际上,使用那些黑框框的终端软件并不是为了“装逼”,它代表的是一种极简主义的软件理念,对我来说,它是有实际价值的。
应用在老式硬件
我大概在2019年开始成为了老款thinkpad的爱好者,使用过它老式的七行键盘,就真的对目前市面上这些笔记本电脑自带的键盘感觉到各种不爽。按键的反馈、键距、键程都没得说,体验上真的是各种行云流水,感觉自己打字都变快了。
不过很可惜,自从被联想收购后就慢慢得变掉了,最后一代7行键盘都是2013年的产品了。所以为了使用这些老款的硬件,我必须要从减低软件的性能入手,这个时候那些命令行的终端软件的优势就开始显现了。
那些tui和cli程序只需要占用非常少的资源,它们绝大多数就几M的大小,基本满足了我听歌、邮件、聊天、开发等日常。而且这一切都轻松跑在了只需要几百块就能购买获得的老式硬件上。
自己动手DIY
命令行软件一般都开源,并且代码量相对来讲都比较少。所以在程序出现问题的情况下,可以通过阅读源码比较方便定位问题以及修改,或者添加新功能。而且软件的功能都比较专一,可以通过各种管道或者网络机制把程序连接起来,构造各种有趣的功能。这些特性赋予了程序从源码级别修改的diy能力,帮助我自己动手解决各种各样的问题。
学习样本 (简易的技术模型)
极简软件”缺少“了很多功能,但同时这也使得软件的实现变得非常精简,代码行数往往只有几千或者上百行。换个角度看这是一种极好的学习对象,对于想要学习某类软件的功能实现的时候,我往往可以寻找这方面的极简软件作来学习。这种方式可以极大的减少“信息噪音”,把精力专注到纯粹的功能上,以此加快学习的反馈周期。
快速构建原型的能力
极简软件可以帮助我们透过复杂的业务,只留下最精简的那几部分功能。然后再通过简单的编码,就快速搭建建工程原型,帮助我们更好得理清楚整个需求逻辑。这就像是电子工程师学电路实验的时候使用面包板,面包板省去了焊接的流程,更着重于思考设计逻辑,同时也让电路变得更大更直观。
很多时候需求的痛点在项目设计初期是没有被发现的,往往在后期大量使用之后才会暴露。快速构建原型,可以帮助我们尽快开始运维和运营原型系统,建立更多的使用上的反馈来更早发现设计上的问题和优化。
总结
抛弃各种花里胡哨的属性,留下最纯粹精简的功能,来满足自己的需求。同时代码量的减少,也是非常合适的学习对象。所有这些计算机极简主义的东西,对我而言它将计算机纯粹的 工具化 了。