牛人就是拽:Linus Torvalds一直讨厌这11项技术# Programming - 葵花宝典
d*i
1 楼
Linux之父Linus Torvalds和自由软件之父Richard Stallman并称为软件行业的两大怪
杰,经常会语出惊人之词,就像Torvalds那样,他不喜欢的东西在他看来就一无是处,
不过,谁让人家是大牛呢?
Linus Torvalds 被认为是最伟大的程序员之一,因为他写出了使用最广泛的软件,如
Linux 内核和 Git 版本控制系统。但是他这个人经常因为讲话带有情绪,甚至是因为
带有脏话的意见而饱受非议。有些时候,Linus Torvalds 认为那些工作没做好,或者
持有不同观点或竞争关系的公司和组织,不管是正面的还是背面的,他的话里都是带着
火药味的。
尽管大多数情况下,Torvalds 愤怒的主要原因都是技术惹的祸,跟技术有关。但是,
我们还是不要期望已经45岁的 Torvalds 在情绪上能够缓和多少。好了,基于以上背景
,我们来了解一下 Torvalds 多年来对这11项技术有哪些不满的意见。
1. GNU Emacs
历史:Emacs 早已经是 Unix 和类 Unix 系统,包括 Linux 最常用的文本编辑器之一
。GNU Emacs 是使用最广泛的 Emacs 实现。它是由 Richard Stallman 创建,并在
1985年发布了第一个版本,之后变为 Stallman 的 GNU 项目之一。尽管 GNU Emacs 很
受欢迎,但并不是每个人都喜欢它,表现最明显的就是 Linus Torvalds。
有趣的是,尽管 Torvalds 多年来毫不间断的抱怨”真正的 Emacs“(即GNU Emacs)
,但他的首选编辑器是uEmacs,一个不同的 Emacs 实现,叫做 MicroEmacs 的定制版
本。
“无数只猴子在 GNU Emacs 项目上打字,这也注定他们永远不会成为一个好项目
。”1995年
“真正的 Emacs 是魔鬼工具。”2012年
2. GNOME
历史:GNOME 是一个可以在多数 Linux 发行版获取的开源桌面环境,它提供了一个图
形化的用户界面和多种应用。
Linus Torvalds 与 GNOME 的关系在很长一段时间里都是很微妙的,使用之后再放弃,
然后再使用。也经常在如 Xfce 和 KDE 这样的环境里相互切换。Torvalds 对 GNOME
的抱怨通常都与难以通过接口解决特定问题和难以定制环境有关。不过 Torvalds 现在
再次使用 GNOME 对于 GNOME 基金会来说倒是一个好消息。
“我觉得 GNOME 有局限的主要原因就是它自身所拥有的局限性。”2007年2月16日
“我还没遇到谁会喜欢邪恶混乱的GNOME-3。”2011年8月
“整个GNOME-3的用户体验几乎完全是失败的,’在默认配置下,我们连解决问题
的最基本的工具都不给你,但你可以通过非官方的扩展解决它‘。”2012年6月1日
3. HFS+
历史:HFS+ 是由苹果公司开发的一个文件系统,也被称为 Mac OS 扩展容量硬盘驱动
器格式。它最早在 Mac OS 8.1 中实现,现在的 Mac OS X 还在使用 HFS+。
多年来,Linus Torvalds 一再表明他不屑于使用 HFS+,最大的一个大问题就是它不区
分大小写,他觉得这是一个非常差的设计选择。
“在某些方面 OS X 实际上是不如 Windows 来进行编程。他们的文件系统就是垃
圾。“2008年2月
“HFS+真正恐怖的不是它不是一个好的文件系统,而是人们觉得他们有好的想法并
积极设计一个差劲的文件系统。”2014年12月23日
“坦率地说,HFS+ 可能是世界上最差的文件系统。“2014年12月22日
4. Java
历史:Java 首次由 Sun Microsystems 公司于1995年作为专有软件发布,是目前使用
最流行的编程语言之一。在早期,Linus Torvalds 曾对 Java 寄予厚望和它的“一次
编写,随处运行”的功能,觉得这可能有力的推动 Linux 操作系统的发展。
然而,Torvalds 觉得 Sun 拙劣的语言设计和 Java 虚拟机只能应用于桌面环境,所以
它注定要失败。多年后,Java 没有像他预言那样,Java 语言已经很繁荣,而且代码已
经开源,但 Torvalds 似乎仍然没有对 Java 有很高的评价。
“本质上我看到的只是 Java 引擎在走下坡路,因为它别无去处。”1998年8月
“我不关心Java。多么可怕的语言。“2011年11月
5. GNU Hurd
历史:Hurd 是基于 CMU Mach 内核的一个微内核,它作为 GNU 项目的一部分也取代了
Unix 内核。尽管 Hurd 从1990年起已经开发很长一段时间了,但它仍不适合用于生产
环境。相反,很讽刺的是,GNU 的其他组件作为 Linux 内核而流行了起来。
Linus Torvalds 说,如果 Hurd 能早点准备好,他可能甚至不会麻烦的把创建 Linux
作为首要任务。此后,Torvalds 不喜欢微内核,所以经常发表对 Hurd 的负面看法。
“我认为Hurd已经死了。它有一个'大版本',人们忘记了的细节,并且忘记承认他
们出的问题。“2004年10月
“Hurd不是一个真正的微内核,它是如此的可憎,以至于所有其他的微内核看上去
都很糟糕。”2006年5月15日
“简而言之:向毒品说不,向Hurd说不。”2001年10月4日
6. C++
历史:C ++ 是由 Bjarne Stroustrup 创造的,他想建立一个系统编程语言,有 C 的
速度和效率,并有类似 Simula 语言一样的程序组织。Linus Torvalds 发现用 C++ 实
现 Linux 内核代码并不是最优选择。
从那时起,他对 C++ 的不给力发表了非常强烈的意见,大致上是说 C++ 是差劲的设计
选择,它只会被次品程序员使用。
“事实是,C++编译器不值得信任。整个C++异常处理从根本上是错误的。“2004年
1月19日
“尽管 C++ 可以用于原型或简单的 GUI 编程,但它不能使事情更简单。C 语言虽
然并不精益于系统编程语言,但它积极鼓励你使用简单和直接的结构。“2007年9月7日
“C ++ 是一个可怕的语言。”2007年9月6日
7. Mach
历史:Mach 是一个微内核,在1980年代后期在卡内基梅隆大学开发,用于替代 Unix
的 BSD 内核。它后来被用作其他内核的基础(并不都是微内核),如 GNU Hurd 和苹
果的 Mac OS X。
鉴于 Linus Torvalds 不喜欢微内核,他多年来多次对 Mach 表示不满就不值得奇怪了
。具有讽刺意味的是,Steve Jobs 曾试图聘请 Torvalds 在 OS X 工作,但是当
Torvalds 被告知这将意味着放弃Linux 发展时拒绝了这份工作,更何况他要在 Mach
的基础上工作。
“我对 Mach 的个人评价不是很高。坦率地说,它是一堆垃圾。它包含了所有你能
制造出来的设计错误,甚至有些错误是设法弥补自身错误而造成的。“2001年
”我认为开发 Mach 的人是不称职的白痴。“2006年4月20日
8. GCC
历史:GNU 编译器集(GCC),1987年首先被用来作为 GNU 操作系统的 C 编译器。它
后来被扩展到各种平台的一些其他语言的编译前端(C ++,Objective-C,Fortran,
Java,Ada 和 GO)。它已经在许多类 Unix 操作系统中占主导地位(和默认值),如
Linux,这意味着 Linus Torvalds 非常熟悉它——不管它是好还是坏。
“老天爷,那个 GCC 4.9.0 编译器不应该被允许从幼儿园毕业。”2014年7月24日
“GCC是废话。”2006年11月28日
9. XML
历史:XML 是 W3C 开发的一种用于编码文档的标记语言,它作为通用标记语言(SGML
)的一个子集,在1998年首次发布。虽然本来是为了机器和人简单易读,但不是每个人
都这样认为。
Linus Torvalds 就是其中之一,这有助于解释他不喜欢这种格式。
“XML 可能是设计的最糟糕的格式,作为一种文件格式,它真的没有扩展能力,它
通常是一个完全的灾难。“2014年3月6日
“XML 是胡扯。解析 XML 对人类来说是讨厌的,
甚至对计算机来说也是一场灾难。没有理由让这个可怕垃圾存在。“2014年3月6日
10. Solaris
历史:Solaris 是基于 Unix System V 创建专有操作系统,由 Sun Microsystems 于
1991年首次发布。Sun 在2005年决定通过 OpenSolaris 项目开源 Solaris 代码,
Linus Torvalds 对 Linux 的新竞争有几次公开言论。
对于 Torvalds 和 Linux 幸运的是,2010年后甲骨文收购了 Sun,并终止了
OpenSolaris(虽然它的衍生品还活着),并决定把的 Solaris 再次转为专有操作系统。
“仍然有很多人喜欢 Solaris,但我与他们积极竞争,所以我希望他们死。”2005
年2月
“Solaris/x86 是个笑话” 2004年12月
11. MINIX
历史:MINIX 是一个类 Unix 操作系统,由 Andrew Tanenbaum 创建并于1987年作为专
有软件发布,后来开源了。Tanenbaum 是阿姆斯特丹 Vrije Universiteit 大学的教授。
Linus Torvalds 认为 Tanenbaum 有影响力的原因之一,是他对 Unix 感兴趣并摆在首
位。实际上,Torvalds 在 MINIX 机器上创建的 Linux。
然而,这并没有阻止 Torvalds 和 Tanenbaum 很多年前就进入的交火战争,他们的主
要分歧是在Torvalds 决定创建 Linux 作为一个单一的内核,而不是像 MINIX 的微内
核。出人意料的是,Torvalds后来对他的意见道歉了。
“你的工作是教授和研究员:这是 Minix 脑残的很好的借口”1992年1月29日
“Linux 在几乎所有领域打的 MINIX 掉裤子。”1992年1月29日
杰,经常会语出惊人之词,就像Torvalds那样,他不喜欢的东西在他看来就一无是处,
不过,谁让人家是大牛呢?
Linus Torvalds 被认为是最伟大的程序员之一,因为他写出了使用最广泛的软件,如
Linux 内核和 Git 版本控制系统。但是他这个人经常因为讲话带有情绪,甚至是因为
带有脏话的意见而饱受非议。有些时候,Linus Torvalds 认为那些工作没做好,或者
持有不同观点或竞争关系的公司和组织,不管是正面的还是背面的,他的话里都是带着
火药味的。
尽管大多数情况下,Torvalds 愤怒的主要原因都是技术惹的祸,跟技术有关。但是,
我们还是不要期望已经45岁的 Torvalds 在情绪上能够缓和多少。好了,基于以上背景
,我们来了解一下 Torvalds 多年来对这11项技术有哪些不满的意见。
1. GNU Emacs
历史:Emacs 早已经是 Unix 和类 Unix 系统,包括 Linux 最常用的文本编辑器之一
。GNU Emacs 是使用最广泛的 Emacs 实现。它是由 Richard Stallman 创建,并在
1985年发布了第一个版本,之后变为 Stallman 的 GNU 项目之一。尽管 GNU Emacs 很
受欢迎,但并不是每个人都喜欢它,表现最明显的就是 Linus Torvalds。
有趣的是,尽管 Torvalds 多年来毫不间断的抱怨”真正的 Emacs“(即GNU Emacs)
,但他的首选编辑器是uEmacs,一个不同的 Emacs 实现,叫做 MicroEmacs 的定制版
本。
“无数只猴子在 GNU Emacs 项目上打字,这也注定他们永远不会成为一个好项目
。”1995年
“真正的 Emacs 是魔鬼工具。”2012年
2. GNOME
历史:GNOME 是一个可以在多数 Linux 发行版获取的开源桌面环境,它提供了一个图
形化的用户界面和多种应用。
Linus Torvalds 与 GNOME 的关系在很长一段时间里都是很微妙的,使用之后再放弃,
然后再使用。也经常在如 Xfce 和 KDE 这样的环境里相互切换。Torvalds 对 GNOME
的抱怨通常都与难以通过接口解决特定问题和难以定制环境有关。不过 Torvalds 现在
再次使用 GNOME 对于 GNOME 基金会来说倒是一个好消息。
“我觉得 GNOME 有局限的主要原因就是它自身所拥有的局限性。”2007年2月16日
“我还没遇到谁会喜欢邪恶混乱的GNOME-3。”2011年8月
“整个GNOME-3的用户体验几乎完全是失败的,’在默认配置下,我们连解决问题
的最基本的工具都不给你,但你可以通过非官方的扩展解决它‘。”2012年6月1日
3. HFS+
历史:HFS+ 是由苹果公司开发的一个文件系统,也被称为 Mac OS 扩展容量硬盘驱动
器格式。它最早在 Mac OS 8.1 中实现,现在的 Mac OS X 还在使用 HFS+。
多年来,Linus Torvalds 一再表明他不屑于使用 HFS+,最大的一个大问题就是它不区
分大小写,他觉得这是一个非常差的设计选择。
“在某些方面 OS X 实际上是不如 Windows 来进行编程。他们的文件系统就是垃
圾。“2008年2月
“HFS+真正恐怖的不是它不是一个好的文件系统,而是人们觉得他们有好的想法并
积极设计一个差劲的文件系统。”2014年12月23日
“坦率地说,HFS+ 可能是世界上最差的文件系统。“2014年12月22日
4. Java
历史:Java 首次由 Sun Microsystems 公司于1995年作为专有软件发布,是目前使用
最流行的编程语言之一。在早期,Linus Torvalds 曾对 Java 寄予厚望和它的“一次
编写,随处运行”的功能,觉得这可能有力的推动 Linux 操作系统的发展。
然而,Torvalds 觉得 Sun 拙劣的语言设计和 Java 虚拟机只能应用于桌面环境,所以
它注定要失败。多年后,Java 没有像他预言那样,Java 语言已经很繁荣,而且代码已
经开源,但 Torvalds 似乎仍然没有对 Java 有很高的评价。
“本质上我看到的只是 Java 引擎在走下坡路,因为它别无去处。”1998年8月
“我不关心Java。多么可怕的语言。“2011年11月
5. GNU Hurd
历史:Hurd 是基于 CMU Mach 内核的一个微内核,它作为 GNU 项目的一部分也取代了
Unix 内核。尽管 Hurd 从1990年起已经开发很长一段时间了,但它仍不适合用于生产
环境。相反,很讽刺的是,GNU 的其他组件作为 Linux 内核而流行了起来。
Linus Torvalds 说,如果 Hurd 能早点准备好,他可能甚至不会麻烦的把创建 Linux
作为首要任务。此后,Torvalds 不喜欢微内核,所以经常发表对 Hurd 的负面看法。
“我认为Hurd已经死了。它有一个'大版本',人们忘记了的细节,并且忘记承认他
们出的问题。“2004年10月
“Hurd不是一个真正的微内核,它是如此的可憎,以至于所有其他的微内核看上去
都很糟糕。”2006年5月15日
“简而言之:向毒品说不,向Hurd说不。”2001年10月4日
6. C++
历史:C ++ 是由 Bjarne Stroustrup 创造的,他想建立一个系统编程语言,有 C 的
速度和效率,并有类似 Simula 语言一样的程序组织。Linus Torvalds 发现用 C++ 实
现 Linux 内核代码并不是最优选择。
从那时起,他对 C++ 的不给力发表了非常强烈的意见,大致上是说 C++ 是差劲的设计
选择,它只会被次品程序员使用。
“事实是,C++编译器不值得信任。整个C++异常处理从根本上是错误的。“2004年
1月19日
“尽管 C++ 可以用于原型或简单的 GUI 编程,但它不能使事情更简单。C 语言虽
然并不精益于系统编程语言,但它积极鼓励你使用简单和直接的结构。“2007年9月7日
“C ++ 是一个可怕的语言。”2007年9月6日
7. Mach
历史:Mach 是一个微内核,在1980年代后期在卡内基梅隆大学开发,用于替代 Unix
的 BSD 内核。它后来被用作其他内核的基础(并不都是微内核),如 GNU Hurd 和苹
果的 Mac OS X。
鉴于 Linus Torvalds 不喜欢微内核,他多年来多次对 Mach 表示不满就不值得奇怪了
。具有讽刺意味的是,Steve Jobs 曾试图聘请 Torvalds 在 OS X 工作,但是当
Torvalds 被告知这将意味着放弃Linux 发展时拒绝了这份工作,更何况他要在 Mach
的基础上工作。
“我对 Mach 的个人评价不是很高。坦率地说,它是一堆垃圾。它包含了所有你能
制造出来的设计错误,甚至有些错误是设法弥补自身错误而造成的。“2001年
”我认为开发 Mach 的人是不称职的白痴。“2006年4月20日
8. GCC
历史:GNU 编译器集(GCC),1987年首先被用来作为 GNU 操作系统的 C 编译器。它
后来被扩展到各种平台的一些其他语言的编译前端(C ++,Objective-C,Fortran,
Java,Ada 和 GO)。它已经在许多类 Unix 操作系统中占主导地位(和默认值),如
Linux,这意味着 Linus Torvalds 非常熟悉它——不管它是好还是坏。
“老天爷,那个 GCC 4.9.0 编译器不应该被允许从幼儿园毕业。”2014年7月24日
“GCC是废话。”2006年11月28日
9. XML
历史:XML 是 W3C 开发的一种用于编码文档的标记语言,它作为通用标记语言(SGML
)的一个子集,在1998年首次发布。虽然本来是为了机器和人简单易读,但不是每个人
都这样认为。
Linus Torvalds 就是其中之一,这有助于解释他不喜欢这种格式。
“XML 可能是设计的最糟糕的格式,作为一种文件格式,它真的没有扩展能力,它
通常是一个完全的灾难。“2014年3月6日
“XML 是胡扯。解析 XML 对人类来说是讨厌的,
甚至对计算机来说也是一场灾难。没有理由让这个可怕垃圾存在。“2014年3月6日
10. Solaris
历史:Solaris 是基于 Unix System V 创建专有操作系统,由 Sun Microsystems 于
1991年首次发布。Sun 在2005年决定通过 OpenSolaris 项目开源 Solaris 代码,
Linus Torvalds 对 Linux 的新竞争有几次公开言论。
对于 Torvalds 和 Linux 幸运的是,2010年后甲骨文收购了 Sun,并终止了
OpenSolaris(虽然它的衍生品还活着),并决定把的 Solaris 再次转为专有操作系统。
“仍然有很多人喜欢 Solaris,但我与他们积极竞争,所以我希望他们死。”2005
年2月
“Solaris/x86 是个笑话” 2004年12月
11. MINIX
历史:MINIX 是一个类 Unix 操作系统,由 Andrew Tanenbaum 创建并于1987年作为专
有软件发布,后来开源了。Tanenbaum 是阿姆斯特丹 Vrije Universiteit 大学的教授。
Linus Torvalds 认为 Tanenbaum 有影响力的原因之一,是他对 Unix 感兴趣并摆在首
位。实际上,Torvalds 在 MINIX 机器上创建的 Linux。
然而,这并没有阻止 Torvalds 和 Tanenbaum 很多年前就进入的交火战争,他们的主
要分歧是在Torvalds 决定创建 Linux 作为一个单一的内核,而不是像 MINIX 的微内
核。出人意料的是,Torvalds后来对他的意见道歉了。
“你的工作是教授和研究员:这是 Minix 脑残的很好的借口”1992年1月29日
“Linux 在几乎所有领域打的 MINIX 掉裤子。”1992年1月29日