mimighost 发表于 2013-3-6 11:05

【中出叛徒】王垠:漫谈 Linux,Windows 和 Mac

好了,现在来一点技术性的。这段时间受到很多人的来信(大部分是菜鸟)。他们看了
我很早以前写的推崇 Linux 的文章,想知道如何“抛弃 Windows,学习 Linux”。天
知道他们在哪里找到那么老的文章,真是好事不出门。我觉得我有责任消除我以前的文
章对人的误导,洗清我这个“Linux 狂热分子”的恶名。我觉得我已经写过一些澄清的
文章了,可是怎么还是有人来信问 Linux 的问题。也许因为感觉到“舆论压力”,我
把文章都删了 。

  简言之,我想对那些觉得 Linux 永远也学不会的“菜鸟”们说:

  1. Linux 和 Unix 里面包含了一些非常糟糕的设计。学不会有些东西不是你的错
,是 Linux 的错,是“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) 来发泄
对 Unix 的厌恶。(声明一下,我不厌恶 Unix,我只是不再推崇它。我的视野已经高
于它,以至于我可以理性的分析它。)

  这本书里汇集了 Unix 出现的年代,很多人对它的咒骂。我曾经以为这是一些菜鸟
,他们肯定是不能理解 Unix 的高明设计才在那里骂街。现在理解了程序语言的设计原
理之后,我才发现,他们说的那些话里面居然大部分是实话!其实他们里面很多人在当
年就是世界顶尖的编程高手,功底不亚于 Unix 的创造者。在当年他们就已经使用过设
计更加合理的系统,比如 Multics,Lisp Machine 等。可惜的是,Multics 操作系统
书籍里面往往只是被用来衬托 Unix 的“简单”和伟大。Unix 的书籍喜欢在第一章讲
述这样的历史:“Multics 由于设计过于复杂,试图包罗万象,而且价格昂贵,最后失
败了。” 可是 Multics 失败了吗?不。Multics,Oberon,IBM System/38, Lisp
Machine,…… 在几十年前就拥有了 Linux 现在都还没有的好东西。Unix 里面的东西
,什么虚拟内存,文件系统,…… 基本上都是从 Multics 学来的(有很多没有学得像
)。Multics 的机器,一直到 2000 年都还在运行。Unix 不但“窜改”了历史教科书
,而且永远不吸取教训,到现在还没有实现那些早期系统早就有的好东西。最后 Unix
依靠自己的“宗教”和“哲学”,“战胜”了别的系统在设计上的先进,统治了程序员
的世界。胜者为王,可是 Unix 其实是一个暴君,它不允许你批评它的错误。它利用其
它程序员的舆论压力,让每一个系统设计上的错误,都被说成是用户自己的失误。其它
系统里面某些优秀的系统设计,也许就要被历史掩埋……

  我曾经强烈的推崇 FVWM,TeX 等工具,可是现在擦亮眼睛看来,它们给用户的界
面,其实是非常糟糕的设计。他们把程序设计的许许多多的细节,无情的暴露给用户。
让用户感觉有那么多东西要记,仿佛永远也没法完全操纵它。实话说吧,当年我把
TeXbook 看了两遍,做完了所有的习题(包括最难的“double bend”习题)。几个月
之后,几乎全部忘记干净。为什么呢?因为 TeX 的语言是非常糟糕的设计。它的设计
者几乎完全不明白程序语言设计的基本原则,不明白什么叫做“抽象”。

  一个好的工具,应该只有少数几条需要记忆的规则,就像象棋一样。而这些源于
Unix 的工具却像是“魔鬼棋”或者“三国杀”,有无数的,无聊的,人造的规则。有
些人鄙视图形界面,鄙视 IDE,鄙视含有垃圾回收的语言(比如 Java),鄙视一切“
容易”的东西。他们却不知道,把自己沉浸在别人设计的繁复的规则中,是始终无法成
为大师的。就像一个人,他有能力学会各种“魔鬼棋”的规则,却始终无法达到象棋大
师的高度。所以,容易的东西不一定是坏的,而困难的东西也不一定是好的。学习计算
机(或者任何其它领域)的东西,应该“只选对的,不选难的”。记忆一堆的命令,乌
七八糟的工具用法,最后脑子里什么也不会留下。学习“原理性”的东西,才是永远不
会过时的。

  我并不是说 Windows 好很多。技术设计上的很多细节,也许它在早期是同样糟糕
的。但是它却向着更加结构化,更加简单的方向发展。我认识一个 Adobe 的高级设计
师。他告诉我,当年他们把 Photoshop 移植到 Intel 构架的 Mac,花了两年时间。
Xcode 比起 Visual Studio 真是差太多了。而 Mac OS X 的很多设计,让他们的移植
实在太痛苦。只不过系统换了个处理器,移植个程序居然花了两年时间。不过他很自豪
的说,当年很多人等了两年也没有买 Intel 构架的 Mac,就是因为他们在等待
Photoshop 的移植。最后他直言不讳的说,微软才是真正在乎程序员工具的公司。相比
之下,Apple 虽然对用户比较友好,但是对程序员的界面要差很多。

  一再宣扬别的系统都是向自己学习的 Apple,受到这样的评价,我一点也不惊讶。
Mac OS X 毕竟是从 Unix 改造而来的。我在家里有一个 Macbook Air,一个 iPhone 5
,和一个退役的,装着 Windows 7 的 T60。我不得不承认,虽然我很喜欢 Macbook 和
iPhone 的硬件,但我想念 Windows 和 Android 在软件上的一些设计。一个公司的傲
气,真的可以阻碍它向别人学习,设计出更好的东西。微软也许在当年是傲慢轻狂的公
司,但是我觉得它现在已经度过青春期,长大成熟了。

  当然我不是在这里打击 Linux 和 Mac 而鼓吹 Windows。这些系统的纷争基本上已
经不关我什么事。我只是想告诉新人们,去除头脑里的宗教,偏激,仇恨和鄙视。每一
次仇恨一个东西,你就失去了向它学习的机会。
--

月初照 发表于 2013-3-6 11:09

不少说得没问题啊。
如果是客户端程序开发,win的ide这些的确很强,不过linux做服务器端编程比win下强太多也是事实。

雨宫玲二 发表于 2013-3-6 11:11

说的没错。

雅音宫羽 发表于 2013-3-6 11:12

23333333333


最近真是个跳反的好时节啊!

烂掉蛇 发表于 2013-3-6 11:12

巨硬不是搞了个烂摊子然后一直往上面贴狗皮膏药么...治标不治本
OSX算是亲民的UNIX?...之类的...普及度不够高是硬伤

magnil 发表于 2013-3-6 11:14

笑尿,他终于意识到那些年轻而犯下的错误了吗

qwased 发表于 2013-3-6 11:19

这不是在说程序开发么?win系统毫无疑问是个烂货,各种奇葩问题只能通过重装系统解决,没法维护

----发送自 ZTE ZTE V970,Android 4.1.1

roadcross 发表于 2013-3-6 11:20

M$对程序员友好是没错,但是M$对用户就没那么友好了,不是所有人都精通电脑软硬件,一个是否发送错误报告足够让所有的初级用户手无足措

xclin163 发表于 2013-3-6 11:25

赤色彗星SE 发表于 2013-3-6 11:27

笑死了 orz

qwased 发表于 2013-3-6 11:36

引用第7楼roadcross于2013-03-06 11:20发表的:
M$对程序员友好是没错,但是M$对用户就没那么友好了,不是所有人都精通电脑软硬件,一个是否发送错误报......

光一个注册表和组策略就够吃屎了,win7每周日半夜1点自动运行系统评分也是非常儍逼的设定,不百度还不知道怎么解决

----发送自 ZTE ZTE V970,Android 4.1.1

傅立叶 发表于 2013-3-6 11:37

Microsoft 发表于 2013-3-6 11:39

好文!赞!

黑暗之凰 发表于 2013-3-6 11:41

这是爱的深沉

傅立叶 发表于 2013-3-6 11:41

xxyyzz7711 发表于 2013-3-6 11:41

引用第7楼roadcross于2013-03-06 11:20发表的:
M$对程序员友好是没错,但是M$对用户就没那么友好了,不是所有人都精通电脑软硬件,一个是否发送错误报告足够让所有的初级用户手无足措 images/back.gif


apple也发错误报告的
不过总的来说,因为有appstore的专权,从正规渠道得来的mac软件比各种渠道得来的win软件素质好很多(谁叫ms那么久都没自己的软件店),以至于大家认为mac比win强
对等来说,win也获得了更广泛的软件支持,不管是因为ide好用,还是发布随意,
mac则获得了更好/更统一的人机交互体验

引用第10楼qwased于2013-03-06 11:36发表的 :

光一个注册表和组策略就够吃屎了,win7每周日半夜1点自动运行系统评分也是非常儍逼的设定,不百度还不知道怎么解决

----发送自 ZTE ZTE V970,Android 4.1.1 http://bbs.saraba1st.com/2b/images/back.gif

注册表和组策略是对开发友好的东西没错,但是普通用户你管这些东西干嘛?想改xxxx?有没有想过如果在apple下面你连改都没得改,要不就手动去找plist或者解app包吧..

枝叶柚希 发表于 2013-3-6 11:46

引用第7楼roadcross于2013-03-06 11:20发表的:
M$对程序员友好是没错,但是M$对用户就没那么友好了,不是所有人都精通电脑软硬件,一个是否发送错误报告足够让所有的初级用户手无足措 images/back.gif

单就初级用户而言的话,linux更让其手足无措吧?

Cityrat 发表于 2013-3-6 11:49

我記得破鞋區的大大們明證,水果開發環境最好,對程序員最友好來著

hyeva001 发表于 2013-3-6 11:50

njjwl2005 发表于 2013-3-6 11:52

引用第7楼roadcross于2013-03-06 11:20发表的:
M$对程序员友好是没错,但是M$对用户就没那么友好了,不是所有人都精通电脑软硬件,一个是否发送错误报告足够让所有的初级用户手无足措 images/back.gif

对这种初级用户来说,不是根本没linux屁事吗

Jet.Black 发表于 2013-3-6 11:55

这哥们终于长大了。

生于11月4日 发表于 2013-3-6 11:55

引用第19楼njjwl2005于2013-03-06 11:52发表的:

对这种初级用户来说,不是根本没linux屁事吗
images/back.gif

比如别人给的程序是在linux下运行的,我则需要通过接口加上自己一小段程序。

rotate8 发表于 2013-3-6 11:56

Gnome 创始人 Miguel de Icaza 弃用 Linux 改用 Mac http://www.solidot.org/story?sid=33710

valkrie 发表于 2013-3-6 11:57

高玩曲高和寡不能向低玩证明linux的好,低玩则根本玩不了linux,至于说某低玩在windows上都要吃瘪然后被linux拯救了这种段子不论说跟信都需要很大的耻度。

endrollex 发表于 2013-3-6 12:03

初级用户用啥TeX,用proTeXt很简单

nonmoi 发表于 2013-3-6 12:06

反正就是一群人包围着微软打:让你丫收费,让你丫收费,你看我们的都不要钱!

Realplayer 发表于 2013-3-6 12:07

来点干货吧,这都说了什么玩意

الطائر 发表于 2013-3-6 12:08

Plan 9 比 UNIX 好100 倍,你们敢用吗?

nonmoi 发表于 2013-3-6 12:09

引用第26楼Realplayer于2013-03-06 12:07发表的:
来点干货吧,这都说了什么玩意 images/back.gif




这个就是那个清华退学要用linux的牛人嘛,笑笑就好。
不懂背景的可以看http://kurttlin.diandian.com/post/2011-10-03/5502426

d2loader 发表于 2013-3-6 12:10

买一台mac 一台windows pc 一台linux pc。

有真爱的码农不都应该这样么

这篇文一定是这个意思

mimighost 发表于 2013-3-6 12:15

回 26楼(Realplayer) 的帖子

这篇问的喷点就在这里,没有干货,只有结论。这哥们儿真是闲的蛋碎了,不找点儿存在感就不舒服。

BirDIE 发表于 2013-3-6 12:16

引用第7楼roadcross于2013-03-06 11:20发表的:
M$对程序员友好是没错,但是M$对用户就没那么友好了,不是所有人都精通电脑软硬件,一个是否发送错误报告足够让所有的初级用户手无足措 images/back.gif


我怎么觉得恰恰相反……我用OSX的原因还不是就是因为可以不用搞什么鸡巴cygwin mingw什么的安心coding么。但真让我玩电脑的时候我还是宁可用windows。

mimighost 发表于 2013-3-6 12:16

回 25楼(nonmoi) 的帖子

微软的东西还卖的出去么?Win8这么自贱身价依然无法挽留用户~

aithinkso 发表于 2013-3-6 12:17

引用楼主mimighost于2013-03-06 11:05发表的 【中出叛徒】王垠:漫谈 Linux,Windows 和 Mac :
最后 Unix依靠自己的“宗教”和“哲学”,“战胜”了别的系统在设计上的先进,统治了程序员的世界。胜者为王,可是 Unix 其实是一个暴君,它不允许你批评它的错误。它利用其它程序员的舆论压力,让每一个系统设计上的错误,都被说成是用户自己的失误。其它系统里面某些优秀的系统设计,也许就要被历史掩埋……
images/back.gif

敢情*nix的份额是靠宗教和暴力占领的,那些被忘掉的“优秀设计”真是冤啊。

RaidenII 发表于 2013-3-6 12:17

引用第27楼الطائر于2013-03-06 12:08发表的:
Plan 9 比 UNIX 好100 倍,你们敢用吗? images/back.gif

我还真用过
结论是Plan9是我见到过的最反人类的GUI
GNOME3暂时居第二位

nonmoi 发表于 2013-3-6 12:17

回 32楼(mimighost) 的帖子

你说卖不出就卖不出咯~~~

合同工 发表于 2013-3-6 12:19

在Windows上跑服务器程序和让普通用户用Unix办公一样,都是噩梦

nonmoi 发表于 2013-3-6 12:24

引用第24楼endrollex于2013-03-06 12:03发表的:
初级用户用啥TeX,用proTeXt很简单 images/back.gif




这人自己博客上推的是TeXmacs


另外,我记得这人去google实习还是什么的,后来还喷了google……

tf小红帽 发表于 2013-3-6 12:27

低端钓鱼文,不如“PHP是最好的语言”

fanhe 发表于 2013-3-6 12:42

这个人我有印象,反正能只身一人跑去爸爸国的都是牛逼的人
页: [1] 2 3 4
查看完整版本: 【中出叛徒】王垠:漫谈 Linux,Windows 和 Mac