天天看點

程式設計範式[paradigm]

程式設計的“思想”,是一個很中國化的詞彙。程式設計的思想,通常稱為一門程式設計語言背後的程式設計範式(Programming Paradigm)。随着程式設計(programming)方法學和軟體工程研究的深入,特别是OO技術的普及,範式程式設計範式等術語漸漸出現在人們面前。從教學的角度看,當用一門指令範式、函數範式或面向對象範式語言講授程式設計時,該語言背後的範式展現為看待程式設計的觀點、語言的邏輯和考慮問題的思路。程式設計範式也許是學習任何一門程式設計語言時要了解的最重要的術語。(在國内逐漸了解“範式/程式設計範式”時,英文中該術語已經處于abuse的地步。)

1程式設計範式

 Robert Floyd在1979年圖靈獎的頒獎演說中使用了程式設計範式一詞 ,範式源于托馬斯.庫恩在《科學革命的結構》中提出的範式論。庫恩沒有嚴格定義何為範式,用法多至二十一種。yqj2065把将範式歸納為3個方面或層次:

程式設計範式[paradigm]

1. 自然觀/世界觀——觀念範式:指看待世界、運用科學的不同方式。這是一套根據特有的價值觀念和标準所形成的、關于外部世界的形而上的信念。例如牛頓眼裡沒有“不确定性”的東西,而微觀實體學描述了諸多不确定性。OOP中,正如在[1.1.3 面向對象]中所言,當程式員回答程式是什麼、程序是什麼的時候,反映了程式員對待程式的觀念範式。觀念範式展現為程式員的境界和素養,而非程式的實作技能。

2. 學科的邏輯體系——規則範式。在科學實際活動中,各種被公認的規範,如定律、理論、應用以及儀器裝置、工具等等,組成了一個邏輯體系。這一體系通過專業教育,為從事該領域的人——科學共同體,規定了思考架構,并形成一種科學習慣和科學傳統。科學共同體從同一模型(規則範式)中學習專業基礎,是以他們不會再在基本原則方面碰到重大分歧。庫恩提出科學發展的模式大緻是:前科學——正常科學——危機——科學革命——新的正常科學。新學科(範式)的早期開拓者,所能達到的範圍和精确性常常非常有限,他們留下了大量“有待完成的掃尾工作”,絕大多數科學家為此獻出了他們的全部生涯。另一方面,一種範式之是以成功,常常是因為在解決許多實際工作者公認的重大問題方面,比競争對手更為成功。

3. 心理認知因素——心理範式。在不同的自然觀和邏輯體系下,科學共同體對其範式有着“虔誠的狂熱”,并力圖把自然界“強迫納入”範式所規定的思想架構内,進而展開卓有成效的研究活動。在這裡,『範式之間的競争不是那種可用證明解決的戰鬥』,你無法說服不想被你說服的人。當範式改變時,不但從事科學研究的人更換了,評價選擇的标準、整個社會心理、研究傳統以及世界圖式都改變了,是以新舊範式是不可通約的、不可比較的。

 [1.1.3 面向對象]介紹了面向對象程式員應該具有的程式觀(觀念範式)和按照日常生活的隐喻進行程式設計的心理範式,而全書讨論的重點是面向對象程式設計的規則範式。

2 資料

 單詞paradigm并不是通過查字典就能夠翻譯的。 雖然paradigm的原意是example示例、pattern模式 or model.典範、範例、模型。 

  1. 在有些計算機書籍中,将paradigm稱為“範例”——“指一種示範性的模型或例子,它提供了一種組織資訊的形式;面向對象的範例強調以行為和責任為基礎來組織資訊”【Timothy Budd,《面向對象Java程式設計思想》(修訂版),清華大學出版社,2002-8】。
  2. 真正使paradigm廣為流行的原因是1962年,美國科學史學家和科學哲學家托馬斯·庫恩(Thomas S. Kuhn)所著的著名書籍The Structure of Scientific Revolutions(《科學革命的結構》),其核心——範式論在自然科學家中引起強烈的共鳴,并波及社會科學的廣泛領域。在李寶恒、紀樹立翻譯的《科學革命的結構》中,paradigm翻譯為“規範”,而在大量的哲學、社會科學文獻中,一般稱為“範式”。

繼續閱讀