我
常覺得編程是一種藝術笼沥,
它的美只能讓同樣的高手
惺惺相惜;
有那么多的瑰寶和妙招
遠離人們的視野與驚慕窜骄,
有時永不被發(fā)現(xiàn)锦募,
因為編程過程的特性。
只需讀一個人寫的編碼邻遏,
即或是十六進制碼糠亩,
你也可以讀懂一個高手。
我想准验,
麥爾就是一個埋沒的天才赎线。
----- 節(jié)選并翻譯自《麥爾的故事 The Story of Mel》
(詩的英文原文見文末,歡迎翻譯高手指正)
一個程序員被聘去修改一個軟件的編碼糊饱,看到了編程高手麥爾的杰作垂寥,不禁寫了一首詩,上面那段詩是其中的節(jié)選另锋。
故事發(fā)生在上世紀50年代矫废。
麥爾 (Mel Kaye) 是個程序員。他開始編程的時候砰蠢,比爾·蓋茨應該還沒出生或者還穿看成尿布。在那沒有手機唉铜,沒有個人電腦台舱,沒有博客,更沒有臉書的年代潭流,他的程序只有運行程序的電腦能懂竞惋。
他工作的公司名叫Royal McBee (RMB)。1959年時灰嫉,RMB開發(fā)了一款電腦拆宛,型號LGP-30。麥爾為這臺電腦編了一個21點的游戲讼撒。這游戲應該是史上第一款21點的電腦游戲浑厚。
在商業(yè)展銷會上股耽,RMB的銷售代表會讓來看電腦的人玩玩21點。當時人們基本沒玩過電腦游戲钳幅,很多人一玩這個游戲就上癮了物蝙。所以可想而知,RMB的電腦在展銷會上極其暢銷敢艰。
唯一的問題是诬乞,這個21點游戲太好玩了。有的時候钠导,有的客人會玩輸了震嫉,就心情不好。
銷售代表們怕失去一些客戶牡属,就找到了麥爾票堵,告訴他說這個游戲太公平了。他們想讓麥爾能稍微改下游戲湃望,比如設置一個秘密的按鈕换衬。這樣,如果他們想讓某個客戶贏证芭,只要偷偷按一下那個按鈕就行了瞳浦。
高手都有自己的原則,麥爾也是废士。他果斷拒絕了叫潦。他心想,我這游戲設計得這么完美官硝,你們這些穿西裝扎領帶的家伙矗蕊,不懂得欣賞,還想動歪主意氢架,沒門傻咖。
那些銷售代表灰溜溜地跑到公司上層去告狀。
在上層領導的壓力下岖研,麥爾不情愿地修改了程序卿操。但當他測試“秘密按鈕”時,電腦居然反向運行孙援,每局都贏害淤。麥爾很高興,他認為自己的潛意識里是講職業(yè)道德的拓售,并且不再去改編碼窥摄。
麥爾后來跳槽到其他許以高薪的公司。RMB就聘請了另一個名叫艾德 (Ed Nather) 的程序員來修改21點電腦游戲程序础淤。
當艾德打開麥爾寫的代碼后崭放,被代碼所展現(xiàn)的其主人的天才和技術驚呆了哨苛。
艾德最后也沒去動那個程序。在他看來莹菱,去動這個精品移国,就象給《蒙娜·麗莎的微笑》畫像上添墨。
他告訴老板他不懂得問題在哪里道伟,所以改不了程序迹缀。回家后蜜徽,這個工科男馬上寫了一長串的詩來贊美麥爾祝懂,把麥爾比作“真正的程序員”, 一個所有程序員都期望得到的稱號拘鞋。原詩的最后一段是這么寫的:
當我離開公司
21點游戲的秘密程序仍然可以運行
如果你的按了正確的開關
我想那游戲本該就是這樣砚蓬。
讓我去動一個真正程序員的作品
我萬萬做不到。
我忽然理解了那些程序猿盆色。他們熬夜灰蛙,他們加班,譜出的作品隔躲,很多時候摩梧,沒人能看到。他們的聰慧宣旱,他們的靈感仅父,就在那一行行艱澀難懂的編碼中,象是一顆顆的珠寶浑吟,被精心雕琢后又被深藏地里笙纤,也許永遠無人發(fā)現(xiàn)。
我也理解了跟我一樣在簡書上寫作的人們组力。好多文章省容,都是作者用心譜寫的歌,如果用心去讀燎字,你就會找到你未曾謀面的知音腥椒,發(fā)掘出對你有用的珍寶。
(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)