讀《七週七語言》,感悟其魂

醉馬不肖發表於2012-08-26
讀《七週七語言》,感悟其魂

Author:zfive5(zhaozidong)

Email:zfive5@163.com


前些日子看《七週七語言:理解多種程式設計範型》,突然有些衝動要說它們中間的-魂,魂是它們的原動力。


  • 過程結構語言

過程結構語言,更多是在描述計算機怎樣去做,把我們的邏輯轉化成JMP,MOV,CMP這些計算機最基本的元素,當它們變得龐大的時候越發感覺組織的困難。因為組織沒有規則,當從A專案切到B專案的時候,彷彿從天上掉到地下,這樣還不夠,說不定直接掉進地獄。當自己可以駕馭的時候,最直接是推倒重來(這也是這些年來看到的比較多的做法)。


  • 面嚮物件語言

面嚮物件語言,從解決過程結構的問題入手,巨集觀分清責任,微觀是繼續行過程結構之實,說白了它也的在馮氏計算機上運用(關於這個Intel仙童這些公司的推波助瀾結果)。封裝、繼承、多型,在加上抽象,8個字孕育的意義簡直太大了,不是我們用了“繼承” 就是物件導向。關鍵是“分而治之”哲理,用軟體從業者的術語就是“解耦”。



關於面嚮物件語言裡有一種原型式面嚮物件語言,這裡蘊含了沒有定義模版的道理,只有例項,如果想要第二個例項,就以第一為原型,Clone出第二個,想想JavaSript就是不是這樣的。

關於面嚮物件語言不得不說C#與Java,其實它們裡面也有不同魂在,Java一次編譯處處執行(現在windows環境下做大型應用的時候,越發體會到java跨平臺的魔力,因為不用為IIS的表現而忍氣吞聲了),C#(.NET)更多的關注一個平臺,多種表現形式,Rudy有Rudy.net,但一直在疑問這個有用嗎?估計除了我們公司以外,沒有一個公司會用到這麼多語言。.NET雖然有Mono打破非Windows平臺的界限,但現在這個有太不給力了,彷彿一路走走停停的“偉大的馬拉松戰役傳遞者”(再不快些,波斯帝國會讓雅典開城門的)。.NET不轉變處事哲學,將來會越來越難的,因為這是一場一個軟體公司和全世界軟體從業者的戰爭,世界是多極的。


  • 邏輯式語言

Prolog說白就是在做一道數學題,已知一些東西和一堆數學定理,然後來判斷一個命題是真是假。這種語言的誕生60年代未,與過程語言Fortan和Basic幾乎同齡,但它們之間傳遞給我們的理念完全不一樣,邏輯式語言一直以來在模擬大腦邏輯的過程,但基礎還是結構的,估計很難有所突破。語言的核心是遞迴,就是我們數學上的歸納法的一種逆過程。關於遞迴的效率一直從上學以來的名聲很不好,尾遞迴出現可以改善遞迴的名聲。





  • 函式式語言

函式式語言,感覺一直在強調相同的輸入呼叫,得到是相同的結果,為了將來用不同機器或者CPU核來運算。這也是“雲”到來後它崛起的真正道理。



  • 語言的演進

每一次語言的革新都會有中間語言的出現,它秉承了前語言的優點,又夾帶著新的思想。從彙編到高階結構語言出現了C;結構語言到物件導向的語言途中出現了C++和ObjectC(ObjectC現在有些返祖,其實這也是蘋果公司的功勞),物件語言對函式式語言的過程中出現的“Scala” 和 F#。


是否將來有蘊含其它思想的語言出現就不得而知了。




相關文章