一、綜述
範式是語言的核心;
語言是範式的表現形式。
程式設計範式是程式設計語言的核心特征。
二、程式設計範式
程式設計範式的核心是:世界觀、思維方式、思想、體系;
程式設計範式的表現形式就是一組概念和規則、(邏輯)體系的集合;
實作了程式設計範式的程式設計語言需要對這些概念、規則作出定義、解釋和運作支援。
程式設計範式是基于數學理論或一組特定原則的方法,每一種範式支援一組概念。
範·羅伊信仰多範式程式設計語言:
解決一個程式設計問題,需要選擇正确的概念;解決多個問題,則需要組合分屬不同部分的多個概念。況且,許多程式需要解決的問題本來就不止一個。“理論上,一門語言應該以良好的方式支援多種概念,這樣程式員就可以在需要時選擇合适的概念,不受他人所累。”說得很直覺,但我覺得也有潛在缺點:閱讀這種語言的源碼時,需要精通多種範式,并了解它們是怎麼互相影響的。(範·羅伊可能在說“良好的方式”時考慮過如何改正這種缺點:真正的多範式語言應該避免跨範式幹擾,而不僅僅是支援一大堆概念)。正如範·羅伊本人在後面讨論狀态時所說的:“關鍵在于選擇具有正确概念的範式。概念太少,則程式比較複雜;太多,則推理比較複雜。”
https://www.cnblogs.com/feng9exe/p/11052037.html
三、程式設計語言
每一種程式設計範式都是一種解決方案;
程式設計語言的實作就是要選擇解決方案和世界觀、思維方式的集合。
并為這些集合的概念和規則提供實作支援。
同一種程式設計範式在不同的語言中提供的實作細節可能會不同:比如oop,c++提供的是虛函數表機制,oc提供的是動态派發機制。
四、語言、原生範式、二次範式
由語言提供方提供的語言中預設支援的範式稱為原生範式。
比如c++的oop、泛型;
java的oop、泛型、注解;
swift的oop、面向協定、函數式、泛型等。
二次範式是程式設計語言原生沒有提供,有第三方庫提供的範式。
比如rxjava、rxjs等rx系列。
第三方庫給程式設計語言添加範式,是在原聲語言的基礎上進行二次開發,提供新引入的範式的概念、規則等支援。
五、程式設計範式是思想、思維、世界觀和邏輯體系。
1. 自然觀/世界觀——觀念範式:指看待世界、運用科學的不同方式。
2. 學科的邏輯體系——規則範式。在科學實際活動中,各種被公認的規範,如定律、理論、應用以及儀器裝置、工具等等,組成了一個邏輯體系。這一體系通過專業教育,為從事該領域的人——科學共同體,規定了思考架構,并形成一種科學習慣和科學傳統。科學共同體從同一模型(規則範式)中學習專業基礎,是以他們不會再在基本原則方面碰到重大分歧。
------------------越是喧嚣的世界,越需要甯靜的思考------------------
合抱之木,生于毫末;九層之台,起于壘土;千裡之行,始于足下。
積土成山,風雨興焉;積水成淵,蛟龍生焉;積善成德,而神明自得,聖心備焉。故不積跬步,無以至千裡;不積小流,無以成江海。骐骥一躍,不能十步;驽馬十駕,功在不舍。锲而舍之,朽木不折;锲而不舍,金石可镂。蚓無爪牙之利,筋骨之強,上食埃土,下飲黃泉,用心一也。蟹六跪而二螯,非蛇鳝之穴無可寄托者,用心躁也。