徐昊終于出手了,最近的一組重量級的文章《喪鐘為誰鳴?》,直指當初我的那篇《敲響OO時代的喪鐘》。
鏈接地址:
第0 面向對象
http://www.aygfsteel.com/raimundox/archive/2005/12/20/24851.html
第1 接口
http://www.aygfsteel.com/raimundox/archive/2005/12/21/24889.html
第2 繼承
http://www.aygfsteel.com/raimundox/archive/2005/12/21/24891.html
第3 一切皆對象和面向對象的理論基礎
http://www.aygfsteel.com/raimundox/archive/2005/12/21/24957.html
現在我也可以很負責任的說,當初我的批判對象,實在是過廣了。OO的領域其實非常的大,而我對于OO的了解,卻始終不出Java、C++的范圍。當徐昊跟我談起Pure OO的鼻祖SmallTalk的時候,我還是只是懵懵懂懂的感到,這不過是一個相當古怪邏輯的OO,跟現在的主流OO,不可同日而語。
后來才逐漸理解到,我所向OO開的跑,90%只應該打在Static Type OO的身上。當初夸下了海口,如今只能羞愧萬分,還是學習得不夠多??!
特意抄錄一段ajoo的重量級馬后炮,以自我警醒:
ajoo 寫道: |
其實,這篇文章還應該進一步界定為:給沒有類型推導的,泛型支持有限的,基于名字而非結構的子類型系統的,靜態類型面向對象語言敲響的喪鐘.(說穿了不過就是java, c#, c++等寥寥幾個俗語言罷了) 老早跟老莊說讓他劃定討論范圍或者定義的時候,就是看到老莊話說的挺大,結果討論來討論去不過就是java, c++那點東西.文不對題.不過可能老莊認為所謂的"面向對象"必然就是java這個樣子,所以下定義屬于多此一舉。 批判oo而不研究ruby們,smalltalk們,ocaml們; 批判靜態強類型而看不見haskell們,clean們,oz們,那就最好小心一點,把標題變成"給我目前所知的OO敲響喪鐘"。 |
再次特別感謝徐昊和ajoo。