导读
“天下没有免费的午餐。”
这句话只说对了一半。对于软件业,或者更准确一点,自由软件业,这并不一直是对的。
商业软件公司正在控制着我们——普通计算机用户甚至专业的程序员——的大脑,在我们的潜意识里面,似乎只有大公司的东西才质量好。下面是几个场景:
- 我倾向通过收费的网课、系列视频或者文章来学习技术,而不是阅读软件自带的免费文档或者是免费外语甚至中文标准,因为前者更容易。
- 免费的东西都是劣质的。只有收费的东西才可以保证质量高。
- 不会有人将优质资源公开免费,除非他们有着特殊目的。
- 大公司的软件比一群只因为兴趣爱好的人写的软件更稳定、更值得信赖。
绝大多数普通用户都会认为这几条全都是正确的,甚至一些有着几年经验的高级程序员也是。他们宁愿买JetB****家的IDE来开发,而不是使用轻量级的、免费的vim
、nano
。后者毫无疑问是大多数UNIX
程序员的必备。
这一切的一切,都是因为某些公司……
一、邪教组织
百度百科这样定义邪教:
邪教大多是以传播宗教教义、拯救人类为幌子,散布谣言,且通常有一个自称开悟的具有超自然力量的教主,以秘密结社的组织形式控制群众,一般以不择手段地敛取钱财为主要目的.。
没问题,老比难道在大多数普通人的眼里就是“超自然”的吗?反正我印象中,媒体“少年黑客”基本上就是一个衣衫整齐、后面挂着老比美照的小孩,后面是中文或者英文版的scratch
。
实际上,我就是个少年黑客,现在初一,但是当然我用UNIX 😃
再看最后一句,不择手段地索取钱财,真的像极了某些公司。想一下你在W*ndows
上进行开发的历史,没人相信你一分钱也没有出。那个愚蠢的Vis*al St*dio
不就是整天嚷嚷着要给你“更好的服务”吗?
然而对此,人们完全是心甘情愿,尽管我没见过被邪教洗脑的分子,但我想他们估计也差不多:花了一大堆钱,等头目被抓了之后,还是不相信这是邪教。
当然,软件是值得付钱的,连自由软件领袖理查德都没有否认这一点。但是,你真的确定那个糟糕的、动不动就“该应用程序无响应”的东西值得这么多钱吗?我反正觉得不是。
W*ndows
还有一个十分神奇的地方。你肯定写过hello, world
程序。这样看,它好像是支持POSIX
的,毕竟设计NT
系统的时候这不就是其中一个目标吗?(当然有的人会跟我说那应该是ISO C
)
实际上呢,好像它只支持了占比很少的几个系统调用,剩下的几乎都是标准库函数(strlen
那样的),就连基本的POSIX
风格的open
都没有……老比是怎么好意思把这样糟糕的系统卖到半万钱的,咱也不知道,毕竟他也不能算是个严谨程序员,而是个商人,写的第一个程序以来就开始想dollar的事了。
再看看自由软件世界怎么样?由于我没用过BSD
,所以不好说传统UNIX
是什么样子的。就拿现代的GNU/Linux
,他支持全套的POSIX
(streams
除外),性能测试也不错(当然,裸机W*ndows也不错。注意裸机),更令人骄傲的是优秀的进程创建以及文件系统。写N*FS
的那个程序员,大概是从*BM
的数据库计划挖过来的,搞得倒是十分的“优雅”。
我知道有些人又要说啥了:W*ndows
的安全认证等级(A1
那样的玩意儿)比你们高!
这里安全认证单单是指对文件的访问权限的丰富,
W*ndows
能设置XXX没法访问之类的
这是无法避免的了,传统UNIX
的设计就从来没想过这一点,用户被抽象成了同组
、拥有者
以及其他
(当然,root
总是有权限)。但就我个人的观点来说,这就足够了,毕竟我没见过有多少W*ndows
用户会创建两个用户。
再来看看软件。
二、哲学 (当然不是
W*ndows
家族的软件挺多,包括I*
这样的令人头疼的浏览器、各种没人碰过的游戏以及一大堆更没人碰过的附件
。这些是随着系统一块安装上去的,想卸载必须手动。还有类似P*wer P***t
这样的有用的高级软件,单个软件就包含了数不尽的功能,并且十分的贵。
了解UNIX
的同学大概已经知道我会说什么了。没错,我要说的就是不同系统下的设计哲学。
这更是一个差距,UNIX
下面的每一个软件都平均不足10 MB
,有着自己独特的分工。wc
就是统计文本文件的、cat
就是显示文件内容的(就是这么简单)、grep
就是在文件里头查找的,类似这样的软件数不胜数。利用UNIX
的设计哲学之一——管道就可以很方便的统计一个文件中含Linux
这个词的行数(bash
不算很精通,见谅)
$ grep "Linux" foo | wc -l
而在那个操作系统呢?你应该需要用记事本先打开那个文件,复制到另一个.doc
文档里头,然后再找一找’查找’键,然后按一下。或许你还需要划到最底下看一看有多少行……
那来个更难一点的呢,看一看当前目录下所有后缀名为.txt
的文件里头有多少行包含Linux
?
对UNIX
来说小菜一碟(弱弱问一句,grep
有查看统计行数的功能吗)
$ find ./ -name "*.txt" | xargs grep "Linux" | wc -l
在另一个伟大的系统上呢?
我想不需要多举例,大家就能看出来这两个系统谁设计的更好了。
还是会有人说,那个系统本来就是给程序员用的,那个系统本来就是给普通用户用的。的确,那为什么你这个程序员还在用
W*
呢?
三、“真幼稚”
在一个复古的群聊中。有这样一个大佬。引用我对他的评价:
此人身长约七尺,自以为风度翩翩,以“京中美男子”自称。自以为其为尔等师,以“全栈大佬”自称,实则不知汇编、不知C为何物者也。
常曰:“仅学可令吾发家之事”,因不学C。遇人问事,常为省流量,仅回“…”二字,包含深意。
吾不与其为友,另有故:其人曰:“C为垃圾”,吾对曰:“尔乃垃圾中上等者也”,因把吾踢出群聊,回看,其信息早已撤回。
他还有一个口头禅,“真幼稚”。如同高雅的文言文里写的一样,他只是为了发家才学编程。所以对于开源、自由之类的……你可以想象到他的反应。
开源幼稚吗?
我想不是的。
理查德在演讲中说了的那样。
软件好像是菜谱。最开始,你从朋友家里拿到了一份,回到家你就开始琢磨了:是放点糖还是放点辣椒呢?都可以。愿意研究的人,可以将菜变得更好吃,更符合一部分人的口味,然后传给别人。所有人都能吃上美味的饭菜。
商业软件做了什么?
软件还是菜谱。一个大厨对你说:“菜谱保密”,你就只能吃他给你做的菜。饭店的饭好吃,没错。但是几天前的315曝光的是什么?没人知道菜里头还有什么,味精鸡精算好的,头发丝也凑合。如果你想要把菜谱给别人,他们就把你扔到监狱里把你叫做贼。这是现实。
更过分的呢?
大厨把菜谱给你了,里面还塞着一个闹钟。你能照着菜谱做30遍,满了限额之后,他们就要求你付钱。不付?那菜谱就会自动销毁。
软件是值得付钱的,我再三强调,一个优秀好用的软件是值得我们高兴地为他付钱的,甚至更优秀的软件会让我们为他捐款。然而,我从没见过有值得五千块钱的软件,没有理由为一个设计落后的微内核,整个系统靠着速度毫秒级的IPC
来工作的系统付上这么多钱。如果说UNIX
值得5000,我觉得无可厚非,因为UNIX
是这个星球上设计最好的系统。
“最好的系统”不是乱说的。拿UNIX
其中一个影响力最大的实现——Linux
来比较,就比较日常用户的体验。启动最慢、内存最大的firefox
也只需要几秒钟时间,按一下鼠标就可以。对于W*ndows
,还需要我说吗?
四、这到底是系统的原因吗
前面的所有内容都在说UNIX
和W*ndows
。抛开金钱,这两个都可以算得上星球上优秀的操作系统。而W*ndows
的裸机性能测试也十分不错。这是我必须承认的客观事实。这一章,我们要讨论的是,到底是什么使得W*ndows
系统在日常生活中如此的慢。
设计
首先我要说的就是设计。
W*ndows
的微内核设计我们无法反驳,那是十分优雅的。然而,它却好像并没有为内核减轻多少开销,毫秒级的IPC
到处都是。它的内核太小了,就连系统调用都放在了动态库
里,导致正常应用的启动要进行多次重链接。
它的窗口框架也不尽人意。回调一直是POSIX
所极力避免的东西,标准中几乎没有关于回调的内容,而是异步、poll
、select
这样更符合人类逻辑的东西。
而它呢,窗口框架的所有消息(就是那个Msg
)都靠回调来处理,正这样导致了响应速度的不尽人意。一个小小的窗口点击、移动都成为了事件。
转过来看UNIX
,与它的窗口框架类似的是signal
。传统信号通过signal()
设置而现代的则通过sigaction()
,无论接口怎么不一样,都有着“默认操作”,即SIG_DFL
。所以如果让我给W*ndows
提一个修改意见,我首先会说:“请加一个RegisterMsgs
调用,为每一个msg都提供一个handler,并支持设置默认以及忽略操作吧!”
自作聪明的用户
你可以看到一系列’XXX 安全管家’的应用程序。在XP
时代,这是必不可少的。然而,现在都……2202年了,还是有数不胜数的自作聪明的用户(甚至程序员)安装他们。我曾经在我的W*ndows 8.1
以及 W*ndows 10
上重装系统并且不安装任何电脑管家,结果性能提升了至少两倍。
当然,我没有说管家没有用。实际上他们是非常有用的,·无数的安全人员编写了他们,但是现代内核不再需要如此严格的保护了,所以说到底,这还是早期W*ndows
太差劲的原因。
然而XXX安全极速浏览器的性质就截然不同了,从来没有人需要过这种应用,而实际上它们就是个套壳。编写这种应用的人和诈骗、邪教完全一样,将他们闭源并且加上几个ad,就变成了自己的国产浏览器。
五、自封后路
综上所述,W*ndows
就是被各种daemon
以及糟糕的后台程序搅黄了,而它们总是喜欢位于后台的原因,根本上就是商业原因——看看你右下角那一个个小图标,它们应该比桌面上显眼吧。
也就是说,商业的W*ndows
自己告别了原来属于自己的——无穷尽的自由软件开发人员。