找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2192|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

談 Linux,Windows 和 Mac

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:99615 發(fā)表于 2015-12-20 00:37 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
再次找到這篇文章,分享給大家,很慶幸當(dāng)年沒(méi)有被忽悠去學(xué)linux,事實(shí)上,我確實(shí)學(xué)習(xí)過(guò)linux,但我放棄,放棄的原因和文章內(nèi)容所述一致, 以前我說(shuō)linux種種不好的時(shí)候,別人說(shuō)我不自量力,不過(guò),Dennis Ritchie (Unix創(chuàng)造者之一)甚至給罵Unix 的書(shū)作序,這件事到是可以說(shuō)明一些問(wèn)題。轉(zhuǎn)載這篇文章的目的在于,程序員也好,設(shè)計(jì)師也罷,不要老是教條主義,別人說(shuō)什么就是什么,就像當(dāng)年的我。
另外補(bǔ)充一下,我確實(shí)是軟粉,但微軟確實(shí)有很多設(shè)計(jì)不足,好處在于,微軟有專(zhuān)門(mén)的渠道讓用戶反饋,允許你抱怨他們產(chǎn)品的不足之處,不管是電腦還是手機(jī)都可以。而linux,一旦你說(shuō)什么它的不好,呵呵,后果卻很?chē)?yán)重。好的東西不是人人都說(shuō)它的好,而是允許人們說(shuō)它的不好


這段時(shí)間收到很多人的來(lái)信。他們看了我很早以前寫(xiě)的推崇 Linux 的文章,想知道如何“拋棄 Windows,學(xué)習(xí) Linux”。天知道他們?cè)谀睦镎业侥敲蠢系奈恼,真是好事不出門(mén)…… 我覺(jué)得我有責(zé)任消除我以前的文章對(duì)人的誤導(dǎo),洗清我這個(gè)“Linux 狂熱分子”的惡名。我覺(jué)得我已經(jīng)寫(xiě)過(guò)一些澄清的文章了,可是怎么還是有人來(lái)信問(wèn) Linux 的問(wèn)題。也許因?yàn)楦杏X(jué)到“輿論壓力”,我把文章都刪了。

簡(jiǎn)言之,我想對(duì)那些覺(jué)得 Linux 永遠(yuǎn)也學(xué)不會(huì)的“菜鳥(niǎo)”們說(shuō):
  • Linux 和 Unix 里面包含了一些非常糟糕的設(shè)計(jì)。不要被 Unix 的教條主義者嚇倒。學(xué)不會(huì)有些東西很多時(shí)候不是你的錯(cuò),而是 Linux 的錯(cuò),是“Unix 思想” 的錯(cuò)。不要浪費(fèi)時(shí)間去學(xué)習(xí)太多工具的用法,鉆研稀奇古怪的命令行。那些貌似難的,復(fù)雜的東西,特別要小心分析。
  • Windows 避免了 Unix,Linux 和 Mac OS X 的很多問(wèn)題。微軟是值得尊敬的公司,是真正在乎程序開(kāi)發(fā)工具的公司。我收回曾經(jīng)對(duì)微軟的鄙視態(tài)度。請(qǐng)菜鳥(niǎo)們吸收 Windows 設(shè)計(jì)里面好的東西。另外 Visual Studio 是非常好的工具,會(huì)帶來(lái)編程效率的大幅度提升。請(qǐng)不要歧視 IDE。要正視 Emacs,VIM 等文本編輯器的局限性。當(dāng)然,這些正面評(píng)價(jià)不等于說(shuō)你應(yīng)該為微軟工作。就像我喜歡 iPhone,但是卻不一定想給 Apple 工作一樣。
  • 學(xué)習(xí)操作系統(tǒng)最好的辦法是學(xué)會(huì)(真正的)程序設(shè)計(jì)思想,而不是去“學(xué)習(xí)”各種古怪的工具。所有操作系統(tǒng),數(shù)據(jù)庫(kù),Internet,以至于 WEB 的設(shè)計(jì)思想(和缺陷),幾乎都能用程序語(yǔ)言的思想簡(jiǎn)單的解釋。
先說(shuō)說(shuō)我現(xiàn)在對(duì) Linux 和相關(guān)工具(比如 TeX)的看法吧。我每天上班都用 Linux,可是回家才不想用它呢。上班的時(shí)候,我基本上只是盡我所能的改善它,讓它不要給我惹麻煩。Unix 有許許多多的設(shè)計(jì)錯(cuò)誤,卻被當(dāng)成了教條,傳給了一代又一代的程序員,惡性循環(huán)。Unix 的 shell,命令,配置方式,圖形界面,都是相當(dāng)糟糕的。每一個(gè)新版本的 Ubuntu 都會(huì)在圖形界面的設(shè)計(jì)上出現(xiàn)新的錯(cuò)誤,讓你感覺(jué)歷史怎么會(huì)倒退。其實(shí)這只是表面現(xiàn)象。Linux 所用的圖形界面(X Window)在本質(zhì)上幾乎是沒(méi)救的。我不想在這里細(xì)說(shuō) Unix 的缺點(diǎn),在它出現(xiàn)的早期,已經(jīng)有人寫(xiě)了一本書(shū),名叫 Unix Hater's Handbook,里面專(zhuān)門(mén)有一章叫做 The X-Windows Disaster。它分析后指出,X Window 貌似高明的 client-server 設(shè)計(jì),其實(shí)并不像說(shuō)的那么好。
這本書(shū)匯集了 Unix 出現(xiàn)的年代,很多人對(duì)它的咒罵。有趣的是,這本書(shū)有一個(gè)“反序言”,是 Unix 的創(chuàng)造者之一 Dennis Ritchie 寫(xiě)的。我曾經(jīng)以為這些罵 Unix 的人都是一些菜鳥(niǎo)。他們肯定是智商太低,或者被 Windows 洗腦了,不能理解 Unix 的高明設(shè)計(jì)才在那里罵街。現(xiàn)在理解了程序語(yǔ)言的設(shè)計(jì)原理之后,才發(fā)現(xiàn)他們說(shuō)的那些話里面居然大部分是實(shí)話!其實(shí)他們里面有些人在當(dāng)年就是世界頂尖的編程高手,自己寫(xiě)過(guò)操作系統(tǒng)和編譯器,功底不亞于 Unix 的創(chuàng)造者。在當(dāng)年他們就已經(jīng)使用過(guò)設(shè)計(jì)更加合理的系統(tǒng),比如 Multics,Lisp Machine 等。
可惜的是,在現(xiàn)在的操作系統(tǒng)書(shū)籍里面,Multics 往往只是被用來(lái)襯托 Unix 的“簡(jiǎn)單”和偉大。Unix 的書(shū)籍喜歡在第一章講述這樣的歷史:“Multics 由于設(shè)計(jì)過(guò)于復(fù)雜,試圖包羅萬(wàn)象,而且價(jià)格昂貴,最后失敗了! 可是 Multics 失敗了嗎?Multics,Oberon,IBM System/38, Lisp Machine,…… 在幾十年前就擁有了 Linux 現(xiàn)在都還沒(méi)有的好東西。Unix 里面的東西,什么虛擬內(nèi)存,文件系統(tǒng),…… 基本上都是從 Multics 學(xué)來(lái)的。Multics 的機(jī)器,一直到 2000 年都還在運(yùn)行。Unix 不但“竄改”了歷史教科書(shū),而且似乎永遠(yuǎn)不吸取教訓(xùn),到現(xiàn)在還沒(méi)有實(shí)現(xiàn)那些早期系統(tǒng)早就有的好東西。Unix 的設(shè)計(jì)幾乎完全沒(méi)有一致性和原則。各種工具程序功能重復(fù),冗余,沒(méi)法有效地交換數(shù)據(jù)?墒亲詈 Unix 靠著自己的“廉價(jià)”,“宗教”和“哲學(xué)”,戰(zhàn)勝了別的系統(tǒng)在設(shè)計(jì)上的先進(jìn),統(tǒng)治了程序員的世界。
如果你想知道這些“失敗的”操作系統(tǒng)里面有哪些我們現(xiàn)在都還沒(méi)有的先進(jìn)技術(shù),可以參考這篇文章:Oberon - The Overlooked Jewel。它介紹的是 Niklaus Wirth(也就是 Pascal 語(yǔ)言的設(shè)計(jì)者)的 Oberon 操作系統(tǒng)。
勝者為王,可是 Unix 其實(shí)是一個(gè)暴君,它不允許你批評(píng)它的錯(cuò)誤。它利用其它程序員的輿論壓力,讓每一個(gè)系統(tǒng)設(shè)計(jì)上的錯(cuò)誤,都被說(shuō)成是用戶自己的失誤。你不敢說(shuō)一個(gè)工具設(shè)計(jì)有毛病,因?yàn)槿绻麆e人聽(tīng)到了,就會(huì)以為你自己不夠聰明,說(shuō)你“人笨怪刀鈍”。這就像是“皇帝的新裝”里的人們,明明知道皇帝沒(méi)穿衣服,還要說(shuō)“這衣服這漂亮”!總而言之,“對(duì)用戶友好”這個(gè)概念,在 Unix 的世界里是被歧視,被曲解的。Unix 的狂熱分子很多都帶有一種變態(tài)的“精英主義”。他們以用難用的工具為豪,鄙視那些使用“對(duì)用戶友好”的工具的人。
我曾經(jīng)強(qiáng)烈的推崇 FVWM,TeX 等工具,可是現(xiàn)在擦亮眼睛看來(lái),它們給用戶的界面,其實(shí)也是非常糟糕的設(shè)計(jì),跟 Unix 一脈相承。他們把程序設(shè)計(jì)的許多沒(méi)必要的細(xì)節(jié)和自己的設(shè)計(jì)失誤,無(wú)情的暴露給用戶。讓用戶感覺(jué)有那么多東西要記,仿佛永遠(yuǎn)也沒(méi)法掌握它。實(shí)話說(shuō)吧,當(dāng)年我把 TeXbook 看了兩遍,做完了所有的習(xí)題(包括最難的“double bend”習(xí)題)。幾個(gè)月之后,幾乎全部忘記干凈。為什么呢?因?yàn)?TeX 的語(yǔ)言是非常糟糕的設(shè)計(jì),它沒(méi)有遵循程序語(yǔ)言設(shè)計(jì)的基本原則。
這里有一個(gè)鮮為人知的小故事。TeX 之所以有一個(gè)“擴(kuò)展語(yǔ)言”,是 Scheme 的發(fā)明者 Guy Steele 的建議。那年夏天,Steele 在 Stanford 實(shí)習(xí)。他聽(tīng)說(shuō) Knuth 在設(shè)計(jì)一個(gè)排版系統(tǒng),就強(qiáng)烈建議他使用一種擴(kuò)展語(yǔ)言。后來(lái) Knuth 采納了他的建議。不幸的是 Steele 幾個(gè)月后就離開(kāi)了,沒(méi)能幫助 Knuth 完成語(yǔ)言的設(shè)計(jì)。Knuth 老爹顯然有我所說(shuō)的那種“精英主義”,他咋總是設(shè)計(jì)一些難用的東西,寫(xiě)一些難懂的書(shū)?
一個(gè)好的工具,應(yīng)該只有少數(shù)幾條需要記憶的規(guī)則,就像象棋一樣。而這些源于 Unix 的工具卻像是“魔鬼棋”或者“三國(guó)殺”,有太多的,無(wú)聊的,人造的規(guī)則。有些人鄙視圖形界面,鄙視 IDE,鄙視含有垃圾回收的語(yǔ)言(比如 Java),鄙視一切“容易”的東西。他們卻不知道,把自己沉浸在別人設(shè)計(jì)的繁復(fù)的規(guī)則中,是始終無(wú)法成為大師的。就像一個(gè)人,他有能力學(xué)會(huì)各種“魔鬼棋”的規(guī)則,卻始終無(wú)法達(dá)到象棋大師的高度。所以,容易的東西不一定是壞的,而困難的東西也不一定是好的。學(xué)習(xí)計(jì)算機(jī)(或者任何其它工具),應(yīng)該“只選對(duì)的,不選難的”。記憶一堆的命令,烏七八糟的工具用法,最后腦子里什么也不會(huì)留下。學(xué)習(xí)“原理性”的東西,才是永遠(yuǎn)不會(huì)過(guò)時(shí)的。
Windows 技術(shù)設(shè)計(jì)上的很多細(xì)節(jié),也許在早期是同樣糟糕的。但是它卻向著更加結(jié)構(gòu)化,更加簡(jiǎn)單的方向發(fā)展。Windows 的技術(shù)從 OLE,COM,發(fā)展到 .NET,再加上 Visual Studio 這樣高效的編程工具,這些帶來(lái)了程序員和用戶效率的大幅度提高,避免了 Unix 和 C 語(yǔ)言的很多不必存在的問(wèn)題。Windows 程序從很早的時(shí)候就能比較方便的交換數(shù)據(jù)。比如,OLE 讓你可以把 Excel 表格嵌入到 Word 文檔里面。不得不指出,這些是非常好的想法,是超越“Unix 哲學(xué)”的。相反,由于受到“Unix 哲學(xué)”的誤導(dǎo),Unix 的程序間交換數(shù)據(jù)一直以來(lái)都是用字符串,而且格式得不到統(tǒng)一,以至于很多程序連拷貝粘貼都沒(méi)法正確進(jìn)行。Windows 的“配置”,全都記錄在一個(gè)中央數(shù)據(jù)庫(kù)(注冊(cè)表)里面,這樣程序的配置得到大大的簡(jiǎn)化。雖然在 Win95 的年代,注冊(cè)表貌似老是惹麻煩,但現(xiàn)在基本上沒(méi)有什么問(wèn)題了。相反,Unix 的配置,全都記錄在各種稀奇古怪的配置文件里面,分布在系統(tǒng)的各個(gè)地方。你搞不清楚哪個(gè)配置文件記錄了你想要的信息。每個(gè)配置文件連語(yǔ)法都不一樣!這就是為什么用 Unix 的公司總是需要一個(gè)“系統(tǒng)管理員”,因?yàn)檐浖こ處焸儾艖械糜涍@些麻煩的東西。
再來(lái)比較一下 Windows 和 Mac 吧。我認(rèn)識(shí)一個(gè) Adobe 的高級(jí)設(shè)計(jì)師。他告訴我說(shuō),當(dāng)年他們把 Photoshop 移植到 Intel 構(gòu)架的 Mac,花了兩年時(shí)間。只不過(guò)換了個(gè)處理器,移植個(gè)應(yīng)用程序就花了兩年時(shí)間,為什么呢?因?yàn)?Xcode 比起 Visual Studio 真是差太多了。而 Mac OS X 的一些設(shè)計(jì)原因,讓他們的移植很痛苦。不過(guò)他很自豪的說(shuō),當(dāng)年很多人等了兩年也沒(méi)有買(mǎi) Intel 構(gòu)架的 Mac,就是因?yàn)樗麄冊(cè)诘却?Photoshop。最后他直言不諱的說(shuō),微軟其實(shí)才是真正在乎程序員工具的公司。相比之下,Apple 雖然對(duì)用戶顯得友好,但是對(duì)程序員的界面卻差很多。Apple 尚且如此,Linux 對(duì)程序員就更差了。可是有啥辦法呢,有些人就是受虐狂。自己痛過(guò)之后,還想讓別人也痛苦。就像當(dāng)年的我。
我當(dāng)然不是人云亦云。微軟在程序語(yǔ)言上的造詣和投入,我看得很清楚。我只是通過(guò)別人的經(jīng)歷,來(lái)驗(yàn)證我已經(jīng)早已存在的看法。所以一再宣揚(yáng)別的系統(tǒng)都是向自己學(xué)習(xí)的 Apple 受到這樣的評(píng)價(jià),我也一點(diǎn)不驚訝。Mac OS X 畢竟是從 Unix 改造而來(lái)的,還沒(méi)有到脫胎換骨的地步。我有一個(gè) Macbook Air,一個(gè) iPhone 5,和一個(gè)退役的,裝著 Windows 7 的 T60。我不得不承認(rèn),雖然我很喜歡 Macbook 和 iPhone 的硬件,但我發(fā)現(xiàn) Windows 在軟件上的很多設(shè)計(jì)其實(shí)更加合理。
我為什么當(dāng)年會(huì)鄙視微軟?這很簡(jiǎn)單。我就是跟著一群人瞎起哄而已!他們說(shuō) Linux 能拯救我們,給我們自由。他們說(shuō)微軟是邪惡的公司…… 到現(xiàn)在我身邊還有人無(wú)緣無(wú)故的鄙視微軟,卻不知道理由?墒 Unix 是誰(shuí)制造的呢?是 AT&T。微軟和 AT&T 哪個(gè)更邪惡呢?我不知道。但是你應(yīng)該了解一下 Unix 的歷史。AT&T 當(dāng)年發(fā)現(xiàn) Unix 有利可圖,找多少人打了多少年官司?說(shuō)微軟搞壟斷,其實(shí) AT&T 早就搞過(guò)壟斷了,還被拆散成了好幾個(gè)公司。想想世界上還有哪一家公司,獨(dú)立自主的設(shè)計(jì)出這從底至上全套家什:程序語(yǔ)言,編譯器,IDE,操作系統(tǒng),數(shù)據(jù)庫(kù),辦公軟件,游戲機(jī),手機(jī)…… 我不得不承認(rèn),微軟是值得尊敬的公司。
公司還不都一樣,都是以利益為本的。我們程序員就不要被他們利用,作為利益斗爭(zhēng)的炮灰啦。見(jiàn)到什么好就用什么,就學(xué)什么。自己學(xué)到的東西,又不屬于那些壟斷企業(yè)。我們都有自由的頭腦。
當(dāng)然我不是在這里打擊 Linux 和 Mac 而鼓吹 Windows。這些系統(tǒng)的紛爭(zhēng)基本上已經(jīng)不關(guān)我什么事。我只是想告訴新人們,去除頭腦里的宗教,偏激,仇恨和鄙視。每次仇恨一個(gè)東西,你就失去了向它學(xué)習(xí)的機(jī)會(huì)。
后記:“對(duì)用戶友好”是一個(gè)值得研究,卻又研究得非常不夠的東西。很多 UI 的設(shè)計(jì)者,把東西設(shè)計(jì)的很漂亮,但是卻不方便,不順手。如果你想了解我認(rèn)為怎樣的設(shè)計(jì)才是“對(duì)用戶友好的”,可以參考這篇博客《什么是“對(duì)用戶友好”》



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表