本來不大想再回應這一連串的爭論的,
看在今天是週末,就忙裡偷閒一下吧 :)
※ 引述《haryewkun (Har)》之銘言:
: 用了很多時間及資源去學習一個東西﹐並最終學會的人﹐很難去討論這個東西有沒有
: 價值。讀完大學的人﹐一定會說讀大學有用。這是深藏在潛意識裡面的根源。
我並不否認很多人都有這樣的情形,但並非每個人都如此,
且你有沒有想過,難道讀大學真得沒用嗎?
這你得找個替代方案,看何者投資報酬率較高,何者較容易成功,再來比較
: 表面上的理由﹐那個人會覺得自己已經精通﹐所以很了解這個東西是有用的。當別人
: 貶低這個東西的時候﹐就會暴跳如雷。特別是當他覺得別人是用不成理由的理由。
: 學 OOP 的人﹐不會去否定 OOP 的理念﹐也無法提出可以替代 OOP 的新概念。為什麼
: 寫程式的人一定要找別人來測試程式﹖為什麼設計用戶界面的人﹐一定要找別人來試
: 用﹖因為盲點﹐因為習慣。
以我個人而言,從 assembly, C, C++, Java 等一路學習下來,
最合我胃口的還是 C++
現在工作在寫 firmware ,暫時只能用 C ,
這段日子下來,更讓我體會到 C 的侷限及不方便處。
: 看到人否定 OOP 的理念﹐就急著要打倒他﹑糾正他﹐你們有沒有想過更好的解決方案
: 呢﹖在打倒別人之前﹐有沒有想過別人的荒謬東西可以給自己一點新啟發﹖
承上,我想到更好的解決方案就是 C++'s OOP 。 C 的模組化功能不夠,
在東西複雜下又要維持程式架構的簡單清爽,只能用人腦,以命名規則
來避免混淆,不過這真的是吃力不討好,這是我遇到的現實。 :(
沒有一個 C++ 的高手是無法掌握 C 的。
和 C++ 相較之下, C 只是小孩子的玩具。
: 在軟件公司﹐程序員寫出程式﹐客戶抱怨難用﹐或者抱怨速度慢﹐經理不會派程序員去
: 向客戶解釋。為什麼﹖因為程序員的本性﹐他一定會怪責客戶﹐認為客戶不應該有這樣
: 的看法﹐認為客戶笨﹑認為客戶不懂得用﹐認為客戶要求高﹐認為客戶完全沒有基本的
: IT 常識。
...
: 並不會站在客戶的角度去想一想﹐是很多程序員永遠只是程序員的原因。
: 在這一連串的帖子中﹐我看到很多人在批判 gsj 的錯誤﹐否定他的論點。但我看到
: 有人提出過解決方案。為什麼 OO 的學習曲線高﹖ 除了效率之外﹐OO 的弱點是什麼﹖
我到覺得 OO 的學習曲線並不高,反倒是 C++ 學習曲線較高。
還有,效率真的不是問題的關鍵,這是取捨問題,如果你要求 C
達到同樣的彈性,那它的效率不會比 C++'s OO 好到哪去。
這是彈性和效率間的取捨, C++ 可以提供想要的彈性,又可避免 C
需要作的苦工,因為 compiler 幫你作掉了。
: 為什麼 OO 難以上手﹐而且很多人會學到了歧路上去﹖
我只能說,每個人的天生資質,思考品味,學習背景,
及真的投入的時間都不一樣。且天下沒有白吃的午餐。
: 1。我上面所說的問題﹐存在嗎﹖
: 2。如果存在﹐那麼解決方案是什麼﹖
: 我看到多數人的想法﹐就是 OO 比較慢是應該的﹐ OO 難以上手是應該的﹐我們應該
: 用多年的時間去學習(為什麼沒有人想過﹐為什麼要用多年的時間學習)。
再強調一次, OO 不會比較慢,以 C++ 而言,更是事實,這是彈性跟效率
間的取捨,在不需要彈性的場合,你可以不用犧牲效率來使用 class 。
OO 難以上手,這理論上看起來似乎是對的,實際上卻是因人而異。
: 是填鴨式教育的緣故嗎﹖我覺得東方人很少去思考怎樣推陳出新﹐怎樣去挑戰一些大家
: 都認為理所當然的事。經典是拿來打破的﹐記錄是拿來突破的﹐好的東西﹐是要被更好
: 的東西所取代的。但是在東方﹐經典是拿來模仿的﹐規則是拿來服從的﹐誰也不敢去挑
: 戰新事物﹐誰也不要做出頭的釘子。
這...我沒異議。
但並不是每個人都有那麼多時間、經歷及興趣去發明新的東西。
而且很多情況是,許多人嘗試要發明,但發現東西沒有比原來好,
所以還沒端出來讓你看到,就胎死腹中了。 :(
: 是的﹐批判別人是很容易的事。只要他說錯話﹐只要他有漏洞﹐就能夠攻擊﹐滿足自己
: 的虛榮心。但是﹐挑戰傳統就不是那麼容易的事情了。不但吃力不討好﹐而且還不一定
: 會成功。
傳統當然需要質疑及檢討,這我舉雙手贊成。
但就如你說的,吃力不討好,且往往以失敗收場 :p
: 平心而論﹐大家如果把用在批判 gsj 的時間﹐努力在思考如果去解決 OO 的弱點﹐
: 思考看看怎樣顛覆 OO 目前的模式﹐大概會有更好的收穫。但是﹐已經投入了許多
: 心血學習的人﹐能夠投入時間去思考顛覆自己的投資的東西嗎﹖不能的﹐這就是創
: 新者的兩難。
這對大多數人是不成立的,
即使擁護 OO ,也只是跟隨者,稱不上創新者,
因為它是前人發明的,且也已經成為『正統』
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.186.233
※ 編輯: ykjiang 來自: 220.132.186.233 (08/13 16:42)