从纯语言角度说,原文写得挺中肯的。 特别是 Smalltalk 和 Python 那种万年老二,想等腐朽的老大让位,突然杀出一个小辈完全超越它们的那段,看完捶地啊~
原来是 yegger 大神,google 里面唯一一个喜欢 ruby 并坚持使用的 (lisp 也是他的最爱),不过好像一直布道没有成功,google 里面还是 c/c++,java,python 的占多数。他写东西基本上没有短篇幅的 (把 g+ 当博客用)。。。这篇文章已经非常早了,也算是很有名了。
Python 程序员说 Python 的哲学是“做一件事情有且只有一种方法”。简直笑掉大牙。 想起知乎上轮子的一个回答:
尽管 ruby 一直都说解决问题有 N 种办法,python 只有一种办法,但还是不能避免
「听好儿子,要提出目标,但不可盲目追随它」 「我明白了爸爸,就像 Python 那样提出『只采用唯一正确的方法』那样的目标,实际上却存在 2、3 版本的不兼容」 「住口!」 「urllib 和 urllib2」 「住口!!!」
昨天我还在想,有没有一个社区专门用于批判各编程语言缺点的,比如叫 xlang-sucks.com。因为一般的社区里,只要你说一句哪个语言不好,就会立该被当成 Flamewar,最可怕的是那些 和事老,总是把“没有最好的语言,只看你能不能把它用好”挂在嘴边,昨天也刚看到这篇博客:http://www.yinwang.org/blog-cn/2015/04/03/paradigms/
好好先生
很多人避免“函数式 vs 面向对象”的辩论,于是他们成为了“好好先生”。这种人没有原则的认为,任何能够解决当前问题的工具就是好工具。也就是这种人,喜欢使用 shell script,喜欢折腾各种 Unix 工具,因为显然,它们能解决他“手头的问题”。
然而这种思潮是极其有害的,它的害处其实更胜于投靠函数式或者面向对象。没有原则的好好先生们忙着“解决问题”,却不能清晰地看到这些问题为什么存在。他们所谓的问题,往往是由于现有工具的设计失误。由于他们的“随和”,他们从来不去思考,如何从根源上消灭这些问题。他们在一堆历史遗留的垃圾上缝缝补补,妄图使用设计恶劣的工具建造可靠地软件系统。当然,这代价是非常大的。不但劳神费力,而且也许根本不能解决问题。
所以每当有人让我谈谈“函数式 vs 面向对象”,我都避免说“各有各的好处”,因为那样的话我会很容易被当成这种毫无原则的好好先生。
我最讨厌这种好好先生了