计算机极简主义的实际价值

Table of Contents

我一直在非常喜欢使用一些 cli & tui 的程序也就所谓命令行和纯文本界面。就算是很多同为开发者的小伙伴们,也会奇怪为什么我放着好好的图形界面程序不用,非要用这些简陋的终端软件?

有时候,我们真的需要这种臃肿的web吗?我们真的需要功能庞大的巨型软件吗?带着这些问题,随着我进入这个行业越久,见识的东西越多,就越能感受到思考这些问题是有意义的。实际上使用那些黑框框的终端软件并不是装逼,它们代表一种软件上的极简主义,对我是有实际价值的。

应用在老式硬件

我大概在2019年开始成为了老款thinkpad的爱好者,使用过它老式的七行键盘,就真的对目前市面上这些笔记本电脑自带的键盘感觉到各种不爽。按键的反馈、键距、键程都没得说,体验上真的是各种行云流水,感觉自己打字都变快了。

不过很可惜,自从被联想收购后就慢慢得变掉了,最后一代7行键盘都是2013年的产品了。所以为了使用这些老款的硬件,我必须要从减低软件的性能入手,这个时候那些命令行的终端软件的优势就开始显现了。

那些tui和cli程序只需要占用非常少的资源,它们绝大多数就几M的大小,基本满足了我听歌、邮件、聊天、开发等日常。而且这一切都轻松跑在了只需要几百块就能购买获得的老式硬件上。

自己动手DIY

命令行软件一般都开源,并且代码量相对来讲都比较少。所以在程序出现问题的情况下,可以通过阅读源码比较方便定位问题以及修改,或者添加新功能。而且软件的功能都比较专一,可以通过各种管道或者网络机制把程序连接起来,构造各种有趣的功能。这些特性赋予了程序从源码级别,以及使用上非常强大的diy能力,帮助我自己动手解决各种各样的问题。

学习样本 (简易的技术模型)

极简软件”缺少“了很多功能,但同时这也使得软件的实现变得非常精简,代码行数往往只有几千或者上百行。换个角度看这是一种极好的学习对象,对于想要学习某类软件的功能实现的时候,我往往可以寻找这方面的极简软件作来学习。这种方式可以极大的减少“信息噪音”,把精力专注到存粹的功能上,以此加快学习的反馈周期。

快速构建原型的能力

同样的极简软件可以帮助我们透过复杂的业务,只留下最精简的那几部分功能。然后再通过简单的编码,就快速搭建建工程原型,帮助我们更好得理清楚整个需求逻辑。

这就像是电子工程师学电路实验的时候使用面包板,面包板省去了焊接的流程,更着重于思考设计逻辑,同时也让电路变得更大更直观。很多时候需求中的痛点在项目设计初期是没有被发现的,往往在后期大量使用之后才会暴露。快速构建原型,可以帮助我们尽快开始运维和运营类似的系统,建立更多的实验反馈,以此来更早的发现设计上的问题和优化。

总结

抛弃各种花里胡哨的属性,留下最纯粹精简的功能,来满足自己的需求。同时代码量的减少,也是非常合适的学习对象。所有这些计算机极简主义的东西,对我而言它将计算机纯粹的 工具化 了。