|
建筑美和 Architecture Compiler
在前一段時間,由于我個人對代碼的熱情,使得我狂熱地相信 Knuth 說的“編程是一種藝術”,并且對 Wordpress 的口號“Code is Poetry”(代碼是詩) 推崇備至。很多對代碼有潔癖的人都是非常討厭“縮進不整齊”、“多余空行”等壞習慣的,甚至有的編程語言把縮進當做是語法的一部分來迫使你寫出漂亮的代碼,比如 Python. 很多程序員會把代碼書寫上的“錯落有致”描述為“建筑美”,認為它形式上的優雅是和建筑一致的。
我之前也相信這一點,但是在之后我看到了一些建筑之后不得不承認,代碼的那點兒結構美和建筑相比實在是不值一提,它缺乏很重要的一點:空間感。因為虛擬世界里沒有距離感和空間感,所以代碼可能會讓你覺得“舒服”,但是絕對不可能帶給你建筑可以帶給你的那種震撼。
不過,在玩了 Kinect 之后我之前的悲觀有了一點兒改觀。試想一下,如果以后虛擬現實的技術足夠發達,那么完全可以在屏幕里面創建一個世界出來,而那個世界的建筑、道路??所有的一切都是字節組成的,也就是說:它們是完全用代碼實現的。那個時候,程序員就是建筑師,如同黑客帝國里面的那個 Matrix 創造者一樣。到了那個時候,我們或許可以再來聊一下代碼中的“建筑美”。
如果代碼真的可以創造建筑的話,那么理論上來說,任何形式的代碼都可以被形象化為一棟建筑,甚至是一座城市。到了那個時候,應該有很多編程語言可以用來創造建筑,而且它們都可以通過一個叫做 Architecture Compiler(簡稱 ac,屬于 gcc 的一部分) 的“建筑編譯器”來編譯成建筑。它的用法大概是這樣的:
ac house.a
ac house.a -a kitchen (建造一個廚房)
??
我想,如果用這個 Architecture Compiler 把現在的代碼重新編譯一下的話,應該會出現一些有趣的事情。Linux 會被編譯成一座不起眼甚至有些簡陋但內部宏偉的教堂,Windows 是一座外表看上去不錯但內部糟糕的大廈,Mac OS X 則會是一棟豪華別墅。那個時候如果帶著小孩子們去參觀 Linux ,讓他們親身感受到那種迷人的美,順便告訴他們什么是 KISS 法則,或許他們會更愿意去學習命令行。
另外,寫代碼也是一種形式的創造活動,等到 Architecture Compiler 出現以后,那就真的應了包豪斯的宣言:一切創造活動的終極目標就是建筑。
音樂美和 Music Compiler
另外,我一直覺得代碼有音樂美,或者說應該有音樂美。你看每行代碼的長度和邏輯都不一樣,如果把代碼長度、邏輯等屬性和音色、音調等一一對應,那么每個源文件都可以和一首音樂對應起來。去年的時候也看到過一篇新聞“艾滋病毒“美好的”一面:創作音樂”說的就是類似的事情:一個研究生為每一個單獨的艾滋病病毒的DNA片段分配最精確的音符和音調,成果就是17段、52分鐘長的DNA音樂,專輯名就恰如其分地叫作“HIV之聲”(Sound of HIV)。我覺得這個想法說不定可以應用到代碼上面,創作出一個名為“Song of Code” 的專輯。假設以后出現了一個叫做 Music Compiler (簡稱 mc, 也屬于 gcc 的一部分)的編譯器,可以根據一定的規則把代碼文件編譯成音樂,那肯定很好玩:
mc source.c -s happyhacker.mp3 (編譯一首歌,叫做“快樂的黑客”)
??
這樣一來,hacker 們的樂趣可就不止是在代碼注釋里面寫笑話或者寫詩了,他們完全可以在代碼里隱藏一張專輯:在項目正式 release 的時候,順便也出一張專輯,說不定會很流行。
Architecture Compiler 和 Music Compiler 的出現也可以幫助老板們解決讓人頭疼的招聘問題:我不懂技術,但是把你的代碼拿出來,編譯成建筑或者音樂,如果建筑足夠美或者音樂足夠好聽,OK,那么你是個好的程序員,因為“完美的代碼每一行都是完美的,包括注釋中的句號。”不然,你就露餡啦,IT 圈也沒那么好混了。
還有,現在我們可以把很久之前的東西數字化,比如我們掃描圖書把印在紙上的文字變成字節,把圖片掃描進電腦。或許我們可以改進一下 Architecture Compiler 和 Music Compiler , 讓他們也可以編譯源代碼之外的東西,比如編譯一本書或者一幅畫,那么我很樂意相信莎士比亞一直都在偷偷創建一個奇幻的城市,達芬奇在“蒙娜麗莎的微笑”里面藏了一座宏偉的建筑,而米開朗其羅在西斯廷教堂頂上寫了一整部交響樂。
從這個層面上講,他們都很擅長寫代碼,是很好的 Hacker。
it知識庫:代碼與建筑美、音樂美,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。