什么是“黑客”
by 王垠
很多程序员自豪的把自己叫做“黑客”(hacker),把编程叫做 hack。可是殊不知,其实在最高级的程序员眼里,“黑客”其实是一个贬义词。他们更愿意被叫做“程序员”(programmer),或者计算机科学家(computer scientist)。当然,你有可能以一个 hack 从“世界一流大学”拿到一个 PhD。但是 PhD 其实不说明任何问题,世界上有太多的人拥有 PhD,其中绝大部分都是 hack。hack 的本质是不会变的——它是低级的工作。
hack 的意思本来是这样的:当你没法改变一个东西的时候,如何绕过它的毛病达到目的。所以 hack 这个行为本身就包含了妥协和丑陋。偶尔做一些 hack 无所谓,可是被叫做“hacker”,就表示这个人不能从根本上解决问题,而只是知道如何 hack。比如,绕过某种语言的莫名其妙的毛病,实现一些在别的语言里早就可以轻松办到的事情。很多顶级的程序语言专家有能力设计新的语言,从而从根本上解决问题,而不是受到现有技术和语言的限制,所以他们对于“hacker”这个词有另外的看法。
当然我并不是歧视 hacker。实际上每个程序员在某些时候都需要 hack。但是我想说的是,我们不应该以 hacker 来称呼自己并且引以为豪,或者歧视那些不明白这些 hack 的人,因为这些 hack 其实是不需要存在的东西。所以何不自嘲一下:“我做的事情虽然有用,但是其实就是个 ugly hack。”
This article was posted at yinwang’s sina blog,
on 2012-07-02.
Though it’s not available on the blog now.