面向對象編程的下一階段是什麼?
01-28
OO,OO以後,及其極限(全文6篇之 1~4)
OO,OO以後,及其極限 (全文6篇之 5~6)這篇經典的文章根據維特根斯坦的邏輯哲學預測面向對象(OO)的下一階段將是面向事實(FO),如何看待這一論斷?
這文章寫的都什麼鬼?面向事實編程?Prolog看著你。。。。
正經回答:請閱讀A Theory of Objects,把裡面的各種object calculus寫一遍解釋器。然後關注OOPSLA
別看面向對象這個範式看起來這麼主流,其實學術界那幫搞OO的傢伙一點不比搞FP的傢伙遜色,搞出的屠龍之技照樣領先業界n年。。不要書讀太少,事想太多。
不依賴於Class的ADT,參看Go語言的interface比繼承更靈活的擴展方式,比如mixin,traits
原來編程屆也有民科……驚了
粗略的讀了一下,說一說我的理解。
先說一下我對這篇文章的所說的FO編程的理解,以下是原文:上一段我們通過對計算機世界的分析得出,OO之後的發展,必將產生比OO更高
一級的抽象的概念用於編程。按照維特根斯坦的思想可以很自然地得出結論:這個 概念就是事實(FACT)。即面向對象之後是面向事實,OO之後是FO(Fact-Oriented )。那麼,什麼是事實(fact)?讓我們再次重溫一下維特根斯坦的觀點。
首先,世界是所有事實的總和。世界可以分解為事實。任一事實或者為真,或 者不為真。(即事實應返回一個布爾變數,或為TRUE,或為FALSE) 其次,那些為真的事實,是由原子事實(atomic facts)組成的。 原子事實和簡單對象的關係是這樣的:一個原子事實是多個對象(object)的組 合。在原子事實中,對象以某種確定的方式相連。原子事實中對象相互連接的方式 即是原子事實的結構。 也就是說,原子事實是有結構的,這種結構被維特根斯坦 看作是現實世界的模式(form)。 這裡,維特根斯坦提出了幾個重要的概念:事實(fact)、原子事實(atomic fact)和模式(form)。如果我們以上的推理過程正確的話,我們將得出一個結論:面向對象(OO)之後
是面向事實(FO),在面向事實(FO)的分析、設計和編程中,我們將主要圍繞事實 (fact)、原子事實(atomic fact)和模式(form)這些基本概念來組織我們的軟體開 發活動。在人們認識世界的層次結構中,這些概念是比對象(object)和類(class) 更高一級的抽象。
以我的理解來說,所謂的FO編程就是Prolog之類的邏輯式編程語言所代表的範式。也許這裡的FO有更為寬泛的概念,但是邏輯式編程範式顯然是符合上文的定義的。
邏輯式編程範式的特點就是只需要描述事實(約束),然後提出問題,計算機就能找出符合事實(約束)的答案。
就邏輯式編程範式而言,我不認為這種範式就比面向對象更好用。而且,我也不認為面向對象就比面向過程更好用。
許多書籍在介紹一門範式的時候,恨不得把其他範式都批判的一文不值。這些範式的發明時間也許有先後,然而它們之間並不存在上一代和下一代這種取代關係。
舉Prolog語言來說,許多入門書籍都會教你怎麼使用Prolog來解數獨問題,或者八皇后問題。然後告訴你這門語言有多麼多麼強大,也許還順便列舉一下其他語言要解決這些問題所需要的代碼行數。但是,這些書籍很少會告訴你,如果你要用Prolog去解決一個簡單的矩陣運算問題有多麼的痛苦。
我們應該意識到,任何範式都是有優勢和劣勢的。編程範式是你思考問題的出發點。也許有些問題從某一個出發點比較容易到達,但這同時也意味著該出發點到其他問題的距離可能就比較遠了。OO完了自然是XX了 yikezu
管它呢,反正我需要的是能支持許多範式的編程語言。而且它不可以強迫我使用某種範式。
基本上扯什麼OO的下一階段是XO的,以及說什麼一切皆對象的,什麼更好理解世界之類的,全部統統徹底的完全不懂TMD什麼叫做OO。就醬,,,
面向娃娃的編程
OO的下一階段難道不是XXOO??!!! 我只有高中文化, 讀書少, 你們別騙我哎! (日料好難吃... 年終獎好少...)
典型的沒對象的Coder 他需要的是真正的面向對象(Girl Friend)編程,如圖。他的腦子估計循環拋出Object NotFound異常。對了請摺疊我。
OO……XX?
面向對象完了一定面向岳母娘編程
看來這個作者是完全不懂什麼叫 FP 啊。。。就算未來是「面向事實」的(邏輯式編程又不是一天兩天了。。。Prolog 哭暈在廁所)那起碼也得先經過函數式編程這個過程我不反對談哲學,但是你起碼得先把數學談明白吧
面向屏幕編程。
結婚
找對象
分頁阅读: 1 2