刚刚花了半个小时回复一篇文章,现在发现思考的过程足够自己写一篇了,所幸再写点。

LZ 说的 Hacker 在我眼中属于 Creator 的范畴。(hacking 在我看来更像是一种生活态度,包括 just for fun、想方设法偷懒、break the law 等等等等,我很喜欢 lifehacker 这个词。)

假设有一个平行世界,这个世界中的人类没有发明计算机,那么 Programmer 自然也就不复存在,但 Creator 还是活得好好的,他们可以通过其他方式实现自己的想法。

但一个叫图灵的家伙为了证明某个数学问题,不小心设计出了一种叫图灵机的东西,从此改写了整个人类的历史。早期计算机的唯一的用途就是数值计算,所以计算机的用户是一群科学家,他们用计算机来计算弹道,破译密码。考虑到计算机的工作方式,这群用户也叫 Programmer,因为那个时候使用计算机的唯一方式就是编程。

无论是发明一个操作系统,或开发一个商用程序都是一种创造,但这样的创造必须建立在非常了解计算机的基础上。这个现象即使到今天都没有改变,尽管每种操作系统都宣称自己很好用,每种高级语言看起来都很高级,但那些软件的创造者无一例外都是计算机方面的顶尖黑客。

软件永远无法脱离硬件,兼容性、可移植性犹如热恋时期男女的山盟海誓一样不堪一击;俗话说,every os sucks,整个互联网的基础 *nix 本身就不是完美的;而各种编程语言中存在这样那样的坑;即使是号称做网页最易用的 web 框架其实也不是那么好学。在一个面板中就能拖出一个 App 始终是童话故事中的景象。

也许在未来的某一天,Programmer 和 Creator 可以在各自的层次上更专注地编程。一个更接近机器,一个更接近人;一个以性能为目标对整个计算机系统进行设计,并提供最简单的接口服务,一个只要负责用积木搭建出高楼大厦即可;一个对系统有着非常“专业”的认识,一个对人性与需求有着更好的把握。这个时候就没必要眉毛胡子一把抓地把他们统称为 Programmer 了,而只有 Computer Designer 与 Application Designer 的工种之分了。那么前者嘲笑后者代码不够规范、后者鄙视前者的工作没有原创性也可以休矣。

《最后一个程序员》 就描述了这种场景。但是今天的 Programmer 必须在保持足够专业的同时具有非凡的创意才行。

感谢作者写了一篇不错的文章,在这个慵懒的下午激起了我去思考什么是 Programmer 的欲望。