程序員是高大上的藝術(shù)家,而不是碼農(nóng)!
譯文【51CTO.com快譯】寫程序就像作家寫小說(shuō)一樣,程序就類似一個(gè)劇本。如此一來(lái),程序員和作家其實(shí)是同行,而且,他們都是坐在電腦跟前不停地敲打著鍵盤,兩人在一起沒(méi)準(zhǔn)能用鍵盤奏一曲呢~
為什么這么說(shuō)呢?小說(shuō)是從構(gòu)思到實(shí)現(xiàn),程序從編程到運(yùn)行,二者都是在運(yùn)行你的思想,只是他們的表達(dá)出來(lái)的形式不太一樣。作家在下筆之前若沒(méi)有想法,就會(huì)出現(xiàn)很錯(cuò)亂的故事劇情,毫無(wú)邏輯可言。寫程序也一樣,先醞釀好想法,才好寫下來(lái)告訴二逼電腦該干嘛。不過(guò)程序語(yǔ)言不是每個(gè)人都讀的懂,畢竟對(duì)大多數(shù)人這是外語(yǔ)。但看不懂火星文,不代表沒(méi)有好的火星文作品。
大家都會(huì)記得***次寫出來(lái)的作文,是多么混亂和隨意,因此你想寫出好作文必須對(duì)寫完的文字進(jìn)行調(diào)整、潤(rùn)色,這在編程中稱為重構(gòu)。
并且,作家和程序員,等級(jí)也有著明顯的差異。
作家可以創(chuàng)作,程序員也可以。但這跟實(shí)力和理想有關(guān)。寫程序如寫文章,寫出來(lái)的好壞,得看那位程序員的功力。
給大家舉個(gè)列子,我看完《指環(huán)王》這本書之后,不由得感嘆《指環(huán)王》真是一部神作。就像程序員寫代碼一樣~
《指環(huán)王》最初只是《霍比特人》的續(xù)集。托爾金的出版商想通過(guò)續(xù)集從大獲成功的《霍比特人》大賺一把。但《精靈寶鉆》并不是成功的續(xù)集。于是,托爾金開(kāi)始打算為《霍比特人》創(chuàng)作一個(gè)續(xù)集。***本書的書名是《黑影重臨》,而不是《指環(huán)王》。這部小說(shuō)仍然是寫給孩子看的。弗羅多被稱為賓果,斯特爾德是個(gè)名叫特羅特的霍比特人,比爾博打算結(jié)婚,魔戒仍然只是一枚戒指。這個(gè)故事沒(méi)有明確的動(dòng)機(jī)或方向。托爾金曾問(wèn)道:“霍比特人還能做什么?”接著,霍比特人的想法涌現(xiàn)了出來(lái)。
托爾金寫了一份又一份草稿,尋找***故事的方向。托爾金寫道《黑騎士》的場(chǎng)景時(shí),一切都變了。一開(kāi)始,黑騎士實(shí)際上是白騎士。甘道夫來(lái)找賓果談話。隨后故事開(kāi)始展開(kāi)。隨后,突然之間,馬的顏色從白色變成了黑色,甘道夫變成了披著黑色斗篷、頭戴兜帽的人,這就類似于編程中的一個(gè)新的框架。
我們?cè)趺粗溃@是一個(gè)新的框架呢?幸好,通過(guò)克里斯托弗·托爾金,我們了解了他父親對(duì)《指環(huán)王》所作的改變。科里·奧爾森博士(注:托爾金小說(shuō)的權(quán)威研究者)向我們介紹了實(shí)際上是《指環(huán)王》的git日志。
想象一下,這好比是從真正的托爾金研究專家、天才分析師那里讀到Papers We Love論文,這很神奇。
我們看到一個(gè)又一個(gè)想法在文本中涌現(xiàn)。這是持續(xù)不斷的重構(gòu)和新開(kāi)發(fā)過(guò)程。一些想法從頭貫穿到***。許多想法被擯棄,許多想法發(fā)生了演變。許多對(duì)話被保留下來(lái),但被賦予了不同人物,以便在不同的情形下說(shuō)出來(lái)。
這個(gè)創(chuàng)作過(guò)程的整體感覺(jué)就像是在開(kāi)發(fā)軟件,只是結(jié)果不是一款切實(shí)可行的應(yīng)用軟件,而是有史以來(lái)***影響力的故事之一。
對(duì)我來(lái)說(shuō),這個(gè)教訓(xùn)印證了這句老話:任何成功的大型系統(tǒng)都是從成功的小型系統(tǒng)開(kāi)始的。這同樣適用于作家和程序員。在創(chuàng)作過(guò)程中,你很容易對(duì)自己沒(méi)信心,因而感到沮喪。無(wú)論故事還是程序,不一定一開(kāi)始都很出色;只有不斷進(jìn)化,才會(huì)獲得出色的結(jié)果。
因此,我要告訴各位,我們不是碼農(nóng),我們是藝術(shù)家~
原文標(biāo)題:How Is Writing Lord Of The Rings Like Writing Software?
作者:Todd Hoff