孤独黑客的神化(翻译)
![]() |
没有之一 |
http://ashtonkemerling.com/2012/11/27/the-myth-of-the-lone-hacker/
很多程序员职业生涯的开端都比较理想化,往往是被一个小众编程语言的能量所吸引。比如我,在我职业生涯的开端就是被Common Lisp所吸引。起初,我相信Lisp将会掀起编程语言的革命,但是工作几年后,我真切了解到Lisp为何沦落到今天这步田地了:社区。每个编程社区都有一些核心信条,不管是或明或暗的。这些信条形成了语言的特性、库以及它的用户。Haskell社区相信应该尽可能地让编译器捕获错误,Ruby社区相信最小惊讶(least astonishment)原则。而Lisp社区的信条,我称之为“孤独黑客的神化”。
简单来说,孤独黑客的神化就是深深地迷信于个人黑客的能力对大范围变革的影响。绝大多数程序员都或多或少地有这种情结,但是越是坚持这种信条的社区,就会越危险。
为什么会越危险?因为当你相信个人黑客能力是唯一造成变革的因素时,就会危害到工程师们的协作努力,例如开发库或这工具这样的工作。孤独黑客不需要任何集成,所以他不需要CI工具。孤独黑客的工作是一次性的,所以他不需要单元测试。孤独黑客只是在一台机器上工作,所以他不需要打包和重复地构建。孤独黑客也更喜欢写他自己的库,而且清楚地知道别人也喜欢这么做!
以上这些就是自人工智能冬天开始,在Lisp社区真实发生的。库都是单一目的的,而且一般是原始作者为了满足特定需求而草草实现的。这些库很难扩展或者维护。文档更是少之又少(“读代码!read the code!”不算是文档啊),这种情况直接导致一些函数都没有明显的切入点。任何试图向Ruby、Python、Java这类流行语言的学习,都会被拒绝、诋毁。
当然,许多人没有意识到这个神化是错误的。因为有极个别的例子,可以展示少数天才黑客可以开启一个辉煌的时代。例如Donald Knuth编写并维护的Tex,以及Guido van Rossum和Linus Torvalds;但是无论谁开启的时代,最终都要卷入许许多多的工程师。Guido和Linus也许是他们各自项目的奠基人与旗帜,但离开了无数工程师的努力(全职或兼职的),他们的项目根本就不会成功。
以上是理所当然的,没什么新鲜的。虽然每个人都有不同的见解,但显然现代软件项目对个人工程师来说都太大了。拒绝团队合作,其实就是拒绝了大多数潜在的软件项目(因为这些项目的规模很大)。
Lisp其实还有希望,例如QuickLisp这样的工具。但不幸的是,我个人觉得这门语言已经有太多的技术债务与社区债务了,这很难使它翻身。Lisp真正需要做的是吸引更多的年轻工程师加入。这些工程师最终会成熟起来,并为社区产生很好的库。当然,不能让“孤独黑客的神化”毁了他们。
还没人转发这篇日记