在许多狂热的FreeBSD 粉丝里,他们甚至不允许别人把FreeBSD写作freebsd,要和你强调,F和BSD都是大写的。还说这是什么尊重之类的东西。大抵和孔乙己的茴香豆的茴的有四种写法一样吧:“FreeBSD拼写有四样写法,你知道么?”,“不能写罢?……我教给你,记着!‘FreeBSD’、‘freeBSD’、‘Freebsd’、‘freebsd’这些字应该记着。以后做FreeBSD管理员的时候,写文档要用。”
我觉得这是一种病。用自己的要求规范别人。起码和孔乙己是一样的。
狂热粉一到店,所有喝酒的人便都看着他笑,有的叫道,“狂热粉,你脸上又添上新伤疤了!”他不回答,对柜里说,“温两碗酒,要一碟茴香豆。”便排出九文大钱。他们又故意的高声嚷道,“你一定又把FreeBSD这个单词小写了!”狂热粉睁大眼睛说,“你怎么这样凭空污人清白……”“什么清白?我前天亲眼见你在群里用小写拼出了freebsd,被群主和管理员吊着十循。”狂热粉便涨红了脸,额上的青筋条条绽出,争辩道,“小写不能算错……特殊的表达方式!……读书人的事,能算错么?”接连便是难懂的话,什么“人非圣贤,孰能无错”,什么“特殊语法”之类,引得众人都哄笑起来:店内外充满了快活的空气。
讨论了这些可笑的大小写问题,再来说说以前经常说的苦难哲学。
能用Windows在几秒钟内完成的工作,非要在Linux上瞎折腾,QQ是腾讯公司软件,嘴上说着GNU精神,手上开始装virtual box或者wine crossover。这算哪门子free?这就是苦难哲学,你知道离不开QQ ,那就无法选择Linux。当然每个人选择百分之几的生活都是自由的,只是,不累吗?这不是自由,是束缚。都到Linux 了,还是依赖于QQ。这是苦难哲学彻头彻尾的体现。具体表现就是自己折磨自己,重复造轮子,不尊重现实。那些说着不要管是什么,先写个项目的人,都是这种人 ,造成了更大的悲哀。是不尊重软件工程的表现,完全无视用户与市场需求。写出来的东西别人怎么用,怎么看?吹嘘什么命令行比图形化好,说什么开发周期,加几个框框就能影响开发周期了?无不是受苦难哲学的影响。仿佛多经过一些步骤在类UNIX上实现了和Windows类似的功能是多么牛逼的一件事。有人连fcitx和rime都分不清就和我说ibus好。真是有趣的苦难哲学呢。
如何定义苦难哲学呢?
造轮子(无意义重复前人工作),忽视已有软件开发原理;
明明能用A完成非要用什么意义价值观这种玄而又玄的狗屁原则问题这种东西来捆绑自己用B完成;
鄙视一切用鼠标的软件,去背什么vi键盘图;
那么回过头来,用WP手机的用户是否也是苦难哲学的受害者?使用Linux桌面,FreeBSD桌面的用户是否也是苦难哲学的践行者?
在某种意义上来说,确认如此。一些人非要在Linux下学习C语言,说什么更清楚的了解IDE的工作方法,说什么预处理编译汇编链接在IDE 下不直观,非要折腾自己用什么GCC,GCC好用吗?对于初学者来说有什么用?那些是编译原理课程所需要的,而不是C语言。作为一门编程语言课程,绝不能无限的扩展其课程内容,况且目的不同,什么指针这种东西在高级语言里是几乎看不到的,吹嘘什么更理解指针与数组的实现原理是苦难哲学的表现。无异于屠龙术。我还是那句话,编译原理和算法导论没有用,大部分企业公司用不到,要对自己有一个定位,是搬砖的就不需要学习量子力学。除非仅仅出于爱好或者学术目的。
用户需求决定了软件的开发方向,而缺乏商业支持的开源产品往往无视之。用GPL协议捆绑用户也是一种苦难哲学。按照这个观点,用Windows就不是苦难哲学了?不然,能用Linux很快完成的工作,为什么非要用Windows?到底这种东西是不是工具,我认为人非工具,而这种该是工具的则一定是工具。
我尊重那些将其珍视为亲人朋友而非工具的用户,但是请务必意识到,人是具有社会属性的,请多多关心他人,无论是谁。
我不止一次的看到这句话“多谈技术,勿水”,有时候则是其变种“你写过什么项目吗?”,“这里用什么可以实现”,“试编程,完成……”这种句子。有时候甚至是英文,是中英混杂的。我觉得这破坏了语言的纯洁性。
因此很多计算机行业或者爱好者的圈子都有专门的“水群”,还有个组织的名字更加有趣,叫做“水立方”来“水”。他们认为的“水”不完全是与计算机或者其主题无关的东西,有时候只是随便发发以显示自己的权威。
“如果你不按照我的方式去做,我们就没有交流的前提存在。”这就是他们的观点。“闻道有先后,术业有专攻”,韩愈的《师说》就阐述了这个道理,我们和他的不同之处无非就是时间罢了。这些和天赋什么东西完全无关。这并不比造火箭那样复杂。所以我不认为这种规则,双方平等对话的规则是建立在遵守一方先有规定的基础上。现在计算机界中引入了这样一个政治词汇“政治正确”就是为了反对这种固有规则。
看起来有些荒谬,技术和这些有什么关系?关我屁事?是的,和我以前说的那样,总是认为这些东西是无用的,技术强就是最厉害的。这是缺乏人文关怀的体现。这些无用之物不是因为其真正无用,而是太有用了以至于不知道怎么用。从而认为其是玄学。联系是普遍的。
Linus说自己没变,是Linux社区脏了。所谓“强者制定规则,弱者只能遵守”,但是强者一开始就最强?强者的存在意义是什么?我认为强者有更大的责任去发展创新。否则便与社会达尔文主义无二——“优胜劣汰,适者生存”。这是极其不正确的,更是不尊重科学精神的行为。自然科学的结论怎么能够不经过验证,证伪就按到社会科学领域头上?倘若都是“竞争”,那为何要构建什么“和谐社会”,诺贝尔和平奖为什么要颁给“为促进民族国家团结友好、取消或裁减军备以及为和平会议的组织和宣传尽到最大努力或做出最大贡献的人”?直接打不就好了,你自己说的,谁强谁上。计算机行业也很简单,一样照这个套路来,谁技术高谁钱最多,谁说了算,谁在社会上受尊敬。显然不是,有谁记得和乔布斯同月去世的丹尼斯·里奇呢?每个人的选择都是自由的,你完全可以退出那些你不想也没有能力改变其规定的组织。就好比Funtoo Linux之于Gentoo Linux 社区。
我极力避免使我的组织成为这种东西。我给人们更多选择,也坚持原则。
回过头来,”水”是什么意思。我们都知道这个道理:“一个团体或组织里的人越多,其水平就越接近社会平均水平。”好比知乎豆瓣乃至于B站都遇到过商业化的困局。现在的用户几乎根本给不了他们多大的商业价值,而扩招则会降低其专业水准和用户氛围。那既然你允许别人加入,又要不影响这种东西,如何做到?除非对方水平更高,如此其加入能得到什么有意义的东西?所以我们更喜欢新人。而非固执己见的老程序员,甚至还要你叫他“叔叔”。这明显不是一个圈子的人。你和他谈生活,他和你谈年龄,你和他谈技术,他和你谈经验,你和他谈项目,他和你谈工资。我们必须有这种觉悟,谈技术要有拿得出的东西,但不必奇货可居。
有人把这些都扯开了,认为完全靠“人”。此言差矣,封建制度之所以维持这么久,就在于这么一套制度或者几套制度。①中央集权②专营制度③科举制度④思想专制。这是完全靠人的吗?西方其法治才是源远流长。没有任何人能够脱离生活谈技术。现在几乎没有那种所谓“追求真理”的人了。也没有颜回那种有所得乐而忘忧的人了。不还是为了生存?我不懂如今大谈区块链,大数据,人工智能的人和古代那种大谈孟子治国,孔子育人的老儒有何区别。怕也是一个孔乙己。“FreeBSD”中的“F”和”BSD”都要大写,不然就有四种写法。你应该学会罢,将来做运维的时候要用到。
有些入门者也很搞笑,也谈“勿水”,自己进来本来就是“水”的过程。人越多,专业组织水平越低。我力图改变这种局面。还是老话,同心同德,大家想的不一样,就没必要浪费时间了。有人还为新手写了本书,叫“提问的艺术”,或者直接说read fuck。诚然我承认不是每个人都和孔子一样有教无类,是个教育家。但是我还是愿意给出更多帮助,因为,曾经每个人都如此。
最后奉劝读者,勿用百毒,善用Google Duckduckgo等。这也是你能看懂本文的前提所在。否则你不可能明确地理解我的意思,我承认读者自己的阅读理解是对作品的再次创作,但此处请务必不要。
什么是苦难哲学,这个词不是我生造出来的,而是切实存在的,在学界这么多年我看到很多充斥着苦难哲学的地方以及构成这些地方的成员和他们所开发的软件。
软件工程,是将软件开发规范化,流程化以提高软件开发效率的一种工业方法。
软件工程第一步就是用户需求分析,大多数苦难的来源就是因为无视这一步,总是认为“写”代码是最重要的,而“算法”更是其吹捧的重中之重,所以写文档,用户需求分析什么的,和自己没多大关系。自己只管写代码就好,有没有人用?造轮子?那都不是我所需要考虑的问题,无视科学,不尊重科学是苦难哲学产生的重要根源。
有人认为自己是做内核开发的就很牛逼,但其实不过尔尔。
连Linux内核不是完全开源(见GNU Linux-libre项目,一个完全开源的linux内核)这一事实都不知道,还认为内核完全都是开源的,还能说出“不开源那我是怎么编译”这种胡话,真是令人忍俊不禁。这些骄傲的人儿不在少数,我在USTC和TUNA都见过很多,或者说都是这种人。对此我不予置评。都是被苦难哲学毒害无法自拔的人们啊。
开源软件的质量通常很差,存在各种问题,甚至是非常易于发现的问题。就拿图形化界面的ZenmapGUI来说,至少存在两个重要bug。一是经常性地在输入框无法输入任何文字,且与输入法键盘无关(问题在多台计算机均复现);二是当切换扫描窗口时,扫描输入的日志会被清空,找不到日志。所以我很好奇这些人究竟自己用没用过自己开发出来的软件,因为凡是用过的都有这种问题。这难道说不上是一种苦难吗?(已经报告bug但未回应)原因在于人力和资金问题,开发者水平参差不齐,能力有限,二是本身有本职工作,无法分心顾忌太多。
这种简单的bug随处可见,比如安装Debian时,如果你创建了普通用户,那么你使用su命令或者sudo su命令都不会成功,因为其并未改动sudo 的配置文件(应加入 ALL=(ALL) 一行)。虽然只是一行只差,但足够困扰新手了,反观windows绝不会有这种问题,蓝屏了重启你多半是能够开机的,但kernel panic怎么办呢?我想重启是无用功。是技术问题吗?是其根本不关心这些问题。
所以产生了FreeBSD Handbook文档要不要翻译,有什么意义的问题,当然缺乏人手各种推诿是主要原因。会的不用翻译,不会的翻译了也没用,还是不会。
计算机哲学目前没有一个完全大一统的理论体系。计算主义是一大主流,源自毕达哥拉斯学派,其认为数是万物本原,数是和谐统一美的东西,构成了世界。
黑客帝国就蕴含了计算主义:如何证明我们真实存在,而不是计算机模拟的数字信号?
苦难哲学看上去只是一种行为方式,如在Windows平台安装VIM,并声称其比记事本强一万倍。但不然,苦难哲学只是通过这些行为表现出来,其根源还需要进一步批判思索。