作者:王垠
好了,现在来一点技术性的。这段时间收到很多人的来信(大部分自称是菜鸟)。他们看了我很早以前写的推崇 Linux 的文章,想知道如何“抛弃 Windows,学习 Linux”。天知道他们在哪里找到那么老的文章,真是好事不出门…… 我觉得我有责任消除我以前的文章对人的误导,洗清我这个“Linux 狂热分子”的恶名。
简言之,我想对那些觉得 Linux 永远也学不会的“菜鸟”们说:
1. Linux 和 Unix 里面其实包含了一些非常糟糕的设计。学不会有些东西很多时候不是你的错,而是 Linux 的错,是“Unix 思想” 的错。对 Unix 要批判的接受,而不要顶礼膜拜。那些貌似难的,复杂的东西,特别要小心分析。
2. Windows 其实改善了 Unix,Linux 和 Mac OS X 的很多问题。微软是值得尊敬的公司,是真正在乎程序员的公司。我收回曾经对微软的鄙视态度。请菜鸟们吸收 Windows 设计里面好的东西。
3. 学习操作系统最好的办法是学会(真正的)程序设计,而不是去“学习”各种稀奇古怪的工具。所有操作系统,数据库,Internet,以至于 WEB 的设计思想(和缺陷),几乎都能用程序语言的设计思想简单的解释。
先说说我现在对 Linux 和相关工具(比如 TeX)的看法吧。我每天上班都用 Linux,可是回了家才不想用它呢。上班的时候,我基本上只是“忍受”着它,尽我所能的改善它。Unix 有许多的设计错误,却被当成了圣经,传给了一代又一代的程序员。Unix 的 shell,命令,配置方式,图形界面,都是相当糟糕的。每一个新版本的 Ubuntu 都会在图形界面的设计上出现新的问题,让你感觉历史怎么一会儿前进,一会儿又倒退了。但这只是表面现象。Linux 的图形界面(X window)在本质上几乎是不可治愈的恶疾。我没必要细说 Unix 的缺点,在它出现的早期就已经有人写了一本书,名叫 Unix Hater's Handbook,里面专门有一章叫做 “The X-Windows Disaster”。
当年我热衷于 Linux 的时候就有人向我推荐这本书。它汇集了 Unix 出现的年代,很多人对它的唾骂。他们专门设立了一个 mailing-list 叫 "unix-haters",用于大家发泄。我还以为这是一些菜鸟,他们肯定是智商太低,或者被 Windows 洗脑了,不能理解 Unix 的高明设计才在那里骂街。现在理解了程序语言的设计原理之后,我才发现,他们说的那些话里面居然大部分是实话!而这里面有些人其实是是世界顶尖的编程高手,功底不亚于 Unix 的创造者。在当年他们就已经使用过设计更加合理的系统,比如 Multics,Lisp Machine 等。可惜的是,在现在的操作系统书籍里面,Multics 往往只是被用来衬托 Unix 的“简单”和伟大。它们喜欢在第一章讲述这样的历史:“Multics 由于设计过于复杂,试图包罗万象,而且价格昂贵,最后失败了。” 可是 Multics 失败了吗?Multics,Oberon,IBM System/38, Lisp Machine,…… 在几十年前就拥有了 Linux 现在都还没有的好东西。Unix 里面的东西,什么虚拟内存,文件系统,…… 基本上都是从 Multics 学来的。Multics 的机器一直到 2000 年都还在运行。Unix 不但“窜改”了历史教科书,而且似乎永远不吸取教训,到现在还没有实现一些早期系统里面的好东西。最后 Unix 依靠自己的“宗教”和“哲学”,战胜了别的系统在设计上的先进,统治了程序员的世界。胜者为王,可是 Unix 其实是一个暴君,它倒行逆施,不允许你批评它的错误。它利用其它程序员的舆论压力,让每一个系统设计上的错误,都被说成是用户自己的失误。
我曾经强烈的推崇 FVWM,TeX 等工具,可是现在擦亮眼睛看来,它们给用户的界面,其实也是非常糟糕的,跟 Unix 一脉相承。他们把程序设计的许许多多的细节,无情的暴露给用户。让用户感觉有那么多东西要记,仿佛永远也没法完全操纵它。实话说吧,当年我把 TeXbook 看了两遍,做完了所有的习题(包括最难的“double bend”习题)。几个月之后,几乎全部忘记干净。为什么呢?因为 TeX 的语言的设计其实是不符合程序语言设计的基本原则的。它缺少一种很重要的理念:“抽象”。
一个真正好的工具,应该只有少数几条需要记忆的规则,就像象棋一样。而很多源于 Unix 的工具却像是“魔鬼棋”或者“三国杀”,有太多的,无聊的,人造的“规则”和“特殊技”。有些人鄙视图形界面,鄙视 IDE,鄙视垃圾回收的语言(比如 Java),鄙视一切“容易”的东西。他们却不知道,把自己沉浸在别人设计的繁复的规则中,其实是很无趣的。就像一个人有能力学会各种“魔鬼棋”的规则,却始终无法达到象棋大师的思维高度,因为魔鬼棋本身就是低劣的设计,是低级趣味。所以,容易的东西不一定是坏的,而困难的东西也不一定是好的。学习计算机或者任何其它工具,应该“只选对的,不选难的”。记忆一堆的命令,乌七八糟的工具用法,配置方法,最后脑子里什么也不会留下。学习“原理性”的东西,才是永远不会过时的。
我并不是说 Windows 好很多。技术设计上的很多细节,也许它在早期是同样糟糕的。但是它却向着更加结构化,更加简单的方向发展。我认识一个 Adobe 的高级设计师。他告诉我,当年他们把 Photoshop 移植到 Intel 构架的 Mac,花了两年时间。只不过系统换了个处理器,移植个程序居然花了两年时间。为什么呢?因为 Xcode 比起 Visual Studio 实在差太多了。而 Mac OS X 的很多设计,让他们痛苦不堪。不过他很自豪的说,当年很多人等了两年才买 Intel 构架的 Mac,就是因为他们在等待 Photoshop。最后他直言不讳的说(他明知我有个 Mac,很可能是个 Apple 粉丝),微软其实才是真正在乎程序员的公司。相比之下,Apple 虽然对用户显得友好,但是对程序员的界面却差很多。Apple 尚且如此,Linux 对程序员就更差了。可是有啥办法呢,有些人就是受虐狂。自己痛过之后,还让别人也痛苦。就像当年的我,好的东西不学,仅推崇一些难用,难配置的工具。
我当然不是人云亦云。微软在程序语言上的造诣,我看得很清楚。我只是通过别人的经历,来验证自己早已存在的看法。实际上是我主动问了他这个问题:“你如何比较在 Windows 和 Mac 下的 Photoshop 开发”。所以一再宣扬别的系统都是向自己学习的 Apple 受到这样的评价,我也一点不惊讶。Mac OS X 毕竟是从 Unix 改造而来的,它虽然有很多好的设计,但并没有从 Unix 脱胎换骨。我有一个 Macbook Air,一个 iPhone 5,和一个退役的,装着 Windows 7 的 T60。我不得不承认,虽然我很喜欢 Macbook 和 iPhone 的硬件(当然很多是别人帮它造的),但我发现 Windows 在软件上的很多设计其实更加合理。
说实话,我真的搞不懂为什么我当年会鄙视微软。我只是跟着一些人瞎起哄而已。现在我身边还有一些人鄙视微软。甚至在 Indiana 的时候,有些教授喜欢制造一种“使用 Unix 的学生高人一等”的氛围。微软到底犯着谁了?中国人民到底有几个用 Windows 付了钱的呢 不要忘了 Unix 是 AT&T 的产品。微软和 AT&T,到底谁更邪恶呢?AT&T 当年发现 Unix 有利可图,就到处找人打官司。公司不都是追逐利益的吗。现在看来 Apple, Google,…… 也都是一个样。不过现在,骂 Unix 和骂 Windows 不大一样的地方是,如果骂 Windows,几乎没有人跟你还口。最多有人跟你说,不就是个有点毛病的东西吗,有啥好骂的(埋头继续玩他的游戏)。而如果一旦有人骂 Unix,立刻有人会起来说:“菜鸟不理解 Unix 的哲学。人笨怪刀钝。” 哎,“哲学”的威力就是这么大。
当然我不是反过来在这里打击 Linux 和 Mac 而鼓吹 Windows。这些系统的纷争基本上已经不关我什么事。在我的眼里,它们只是一些“东西”。东西都是低人一等的。人没必要去崇拜或者鄙视一个东西。被东西绊了脚,唾骂它有什么用?只会下次再被绊倒,恶性循环。只有自己爬起来,思考如何合理的改善环境,才能避免下次再被绊倒。
于 2013-03-07 09:34:13发表:
"中国人民到底有几个用 Windows 付了钱的呢"
这个我不赞成,zf的正版化付给微软的前都是用的纳税人的啊
于 2013-03-05 21:58:35发表:
我用LINUX和WINDOWS也有十五六年,只是LINUX在我国没有着地,WINDOWS D版没有绝迹。都是浮华惹的?!
Ddrmail 于 2013-03-05 08:47:40发表:
没奶的就不是娘
wangzf137 于 2013-03-05 08:42:08发表:
绝对是冒名的文章。。。。支持3楼!!!!
于 2013-03-04 22:43:01发表:
其实还是有奶便是娘,又一个跪在金钱面前.
领航edu 于 2013-03-04 15:43:36发表:
确实好长。。(so):)
JinXian 于 2013-03-04 14:42:25发表:
好长
pl_014 于 2013-03-04 14:13:30发表:
[i=s] 本帖最后由 pl_014 于 2013-7-18 07:47 编辑 [/i]
以前王垠曾批Windows,而现在又开始走向了另一个极端,而且都连他自己的下限都快没了:
Windows什么时候成了unix的改进版了?是不是微软曾经做过一个unix系统,所以就说Windows怎么怎么样了?
微软真正在乎程序员?那么您怎么解释win8?怎么解释visual studio高版本中每个版本的程序都需要额外安装自己的运行库?
MFC和ATL都豪不留情地把winapi这个底层细节全盘暴露且融合起来了,对winapi不熟的人基本上是学不会MFC和ATL的,MFC和ATL不过就是对win32做了一下C到C++的转换而已,基本都没进行什么抽象和封装,ATL居然连GUI设计器都没有,这您又该怎么解释呢?
您空在这讲unix等有多么多么地糟糕,又不具体指明哪里糟糕,还叫人家批判地接受。
感情我们优秀的Ubuntu在某些老用户的眼里只有被狂喷的分了,不过这位不同的是这位不是批人家太激进,而是批人家不够激进!某些老用户们当真不是一般地难饲侯。
看书做题仅仅是为了把这些东西记在脑子里,这跟背字典又有何区别呢?您要是学量子力学,是不是也要说:“当年我把费曼、迪拉克、泡利等名人的名著都看了N遍,做完了所有的习题(包括最难的XX)。几个月之后,几乎全部忘记干净”?
此地无银三百两,隔壁王二不曾偷!
人家把photoshop移植到intel的mac需要两年,这足说明photoshop本身存在严重的可移植性问题!跟人家系统本身有屁关系?作为应用软件的程序员,其本分应当是让自己的程序尽可能地让更多的人使用,而不是片面地限制别人的使用情况,而现在的程序员正好反过来,当你发现这些程序移植到别的系统下很难的时候,就说别的系统这不好,那不好,有意思吗?
恩,确实很少有人像您这样在这种深度上毫无节操地去喷unix。
只用盗版确实不对,但现在变了,品牌机上都预装着Windows,叫你想不用Windows,想不付这个钱,都不可能。
我怎么记得这是AT&T的unix被倒卖给sco之后的事呢?而且sco当年还是受了微软的挑拨,才到处打官司。您还是好好学学相关的历史再来秀自己的下限吧。
对!任何药物都有副作用,就不要分好药和坏药了,
任何设计都有好坏一面,不要区分什么优良设计了。
博士也有其不通晓的东西,就不要区分什么是博士、文盲了。
世界上所有的东西都有排他性,就不要讲什么包容了。
圣人也有缺点,凭什么要恶人改正? 监狱里也有好人,凭什么不让囚徒拥有手榴弹保卫正义? 美国也有缺点,凭什么要向美国学习? 凭什么说美国比中国好?
螃蟹虽然表面上比较好吃,可那都是表面上的欺骗性的。本质上,吃螃蟹也会有一些害处
蜘蛛虽然不好吃,但没有美味的欺骗性诱惑性。我更爱吃蜘蛛!
外国奶粉也是添加三聚氰胺的,只是添加的比较”高明“,让人以为没有加。 三路奶粉的添加是显而易见的。 我更爱喝三鹿奶粉。
喝三路奶粉,吃地沟油,坚定不移走中国特色! 什么是本质区别不去考虑,那都是欺骗人的东西。 让别人在这样的逻辑面前嫉妒的颤抖吧!
现在不一样了,骂unix,linux人半信半疑当中还带着些支持(就像您这样),而那帮微软的狗在那起哄叫好;骂 Windows,linux人还有些不以为然(就像您这样),却早被微软的那帮狗的唾喷死了,众口烁金,再好的哲学也难逃此劫。
东西低人一等没错,不去崇拜也没错,但问题是现在有太多的人崇拜微软的东西了,致使对unix只是有那么一叮叮点地喜欢也成了崇拜,对windows只要有一叮叮点不喜欢就成了歧视,致使unix的许多优良设计都被埋没了,致使现在的linux用户处处都遭歧视,致使现在的程序都完全没有可移植性了,致使搞底层开发人员就要落入了社会的底层了。在我看来,您这文章更像是另一种形式的唾骂,而且还要比别人更上一层楼!
unix确实有过时的东西,我也很讨厌linux继承老unix命令参数可以不带'-'的设计,我也不太喜欢unix文件系统允许以字符'-'开头的文件存在,但是不是仅仅因为这些细枝末节的问题,整个unix就像您说得那样一无是处了?您说应当合理地改善环境,但我也没看到您对那些狂喷Ubuntu、linsqire等的顽固分子有任何的批判啊,而且您还从某些层面上支持了那些人。您骂unix这不好,那不好,可您写过那种适合自己的操作系统吗?冒似您是在各系统之间挑来挑去!
从另一方面上讲,linux一切都是可塑的,因为它开放,只要你有这个能力,有这个条件,Windows,则不是,你改人家的系统,就是违法行为!更不要说其它的了。
您认为任何设计都应当完全抽象,只有完全抽象的才是“对用户友好的”,那么您又怎么解释当今几乎所有的芯片手册都把芯片内部的设计细节全盘托出?如果按您的理论讲,这些芯片设计的厂商都罪大恶极!况且微软的MFC和ATL几乎都没有对winapi进行什么抽象和封装!
本人以前一直都对您有仰慕之情,即使是看完您的“unix的缺陷”、“我与Google的故事”等等,可今天看完您这篇文章,才感觉到原来您的立场是如此的不坚定,原来您写文章无非就是喷完了这个再喷那个,我不知道您老在各个工具之间徘徊是为了什么,但我知道的是您这个样子并不是值得我们学习的。
最后送您一样东西,希望您喜欢:
[attach]40046[/attach]
不用怕,本店专业批发,零售各类节操!量大从优
品种多,数量全:化学纯9.8一瓶,分析纯98一瓶,色谱纯998一瓶.品质优,重量足!
妈妈说:有了分析纯节操,再也不怕掉节操了!
[attach]40045[/attach]
peak588 于 2013-03-04 11:36:00发表:
分析的很在理