Unix 操作系统诞生于 20 世纪 60 年代,经过几十年的发展,技术日臻成熟。在这个过程中,Unix 独特的设计哲学和美学也深深地吸引了一大批技术开发人员,他们在维护和使用 Unix 的同时,Unix 也影响了他们的思考方式和看待世界的角度。
什么是 Unix 哲学?简单来说,Unix 哲学是一套基于 Unix 操作系统顶级开发者们的经验所提出的软件开发的准则和理念。
也就是说,Unix 哲学并不是正统的计算机科学理论,它的形成更多是以经验为基础。你一定听说过模块化、解耦、高内聚低耦合这些设计原则,还有类似开源软件和开源社区文化,这些最早都是起源于 Unix 哲学。可以说 Unix 哲学是过去几十年里对软件行业影响意义最深远的编程文化。
一、Unix哲学的本质
Unix 哲学最早起源于 1978 年,是 Unix 设计者在一次关于如何设计简洁、高效的操作系统服务接口中的思考总结。在随后的几十年间,它逐渐形成了自己独特的编程文化,并发展出了一套影响深远的设计哲学。
简单来说,早期的 Unix 开发人员将“模块化”和“可重用性”概念引入软件开发实践中,并在程序设计中建立了一套用于开发软件的文化规范。
不同于传统系统设计理论的自顶向下,Unix 哲学注重实效,立足于丰富的经验,所以说不算是一种正规的设计方法,更像是一门艺术技艺,但是这并不妨碍它的思想精粹在软件行业中发光、发热。
Unix 设计哲学,主张组合设计,而不是单体设计;主张使用集体智慧,而不是某个人的特殊智慧。
比如,现在流行的开源文化,最早便是 Unix 技术社区提倡的共享代码文化演化而来的,以至于到后来出现的 Linux,到现在都一直保留着开放源码的传统。正是因为开源代码的缘故,才使得更多的程序员开始去研究 Unix 的设计精髓,并不断实践与发展 Unix 哲学。这体现了强大的组合思维的威力。
所以说,当真正了解了 Unix 哲学后,你会发现今天的很多编程思想和编程方法都是对 Unix 哲学思想的一种传承或演化。
二、对编程的启示
Unix 哲学发展至今,诞生了无数优秀的设计原则和最佳实践,对整个业界也产生了深远的影响。不过,对于编程来说,最有价值的原则要数 Peter H. Salus 总结的这三条原则:
-
编写可以做一件事并且做得很好的程序;