假如女人是一種編程語言

計算機語言的實質其實是爲了讓人類能夠更好與計算機打交道,最終結果都是通過編譯成二進制代碼或通過解釋器轉譯成二進制代碼的形式,由計算機來執行。而二進制就是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:的目標吧,然後在命令行下鄭重地運行:

    $  Make 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!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章