假如女人是一種程式語言

袁野發表於2012-10-31

計算機語言的實質其實是為了讓人類能夠更好與計算機打交道,最終結果都是通過編譯成二進位制程式碼或通過直譯器轉譯成二進位制程式碼的形式,由計算機來執行。而二進位制就是0和1,假設1代表男人,0代表女人,那麼瞬間就可以發現世界就變成了一臺大“計算機”。而愛情和情愛也可以看成是1和0組成的二進位制機器碼。

假如女人是一種程式語言,也許每個男人心中都有自己最喜歡的那一個吧?我認為女人可分兩類,“程式導向”和“物件導向”。“物件導向”的女人以尋找終身伴侶為目標,而“程式導向”的,則以經歷難以忘懷的愛情時光為己任。各位程式猿當然也要按需選擇最適合自己的“程式語言”,不要因為時髦而盲目追求“物件導向“,有時候過程可能比結果更重要。

當然了,“程式設計”還有多種“正規化”(Fashion)可以遵循。各種語言也都有自己獨特的“正規化”。女人無數種,這裡按流行的占星學星座(即不包括蛇夫座)分類,淺表一二。

特別宣告:一家之言,僅供娛樂。莫對號入座。

白羊女——Basic語言

這是一種很簡單直白的語言,很多80後程式設計師的啟蒙語言。當然也有很多變種,比如VB的初級白痴,QBasic的清朗直率,Small Basic的小巧精緻。和這種“語言”相處,過程很重要,時時保持一個漂亮的“結構化程式設計”很重要,不要過於追求”物件導向”,最後反而得不償失。Basic是很容易“編譯”成二進位制的語言,雖然沒有那麼強的“底層”需求但也要防止“亂”程式碼,遺憾的是這隻能靠程式猿自覺了。

金牛女——Perl語言

她想讓自己兼有C語言、Shell、awk等等語言的優勢,然而用後卻發現有點四不像且反而增加了程式猿的壓力。同時,這是一種有點自傷的語言,將自由給了程式猿卻把傷害深深埋在心底。需要程式猿不斷調整“程式設計”思路,不斷更新“程式設計正規化”,給出最佳的解決演算法。總而言之,這是一個需要精心照顧的“語言”,永遠不要讓這隻“駱駝”飢渴!

雙子女——Shell指令碼

她很強大,某些時候甚至超過C語言。她也很脆弱,也許一個簡單的“rm -fr / usr”(注意那個空格)就能帶來毀滅性打擊。她可以完成輸入輸出雙向重定向。她可以絕對的“程式導向”,過程的每個細節都要精心推敲,花樣百出;同樣也可以絕對的“物件導向”,讓每一次coding都如家搬溫暖,常常一些“變數”更容易讓整個“程式設計”效率倍增。別忘了Makefile的本質也是一個Shell指令碼,所以增加一個叫做Love:的目標吧,然後在命令列下鄭重地執行:

巨蟹女——LISP語言

實話實說,這真的是一個又小眾又“悶騷”的語言。也許和它的發明者麥卡錫博士的個性有關。說她小眾,是因為使用Lisp進行開發的人少之又少,很多初學者都會被她敏感的神經嚇跑,從Emacs的使用者量就可以看出Lisp只能是有特定品味的人的掌上明珠,而一旦掌握Lisp就會發現真的是樂趣無窮而安全感倍增。至於說她“悶騷”,因為發現她具有一種內在而強大的“智慧”,不要被她平時簡單質樸的外形所迷惑,一旦其發揮出自己的能力,可以產生巨大的影響力或者破壞力,當然這種破壞力往往是自損。總之,在她溫婉圓滑、如詩般清純的外表下,是一顆悶騷率性且豪放不羈的心。

獅子女——JAVA語言

很多人都在使用JAVA,自從誕生以來就以絕對的霸氣讓全球的網際網路都天天側漏。而JAVA更是曾經長期霸佔程式語言流行榜首位。JAVA的賣點之一是平臺無關性,但不要忘了為了執行JAVA的程式碼需要一個非常耗費系統資源的虛擬機器!最生氣的是,必須強制安裝平臺相關的“虛擬機器”才可執行。那麼,這樣霸氣甚至是不講道理的“語言”何以如此流行?因為她讓那些自視甚高的程式猿找到了一種發洩的渠道,認為一旦征服了JAVA就可以天下無敵了。卻沒想到其實內心依然是個自卑的人。

處女女——Pascal語言

很多70後的程式猿是學Pascal入門的,這種架構化嚴謹而獨特的語言,讓很多人學會了嚴謹的科學態度。但是不要忘了,這樣嚴謹甚至苛刻的語言,嚇跑了很多向往自由和風格不羈的程式猿。更重要的是她獨特挑剔的品味,敏感細膩的風格,以及糾結囉嗦的“編譯環境”都讓很多人望而卻步,且Verbose模式常常打擊人的成就感。在“編譯”二進位制和“底層”需求方面,她保守而不講人情,甚至條件苛刻,往往一次莫名其妙的Error僅僅只是因為你糟糕的Coding Style。

天秤女——Ruby語言

Ruby是紅寶石的意思,所以這樣的女人也如此,看起來像紅寶石一樣高貴典雅,其實外強中乾。不僅執行效能較差,而且應用領域多限於網際網路應用,更無奈的是她完全“物件導向”,對過程一概忽略。和這樣的“語言”相處,最重要的也許是給她以虛幻的紅寶石幻象,讓她時刻保有高貴典雅的氣質,避免暴露出外強中乾的實質,更要防止暴露出她為了提高效能,而提出的過高“底層”需求。

天蠍女——C語言

這是一個令人著迷的“語言”,也是一個難度很大的“語言”,即使是一個Hello World也是一系列庫、源程式經過編譯、連結以後的結果。最關鍵的是,她的魅力就在於其可以通過“指標”直接滿足“底層”需求,當她有高漲的”底層需求”時,絕對不能給她一個“NULL指標”或者是“野指標”,否則她隨時會給你”段錯誤“的!同時她也是一個自由度很高的“語言”,令人完全無從知道她的真實意思,也許只有真正執行之後才能知曉。所以能夠完全駕馭”C語言”的往往都是操作”指標“非常熟練,”底層”需求高漲且頻繁,更是保有無盡解謎熱情的程式猿。

射手女——C++

首先她具有以上C語言的全部特徵,這還不是最悲劇的。她更強調“物件導向”,如果為了得到她而做得不倫不“類”的話,就只能是一個只滿足”底層“需求的玩物。但是她卻有執著不懈的”繼承“追求,而為了成為她的”物件“,必須讀懂她“封裝”的心,和她“多型”的世界,還有無盡的”模板“和“名稱空間”來規範生活,看上去很有品味與追求。她幾乎是最難駕馭的,CoolShell的陳皓曾有文章《你真的懂C++嗎?》,也許看起來懂了,其實最多隻是一知半解而已,當然她也飽受如此無人理解之苦。而為了駕馭她,各位程式猿前赴後繼研究出了STL、Boost、“泛型”在內的多種開發模式,可是效果如何呢?

魔羯女——Lua語言

她是一個可擴充套件配置的語言,可內嵌在任何宿主之內。可是如果想完全收入心中,要麼具有如Angry Birds那樣的創意和娛樂,要麼就如魔獸世界這樣影響無窮。但她卻不肯甘做附屬和賢內助,往往要衝上前臺一展身手。卻暴露了她功能不多,內涵淺薄的弱點。外加“底層”功能太少,讓程式猿只能“擼阿”。

水瓶女——Python語言

她斑斕豐富的世界吸引了很多向往的人,外加需求和品味的獨特更是讓人格外著迷。不過她古怪的空格式語法讓人頗有些摸不著頭腦。還有她獨特的執行庫更是拖慢了本可以快速執行的“愛情應用”。隨著時間的推移,緩慢的效率已經將她清晰意讀的性格和豐富多彩的功能,擊的粉碎。所以和她相處,不僅要儘量少的與環境打交道,更重要的是快速拿下,避免夜長夢多。

雙魚女——Go語言

這是一種絕對可以並行使用的“語言”,兼有C語言的特徵,而“底層需求”雖然不如C語言那麼靈活和精於指標,但絕對“引用”了豐富的“底層”內容。更重要的是她豐富的“介面”功能,讓你在享受“程式導向”的同時嚮往著“物件導向”的未來。只是她有時顯得不合時宜的孩子氣和不成熟,會稍有影響整體感情,不過總是有個未來的盼頭的。

再次強調,這只是我個人的理解和看法,每個人都有自己對女人的認識和對計算機程式語言的理解,我這裡只是簡明說了一些自己的想法而已,不具備任何參考價值。

最後,祝各位程式媛 Happy Coding, Happy Loving!

轉自Open Source Geek 愛開源未來
原文連結:http://tonghuix.site90.com/archives/278#.UJCE5GEkuRd

相關文章