拼凑代码与编程(Hacking Vs. Programming)之间有什么不同?我听说过的一个观点是骇客可以在短时间内编许多代码,但是一旦发生变更,这些代码就要完全重写。而程序员也许会花更多的时间来编码,但发生变化的时候,不需要全部重写就可心迅速且轻松地安装。我听说这个来源归于谷歌的Maggie Johnson的观察。我觉得这听上去很可靠。拼凑常常被描述为“粗制滥造”。你把一堆代码放在一起并且在过程中将其编排好。一些骇客很聪明,他们可以在非常短的时间内做到一些令人惊异的事情。然后他们就会进行下一件事情。又或者他们会由于没有其他人可以很好地理解以固定、修改或改善它而继续同一样事情。工作保障?也许有,但对于使这个软件,尤其是付了费的人来说却不是件好事情。
我有时会做点拼凑,也就是把一些东西在短时间内无具体计划地弄到一起。我并不是个天才,所以结果自然很糟糕。执行很糟糕,可维护性很糟糕,没有人会想用它。我猜这也许会使人对此有偏见。我更喜欢编程—思考,计划,在井井有条的模式中进行。在我教学的第一年(很久以前了)我就清楚了这之间的区别。当时我在致力于我自己的一个小游戏编程并且决定将它展示给我的学生看。当我解释我是如何围绕若干可能使程序更容易扩张的常数来编程时,一名学生转头对另一名学生说:“看,他才刚刚开始就已经在为之后所要增加的作计划了。” 在我看来这就是真正编程的要素之一。
我在大学主修系统分析。在那个时候,计算机科学专业和软件工程专业都还不成熟。但我的教授将一个概念灌输进了我们的头脑里,那就是程序必须要可维护并且可扩展的。我们从第一天起就被教导,从某种意义上说,程序的生命不会结束,只可能被抛弃。更有可能,在某一时刻你宣布胜利或者诸如此类。但别人会维持这些程序,扩充并且接受它们。使他们生活得更轻松是件好事。想一想黄金法则—你会想要编写你正在修改的代码的程序员编程序。我想那就是这样被写出来的。
目前骇客受到了广泛的关注。他们就是那些在篮球比赛中扣篮并被精彩回放的运动员们。但篮球比赛的胜利是来自于团队合作的基础上的—队员们的配合,通过运球、上篮、传球将球传给主力。从长远来看,我们需要更多真正的程序员来编出稳固的、可靠的,当改变发生时不必重头来过的程序。