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