被 Linus Torvalds 批評過的十一種技術(shù)
Linus Torvalds 被認(rèn)為是最偉大的程序員之一,因?yàn)樗麑懗隽耸褂米顝V泛的軟件,如 Linux 內(nèi)核和 Git 版本控制系統(tǒng)。但是他這個(gè)人經(jīng)常因?yàn)橹v話帶有情緒,甚至是因?yàn)閹в信K話的意見而飽受非議。有些時(shí)候,Linus Torvalds 認(rèn)為那些工作沒做好,或者持有不同觀點(diǎn)或競爭關(guān)系的公司和組織,不管是正面的還是背面的,他的話里都是帶著火藥味的。
盡管大多數(shù)情況下,Torvalds 憤怒的主要原因都是技術(shù)惹的禍,跟技術(shù)有關(guān)。但是,我們還是不要期望已經(jīng)45歲的 Torvalds 在情緒上能夠緩和多少。好了,基于以上背景,我們來了解一下 Torvalds 多年來對這11項(xiàng)技術(shù)有哪些不滿的意見。
1. GNU Emacs
歷史:Emacs 早已經(jīng)是 Unix 和類 Unix 系統(tǒng),包括 Linux 最常用的文本編輯器之一。GNU Emacs 是使用最廣泛的 Emacs 實(shí)現(xiàn)。它是由 Richard Stallman 創(chuàng)建,并在1985年發(fā)布了第一個(gè)版本,之后變?yōu)?Stallman 的 GNU 項(xiàng)目之一。盡管 GNU Emacs 很受歡迎,但并不是每個(gè)人都喜歡它,表現(xiàn)最明顯的就是 Linus Torvalds。
有趣的是,盡管 Torvalds 多年來毫不間斷的抱怨”真正的 Emacs“(即GNU Emacs),但他的常選編輯器是uEmacs,一個(gè)不同的 Emacs 實(shí)現(xiàn),叫做 MicroEmacs 的定制版本。
“無數(shù)只猴子在 GNU Emacs 項(xiàng)目上打字,這也注定他們永遠(yuǎn)不會(huì)成為一個(gè)好項(xiàng)目。” -------1995年
“真正的 Emacs 是魔鬼工具。” -------2012年
2. GNOME
歷史:GNOME 是一個(gè)可以在多數(shù) Linux 發(fā)行版獲取的開源桌面環(huán)境,它提供了一個(gè)圖形化的用戶界面和多種應(yīng)用。
Linus Torvalds 與 GNOME 的關(guān)系在很長一段時(shí)間里都是很微妙的,使用之后再放棄,然后再使用。也經(jīng)常在如 Xfce 和 KDE 這樣的環(huán)境里相互切換。Torvalds 對 GNOME 的抱怨通常都與難以通過接口解決特定問題和難以定制環(huán)境有關(guān)。不過 Torvalds 現(xiàn)在再次使用 GNOME 對于 GNOME 基金會(huì)來說倒是一個(gè)好消息。
“我覺得 GNOME 有局限的主要原因就是它自身所擁有的局限性。”
--------2007年2月16日
“我還沒遇到誰會(huì)喜歡邪惡混亂的GNOME-3。” ---------2011年8月
“整個(gè)GNOME-3的用戶體驗(yàn)幾乎完全是失敗的,’在默認(rèn)配置下,我們連解決問題的最基本的工具都不給你,但你可以通過非官方的擴(kuò)展解決它‘。”
------------2012年6月1日
3. HFS+
歷史:HFS+ 是由蘋果公司開發(fā)的一個(gè)文件系統(tǒng),也被稱為 Mac OS 擴(kuò)展容量硬盤驅(qū)動(dòng)器格式。它最早在 Mac OS 8.1 中實(shí)現(xiàn),現(xiàn)在的 Mac OS X 還在使用 HFS+。
多年來,Linus Torvalds 一再表明他不屑于使用 HFS+,很大的一個(gè)大問題就是它不區(qū)分大小寫,他覺得這是一個(gè)非常差的設(shè)計(jì)選擇。
“在某些方面 OS X 實(shí)際上是不如 Windows 來進(jìn)行編程。他們的文件系統(tǒng)就是垃圾。“ ---------2008年2月
“HFS+真正恐怖的不是它不是一個(gè)好的文件系統(tǒng),而是人們覺得他們有好的想法并積極設(shè)計(jì)一個(gè)差勁的文件系統(tǒng)。” ---------2014年12月23日
“坦率地說,HFS+ 可能是世界上最差的文件系統(tǒng)。“ --------2014年12月22日
4. Java
歷史:Java 由 Sun Microsystems 公司于1995年作為專有軟件發(fā)布,是目前使用較為流行的編程語言之一。在早期,Linus Torvalds 曾對 Java 寄予厚望和它的“一次編寫,隨處運(yùn)行”的功能,覺得這可能有力的推動(dòng) Linux 操作系統(tǒng)的發(fā)展。
然而,Torvalds 覺得 Sun 拙劣的語言設(shè)計(jì)和 Java 虛擬機(jī)只能應(yīng)用于桌面環(huán)境,所以它注定要失敗。多年后,Java 沒有像他預(yù)言那樣,Java 語言已經(jīng)很繁榮,而且代碼已經(jīng)開源,但 Torvalds 似乎仍然沒有對 Java 有很高的評價(jià)。
“本質(zhì)上我看到的只是 Java 引擎在走下坡路,因?yàn)樗鼊e無去處。”
----------1998年8月
“我不關(guān)心Java。多么可怕的語言。“ -----------2011年11月
5. GNU Hurd
歷史:Hurd 是基于 CMU Mach 內(nèi)核的一個(gè)微內(nèi)核,它作為 GNU 項(xiàng)目的一部分也取代了 Unix 內(nèi)核。盡管 Hurd 從1990年起已經(jīng)開發(fā)很長一段時(shí)間了,但它仍不適合用于生產(chǎn)環(huán)境。相反,很諷刺的是,GNU 的其他組件作為 Linux 內(nèi)核而流行了起來。
Linus Torvalds 說,如果 Hurd 能早點(diǎn)準(zhǔn)備好,他可能甚至不會(huì)麻煩的把創(chuàng)建 Linux 作為首要任務(wù)。此后,Torvalds 不喜歡微內(nèi)核,所以經(jīng)常發(fā)表對 Hurd 的負(fù)面看法。
“我認(rèn)為Hurd已經(jīng)死了。它有一個(gè)'大版本',人們忘記了的細(xì)節(jié),并且忘記承認(rèn)他們出的問題。“ ---------2004年10月
“Hurd不是一個(gè)真正的微內(nèi)核,它是如此的可憎,以至于所有其他的微內(nèi)核看上去都很糟糕。” -----------2006年5月15日
6. C++
歷史:C ++ 是由 Bjarne Stroustrup 創(chuàng)造的,他想建立一個(gè)系統(tǒng)編程語言,有 C 的速度和效率,并有類似 Simula 語言一樣的程序組織。Linus Torvalds 發(fā)現(xiàn)用 C++ 實(shí)現(xiàn) Linux 內(nèi)核代碼并不是最優(yōu)選擇。
從那時(shí)起,他對 C++ 的不給力發(fā)表了非常強(qiáng)烈的意見,大致上是說 C++ 是差勁的設(shè)計(jì)選擇,它只會(huì)被次品程序員使用。
“事實(shí)是,C++編譯器不值得信任。整個(gè)C++異常處理從根本上是錯(cuò)誤的。“ ----------2004年1月19日
“盡管 C++ 可以用于原型或簡單的 GUI 編程,但它不能使事情更簡單。C 語言雖然并不精益于系統(tǒng)編程語言,但它積極鼓勵(lì)你使用簡單和直接的結(jié)構(gòu)。“
-------------2007年9月7日
“C ++ 是一個(gè)可怕的語言。” -------------2007年9月6日
7. Mach
歷史:Mach 是一個(gè)微內(nèi)核,在1980年代后期在卡內(nèi)基梅隆大學(xué)開發(fā),用于替代 Unix 的 BSD 內(nèi)核。它后來被用作其他內(nèi)核的基礎(chǔ)(并不都是微內(nèi)核),如 GNU Hurd 和蘋果的 Mac OS X。
鑒于 Linus Torvalds 不喜歡微內(nèi)核,他多年來多次對 Mach 表示不滿就不值得奇怪了。具有諷刺意味的是,Steve Jobs 曾試圖聘請 Torvalds 在 OS X 工作,但是當(dāng) Torvalds 被告知這將意味著放棄Linux 發(fā)展時(shí)拒絕了這份工作,更何況他要在 Mach 的基礎(chǔ)上工作。
“我對 Mach 的個(gè)人評價(jià)不是很高。坦率地說,它是一堆垃圾。它包含了所有你能制造出來的設(shè)計(jì)錯(cuò)誤,甚至有些錯(cuò)誤是設(shè)法彌補(bǔ)自身錯(cuò)誤而造成的。“
----------2001年
”我認(rèn)為開發(fā) Mach 的人是不稱職的白癡。“ ---------2006年4月20日
8. GCC
歷史:GNU 編譯器集(GCC),1987年首先被用來作為 GNU 操作系統(tǒng)的 C 編譯器。它后來被擴(kuò)展到各種平臺(tái)的一些其他語言的編譯前端(C ++,Objective-C,F(xiàn)ortran,Java,Ada 和 GO)。它已經(jīng)在許多類 Unix 操作系統(tǒng)中占主導(dǎo)地位(和默認(rèn)值),如 Linux,這意味著 Linus Torvalds 非常熟悉它——不管它是好還是壞。
“老天爺,那個(gè) GCC 4.9.0 編譯器不應(yīng)該被允許從幼兒園畢業(yè)。
--------”2014年7月24日
“GCC是廢話。 ---------2006年11月28日
9. XML
歷史:XML 是 W3C 開發(fā)的一種用于編碼文檔的標(biāo)記語言,它作為通用標(biāo)記語言(SGML)的一個(gè)子集,在1998年發(fā)布。雖然本來是為了機(jī)器和人簡單易讀,但不是每個(gè)人都這樣認(rèn)為。
Linus Torvalds 就是其中之一,這有助于解釋他不喜歡這種格式。
“XML 可能是設(shè)計(jì)的最糟糕的格式,作為一種文件格式,它真的沒有擴(kuò)展能力,它通常是一個(gè)完全的災(zāi)難。“ ---------2014年3月6日
“XML 是胡扯。解析 XML 對人類來說是討厭的,甚至對計(jì)算機(jī)來說也是一場災(zāi)難。沒有理由讓這個(gè)可怕垃圾存在。 ---------“2014年3月6日
10. Solaris
歷史:Solaris 是基于 Unix System V 創(chuàng)建專有操作系統(tǒng),由 Sun Microsystems 于1991年發(fā)布。Sun 在2005年決定通過 OpenSolaris 項(xiàng)目開源 Solaris 代碼,Linus Torvalds 對 Linux 的新競爭有幾次公開言論。
對于 Torvalds 和 Linux 幸運(yùn)的是,2010年后甲骨文收購了 Sun,并終止了 OpenSolaris(雖然它的衍生品還活著),并決定把的 Solaris 再次轉(zhuǎn)為專有操作系統(tǒng)。
“仍然有很多人喜歡 Solaris,但我與他們積極競爭,所以我希望他們死。”
---------2005年2月
“Solaris/x86 是個(gè)笑話” ----------2004年12月
11. MINIX
歷史:MINIX 是一個(gè)類 Unix 操作系統(tǒng),由 Andrew Tanenbaum 創(chuàng)建并于1987年作為專有軟件發(fā)布,后來開源了。Tanenbaum 是阿姆斯特丹 Vrije Universiteit 大學(xué)的教授。
Linus Torvalds 認(rèn)為 Tanenbaum 有影響力的原因之一,是他對 Unix 感興趣并擺在首位。實(shí)際上,Torvalds 在 MINIX 機(jī)器上創(chuàng)建的 Linux。
然而,這并沒有阻止 Torvalds 和 Tanenbaum 很多年前就進(jìn)入的交火戰(zhàn)爭,他們的主要分歧是在Torvalds 決定創(chuàng)建 Linux 作為一個(gè)單一的內(nèi)核,而不是像 MINIX 的微內(nèi)核。出人意料的是,Torvalds后來對他的意見道歉了。
“你的工作是教授和研究員:這是 Minix 腦殘的很好的借口”
----------1992年1月29日
“Linux 在幾乎所有領(lǐng)域打的 MINIX 掉褲子。” ---------1992年1月29日