我
常觉得编程是一种艺术,
它的美只能让同样的高手
惺惺相惜;
有那么多的瑰宝和妙招
远离人们的视野与惊慕,
有时永不被发现,
因为编程过程的特性。
只需读一个人写的编码,
即或是十六进制码,
你也可以读懂一个高手。
我想,
麦尔就是一个埋没的天才。
----- 节选并翻译自《麦尔的故事 The Story of Mel》
(诗的英文原文见文末,欢迎翻译高手指正)
一个程序员被聘去修改一个软件的编码,看到了编程高手麦尔的杰作,不禁写了一首诗,上面那段诗是其中的节选。
故事发生在上世纪50年代。
麦尔 (Mel Kaye) 是个程序员。他开始编程的时候,比尔·盖茨应该还没出生或者还穿看成尿布。在那没有手机,没有个人电脑,没有博客,更没有脸书的年代,他的程序只有运行程序的电脑能懂。
他工作的公司名叫Royal McBee (RMB)。1959年时,RMB开发了一款电脑,型号LGP-30。麦尔为这台电脑编了一个21点的游戏。这游戏应该是史上第一款21点的电脑游戏。
在商业展销会上,RMB的销售代表会让来看电脑的人玩玩21点。当时人们基本没玩过电脑游戏,很多人一玩这个游戏就上瘾了。所以可想而知,RMB的电脑在展销会上极其畅销。
唯一的问题是,这个21点游戏太好玩了。有的时候,有的客人会玩输了,就心情不好。
销售代表们怕失去一些客户,就找到了麦尔,告诉他说这个游戏太公平了。他们想让麦尔能稍微改下游戏,比如设置一个秘密的按钮。这样,如果他们想让某个客户赢,只要偷偷按一下那个按钮就行了。
高手都有自己的原则,麦尔也是。他果断拒绝了。他心想,我这游戏设计得这么完美,你们这些穿西装扎领带的家伙,不懂得欣赏,还想动歪主意,没门。
那些销售代表灰溜溜地跑到公司上层去告状。
在上层领导的压力下,麦尔不情愿地修改了程序。但当他测试“秘密按钮”时,电脑居然反向运行,每局都赢。麦尔很高兴,他认为自己的潜意识里是讲职业道德的,并且不再去改编码。
麦尔后来跳槽到其他许以高薪的公司。RMB就聘请了另一个名叫艾德 (Ed Nather) 的程序员来修改21点电脑游戏程序。
当艾德打开麦尔写的代码后,被代码所展现的其主人的天才和技术惊呆了。
艾德最后也没去动那个程序。在他看来,去动这个精品,就象给《蒙娜·丽莎的微笑》画像上添墨。
他告诉老板他不懂得问题在哪里,所以改不了程序。回家后,这个工科男马上写了一长串的诗来赞美麦尔,把麦尔比作“真正的程序员”, 一个所有程序员都期望得到的称号。原诗的最后一段是这么写的:
当我离开公司
21点游戏的秘密程序仍然可以运行
如果你的按了正确的开关
我想那游戏本该就是这样。
让我去动一个真正程序员的作品
我万万做不到。
我忽然理解了那些程序猿。他们熬夜,他们加班,譜出的作品,很多时候,没人能看到。他们的聪慧,他们的灵感,就在那一行行艰涩难懂的编码中,象是一颗颗的珠宝,被精心雕琢后又被深藏地里,也许永远无人发现。
我也理解了跟我一样在上写作的人们。好多文章,都是作者用心谱写的歌,如果用心去读,你就会找到你未曾谋面的知音,发掘出对你有用的珍宝。
(The Story of Mel 英文原文:
I
have often felt that programming is an art form,
whose real value can only be appreciated
by another versed in the same arcane art;
there are lovely gems and brilliant coups
hidden from human view and admiration, sometimes forever,
by the very nature of the process.
You can learn a lot about an individual
just by reading through his code,
even in hexadecimal.
Mel was, I think, an unsung genius.
...... ......
When I left the company,
the blackjack program would still cheat
if you turned on the right sense switch,
and I think that's how it should be.
I didn't feel comfortable
hacking up the code of a Real Programmer.
------ By Ed Nather)