程序編寫不都一樣。正常的書寫語言包含不同的音韻和習(xí)語,對嗎?那么,編程語言也是一樣。名叫C的語言都是刺耳的祈使語氣,幾乎是完全未加工的計算機語言。叫作“表處理語言”的像個長長的、繞圈的句子,充滿了附屬從句,以至于你常常忘了它最初是關(guān)于什么的。叫“厄蘭”的語言就像它聽上去那樣:古怪,斯堪的納維亞風(fēng)格。我不會用這些語言里的任何一個來編程,因為它們都太難了。
不過“紅寶石”,從在紐貝格公司開始我就用的編程語言,是由一位讓人愉快的日本程序師發(fā)明的,它讀起來就像是友好的、容易理解的詩。像是用比爾·蓋茨的方式表達(dá)的詩人比利·柯林斯。
但是,當(dāng)然,編程語言的關(guān)鍵是你不僅讀,還要寫它。你要讓它為你做事。而這一點,我認(rèn)為,正是“紅寶石”的閃光點。
想象一下你在做飯。不過不是一步一步按照菜譜,希望做出最好的,你可以真正地隨時把作料放進(jìn)鍋里或是取出來。你可以加鹽,嘗一嘗,搖搖頭,再把鹽取出來。你可以取一塊非常酥脆的面包皮,把它剝離,在里面加上任何你想要的東西。這不再是個線性的,以成功或者以失?。▽ξ襾碚f大多是失敗)結(jié)束的過程;而是個循環(huán),花體字或者一點潦草的涂寫,是玩。
所以我加些鹽和一點黃油,得到了新可視化圖的原型,直干到了凌晨兩點。我立刻注意到什么東西怪怪的:亮光一個接著一個。
我的屏幕上顯示,廷德爾會從二號走道的頂層借一本書。之后,在另一個月,拉平會從同一個書架上借書。五周后,英伯特會跟著借——完全是同一個書架——不過與此同時,廷德爾已經(jīng)還了書并且從一號過道的底層拿了新書。他快一步。
我以前沒注意到是因為它在時間和空間上散得很開,就像是一段音樂的每兩個音符間有三小時的間隔,還都在不同的音節(jié)上。不過這兒,在我的電腦屏幕上經(jīng)過壓縮和加速,它變得明顯起來。他們都在演奏同一首歌,或者跳同一支舞,或者——對——解同一個謎。
鈴響了,是英伯特:矮小結(jié)實,長著硬硬的黑胡子,斜戴著報童帽。他舉起他正看的書(一本巨大的紅色裝幀的書卷)推過桌子。我迅速地擦動可視化圖去找他在這個模式里的位置。一個橘色的亮點在屏幕上跳出來,在他開口之前,我知道他要借的是二號走道正中間的一本書,是——
“‘普羅霍羅夫’?!庇⒉貧獯跤醯卣f,“‘普羅霍羅夫’應(yīng)該是下一本?!?/p>
高高地站在梯子的半腰,我感到頭暈?zāi)垦?。怎么回事兒?這一次沒有冒失鬼操控,為了保持平衡,我只得把薄薄的、黑色裝幀的“普羅霍羅夫”拉出了書架。
英伯特出示了他的卡——6MXH2I——拿了他的書。鈴又響了,我再次成了一個人。
在日志本里,我記錄下發(fā)生的事,注意到英伯特的帽子和他呼吸里有股大蒜味兒。然后,為了以后的某個店員好,或許也是為了向自己證明這是真的,我寫道:
奇怪的事情在半影先生的24小時書店發(fā)生著。