在许多狂热的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好。真是有趣的苦难哲学呢。

如何定义苦难哲学呢?

  1. 造轮子(无意义重复前人工作),忽视已有软件开发原理;
  2. 明明能用A完成非要用什么意义价值观这种玄而又玄的狗屁原则问题这种东西来捆绑自己用B完成;
  3. 鄙视一切用鼠标的软件,去背什么vi键盘图;

那么回过头来,用WP手机的用户是否也是苦难哲学的受害者?使用Linux桌面,FreeBSD桌面的用户是否也是苦难哲学的践行者?

在某种意义上来说,确认如此。一些人非要在Linux下学习C语言,说什么更清楚的了解IDE的工作方法,说什么预处理编译汇编链接在IDE 下不直观,非要折腾自己用什么GCC,GCC好用吗?对于初学者来说有什么用?那些是编译原理课程所需要的,而不是C语言。作为一门编程语言课程,绝不能无限的扩展其课程内容,况且目的不同,什么指针这种东西在高级语言里是几乎看不到的,吹嘘什么更理解指针与数组的实现原理是苦难哲学的表现。无异于屠龙术。我还是那句话,编译原理和算法导论没有用,大部分企业公司用不到,要对自己有一个定位,是搬砖的就不需要学习量子力学。除非仅仅出于爱好或者学术目的。

用户需求决定了软件的开发方向,而缺乏商业支持的开源产品往往无视之。用GPL协议捆绑用户也是一种苦难哲学。按照这个观点,用Windows就不是苦难哲学了?不然,能用Linux很快完成的工作,为什么非要用Windows?到底这种东西是不是工具,我认为人非工具,而这种该是工具的则一定是工具。

我尊重那些将其珍视为亲人朋友而非工具的用户,但是请务必意识到,人是具有社会属性的,请多多关心他人,无论是谁。

FreeBSD 乃至开源界中的孔乙己 再论苦难哲学之一的更多相关文章

  1. 细数Android开源项目中那些频繁使用的并发库中的类

    这篇blog旨在帮助大家 梳理一下前面分析的那些开源代码中喜欢使用的一些类,这对我们真正理解这些项目是有极大好处的,以后遇到类似问题 我们就可以自己模仿他们也写 出类似的代码. 1.ExecutorS ...

  2. [转帖]Docker公司被收购,开源界尴尬不?

    Docker公司被收购,开源界尴尬不? https://news.51cto.com/art/201911/606189.htm Docker公司被谁收了? Docker公司被谁收了?Mirantis ...

  3. 孔乙己,一名ERP顾问

    欢迎关注微信公众号:sap_gui (ERP咨询顾问之家) 公司的会议室的格局,是和别处不同的:都是中间一个大的会议圆桌,桌子上面放着各台电脑,可以随时打开ERP系统.做ERP顾问的人,傍午傍晚下了班 ...

  4. 做开源界的MATLAB,PyMiner 需要更多热爱开源的你加入

    MATLAB 和 Mathematica.Maple 并称为三大数学软件.它在数学类科技应用软件中在数值计算方面首屈一指.MATLAB 可以进行矩阵运算.绘制函数和数据.实现算法.创建用户界面.连接其 ...

  5. android studio 使用jar包,arr包和怎么使用githup开源项目中的aar包或module

    我这里的android studio的版本是2.2.3版本 一.现在大家都用android studio了,就有人问怎么使用jar包 其实使用jar包比较简单 直接吧jar放入工程的app目录下的li ...

  6. [转]C,C++开源项目中的100个Bugs

    [转]C,C++开源项目中的100个Bugs http://tonybai.com/2013/04/10/100-bugs-in-c-cpp-opensource-projects/ 俄罗斯OOO P ...

  7. Afinal开源框架中FinalActivity的使用

    1. 首先将afinal.jar文件复制到项目中的libs文件夹下 2. 让MainActivity不在继承系统的Activity,而是继承FinalActivity public class Mai ...

  8. 关于人人开源renren-fast-vue 中npm install各种报错的解决方案

    首先吐槽一下,因为这个问题我整了好几天,把报错信息复制百度,试遍了各种方法,node.js我是卸载了安装,安装了卸载,甚至renren-fast-vue我也删了再下,然后再删,无限循环.然而没有什么软 ...

  9. dotnet 是 前30个增长最快速度的开源项目中排名第一的开发平台

    CNCF 的博客 发了一篇文章 <Update on CNCF and Open Source Project Velocity 2020>,中文翻译参见 2020年CNCF和开源项目开发 ...

随机推荐

  1. read()、readline()、readlines() -- Python

    文本文件:readfile.txt 详细描述: read()                  #一次性读取文本中全部的内容,以字符串的形式返回结果 readline()           #只读取 ...

  2. ssh配置方面小实验②

    4.禁止使用密码登录当我们学会了使用密钥对进行验证后,建议生产环境下将账户密码登录功能关掉配置文件:/etc/ssh/sshd_config选项: PasswordAuthentication no ...

  3. Docker网络模式详解

    一.Docker四种工作模式 安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络). none .hosthost:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用 ...

  4. 牛客网多校第5场 H subseq 【树状数组+离散化】

    题目:戳这里 学习博客:戳这里 题意:给n个数为a1~an,找到字典序第k小的序列,输出该序列所有数所在位置. 解题思路:先把所有序列预处理出来,方法是设一个数组为dp,dp[i]表示以i为开头的序列 ...

  5. cin 与 getline

    cin空格截断 getline(cin,s) 换行结束 ....太愚蠢了

  6. 高阶函数 HOF & 高阶组件 HOC

    高阶函数 HOF & 高阶组件 HOC 高阶类 js HOC 高阶函数 HOF 函数作为参数 函数作为返回值 "use strict"; /** * * @author x ...

  7. Upcoming Browser Behavior Changes & Chrome & SameSite

    Upcoming Browser Behavior Changes & Chrome & SameSite Chrome 80 https://auth0.com/blog/brows ...

  8. Virtual Reality In Action

    Virtual Reality In Action VR WebXR immersive 沉浸式 https://github.com/immersive-web/webxr https://imme ...

  9. Array.fill & String.padStart & String.padEnd

    Array.fill & String.padStart & String.padEnd Array.fill arr.fill(value[, start[, end]]) http ...

  10. Kotlin & Android & Swift & Flutter & React Native

    Kotlin & Android https://www.runoob.com/kotlin/kotlin-tutorial.html Swift 5 & iOS 12 https:/ ...