FreeBSD 乃至开源界中的孔乙己 再论苦难哲学之一
在许多狂热的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?到底这种东西是不是工具,我认为人非工具,而这种该是工具的则一定是工具。
我尊重那些将其珍视为亲人朋友而非工具的用户,但是请务必意识到,人是具有社会属性的,请多多关心他人,无论是谁。
FreeBSD 乃至开源界中的孔乙己 再论苦难哲学之一的更多相关文章
- 细数Android开源项目中那些频繁使用的并发库中的类
这篇blog旨在帮助大家 梳理一下前面分析的那些开源代码中喜欢使用的一些类,这对我们真正理解这些项目是有极大好处的,以后遇到类似问题 我们就可以自己模仿他们也写 出类似的代码. 1.ExecutorS ...
- [转帖]Docker公司被收购,开源界尴尬不?
Docker公司被收购,开源界尴尬不? https://news.51cto.com/art/201911/606189.htm Docker公司被谁收了? Docker公司被谁收了?Mirantis ...
- 孔乙己,一名ERP顾问
欢迎关注微信公众号:sap_gui (ERP咨询顾问之家) 公司的会议室的格局,是和别处不同的:都是中间一个大的会议圆桌,桌子上面放着各台电脑,可以随时打开ERP系统.做ERP顾问的人,傍午傍晚下了班 ...
- 做开源界的MATLAB,PyMiner 需要更多热爱开源的你加入
MATLAB 和 Mathematica.Maple 并称为三大数学软件.它在数学类科技应用软件中在数值计算方面首屈一指.MATLAB 可以进行矩阵运算.绘制函数和数据.实现算法.创建用户界面.连接其 ...
- android studio 使用jar包,arr包和怎么使用githup开源项目中的aar包或module
我这里的android studio的版本是2.2.3版本 一.现在大家都用android studio了,就有人问怎么使用jar包 其实使用jar包比较简单 直接吧jar放入工程的app目录下的li ...
- [转]C,C++开源项目中的100个Bugs
[转]C,C++开源项目中的100个Bugs http://tonybai.com/2013/04/10/100-bugs-in-c-cpp-opensource-projects/ 俄罗斯OOO P ...
- Afinal开源框架中FinalActivity的使用
1. 首先将afinal.jar文件复制到项目中的libs文件夹下 2. 让MainActivity不在继承系统的Activity,而是继承FinalActivity public class Mai ...
- 关于人人开源renren-fast-vue 中npm install各种报错的解决方案
首先吐槽一下,因为这个问题我整了好几天,把报错信息复制百度,试遍了各种方法,node.js我是卸载了安装,安装了卸载,甚至renren-fast-vue我也删了再下,然后再删,无限循环.然而没有什么软 ...
- dotnet 是 前30个增长最快速度的开源项目中排名第一的开发平台
CNCF 的博客 发了一篇文章 <Update on CNCF and Open Source Project Velocity 2020>,中文翻译参见 2020年CNCF和开源项目开发 ...
随机推荐
- [APUE] 进程控制
APUE 一书的第八章学习笔记. 进程标识 大家都知道使用 PID 来标识的. 系统中的一些特殊进程: PID = 0: 调度进程,也称为交换进程 (Swapper) PID = 1: init 进程 ...
- cin的用法
int val=0; cin>>val; 上述程序先定义了一个整型数据val,通过cin读取数据放在val中,如果输入的整型数据,则读取成功,返回的是>>左侧的对象,也就是is ...
- SVG 与 Canvas 对比
SVG 与 Canvas 对比 技术选型 SVG vs Canvas 应用场景 性能 GPU 加速 XML 数据存储 Canvas 2D Canvas 3D WebGL / OpenGL ES thr ...
- JavaScript Number Type Checker
JavaScript Number Type Checker Number.isInteger // static 方法 Number.isInteger(value) https://develop ...
- django学习-25.admin管理后台里:把表名称和表字段名称的展示值都由英文显示改为由中文显示
目录结构 1.前言 2.完整的操作步骤 2.1.第一步:修改模型类Article 2.2.第二步:重启服务 2.3.第三步:退出登录并再次成功登陆admin管理后台 2.4.第四步:查看最新的表名称展 ...
- 小记一下递归通过id寻找一条链路的数据
Array.prototype.remove = function(val) { var index = this.indexOf(val); if (index > -1) { this.sp ...
- PacketStream 和 honeygain 推荐一款可以通过分享带宽赚钱的APP
方法很简单,只需打开网址 PacketStream 或 honeygain 注册,下载客户端登录即可分享带宽.价格0.1美元/G. 绑定paypal账号即可提现.退出客户端即可停止分享带宽.
- 设置ViewPager 自动滑动时间,速度 方便展示动画
ViewPager.setCurrentItem(position),即使已设置动画,但是没有动画效果 原因:因为ViewPager滑动之前的时间间隔太短,可以通过反射,去修改ViewPager自动滑 ...
- 第31天学习打卡(File类。字符流读写文件)
File类 概念 文件,文件夹,一个file对象代表磁盘上的某个文件或者文件夹 构造方法 File(String pathname) File(String parent,String child) ...
- macOS启动Kafka
目录 kafka目录结构 先启动zookeeper 后启动kafka 创建topic 创建一个生产者 创建一个消费者 kafka目录结构 # kafka安装目录 /usr/local/Cellar/k ...