程序语言的静态类型的出发点,其实是把程序员看成是一个流水线工人的一种哲学,而
动态类型是把程序员看成是一个用手艺吃饭的自由工匠的哲学。
我都说了很多遍了,复杂的商业应用程序,处理人类用户关心的信息,所谓RH的
situated programming, 是我讨论的用例,这其实是99%以上的职业程序员的时常工作
,只是大多数程序员不愿面对和承认而已。这种编程,大多是由PHB (pointy haired
boss) 驱动的,也就是由不懂技术的PM决定的,他们今天要这个,明天要那个,这个和
那个可能连逻辑都不自洽,但他们就要这样,广大程序员们没有任何办法,日常工作就
是搞这些屎一样的东西。大家扪心自问,是不是这样?
Clojure的哲学,是让搞这些东西也可以搞得很开心,让你的编程生涯轻松和愉快。你
不一定非要去搞政治,其实搞技术也可以自己很开心,同时让老板也很开心,给你高工
资。根据stackoverflow调查,Clojure是工资最高的编程语言。
Clojure哲学代表的这种追求,其实是一种职业工匠的追求,是程序员们应该追求的方
向。而不是反方向, 把编程搞成流水线工作,个人完全没有任何自主权,如果都要靠
工具好用才能编程,都工业化了,谁都可以被替代,那可不就996什么都来了。对不对
?资本家当然想把编程变成流水线工作,但程序员还跟着吆喝,是不是有点傻?
好了,有人说,但是最后工业化会赢的,以前的那些木匠石匠们不都被工厂替代了么?
我说,编程有特殊性。编程是对付虚拟的东西,人对虚拟东西的需求是无止境的。而木
匠石匠都是搞物理东西的,物理是有止境的,所以可以被科学化,工程化,而虚拟的东
西不可以被科学化和工程化。所以软件“工程”从来也不是工程,反而和流行服装届更
接近,各种风格轮换着流行。这种行业,流水线只能造便宜货,高附加值的东西,还是
需要工匠。
你是想做工匠还是流水线工人?