網路城邦
上一篇 回創作列表 下一篇  字體:
我不喜歡物件導向
2012/11/30 05:29:22瀏覽4828|回應1|推薦11

凡是教程式語言的老師都會很習慣將『物件導向』這個名詞朗朗上口,但是我不會!其實我還蠻討厭提到它的。在十多年前,我還對這個名詞毫無所知時,我已經可以寫出很多複雜功能的影像處理、聲納接收與導航系統等等軟體,但就是有一堆自稱『程式專家』的人,自己根本寫不出甚麼有用的程式,卻天天在我耳邊囉嗦:「不懂得物件導向你根本就不算懂程式設計,你根本是『外行』啦」!

甚麼?我這個已經可以寫出商業化等級軟體的人不懂程式?寫不出像樣程式,只會臭屁甚麼物件導向等等抽象概念的人才是專家?真是狗屁不通!就像批評天天講英文但是不懂英文文法的美國人不會英文!反而是英語一句都說不出口,只是讀完英文文法的外國人才算『懂英文』一樣,很無聊!

所謂的文法根本只是幫助我們這種外國人加速理解掌握英文習慣的小抄而已,一樣的!物件導向概念只是程式語言發展過程中用來描述已經存在的程式技術的結構描述而已,在我來說就是程式語言的『文法』!那是用來幫忙完全無知的初學者的工具,如果你不習慣那樣去理解程式語言,完全不學它也都可以的!就像很多人學英文直接從會話與閱讀開始,始終不學文法也無妨的!事實上大概只有少數數理天才,或亞斯伯格症患者等等思考模式特殊的人會習慣一開始就學理論。

經過很多年的閱讀,我現在不再會被那些天天講物件導向的半調子唬住了!過程真的很辛苦,因為解釋那些概念的書舉例其實都不好,看了半天也不知道為何非用它們不可?人與電腦不同,沒有需求與動機的理論,正常的「人類」都很難理解的!譬如任何沒讀過書的人都可以很快學會遙控器按幾號就會轉到某台,要是告訴他們「遙控器是物件,轉台是方法,遙控器的大小是屬性,按鍵的動作叫做事件,請務必深入了解之後才能正確地使用遙控器」我相信多數人反而不會用了!是不是也讓人想起「三個傻瓜」電影中男主角Kuso「書」的定義的一個場景?

簡單說,並不是因為有物件導向的理論之後程式語言才出現,或者因此才大幅進步的。而是程式語言依據市場需求發展過程中漸漸演變成這樣的!所以即使是所謂『物件導向語言』,也有不符合物件導向理論的例外狀況,一如任何英文文法總是有例外!而且例外也是對的!不會因為不合文法就被認定是錯誤。

英文文法真的不重要,怎麼講可以讓人聽得懂,達到溝通目的才是真的會用英文。程式語言也是如此,讓電腦可以看懂,正確執行我要做的事情就是好程式!物不物件導向對吃飽太閒不會寫程式的評論家比較有意義,因為這可以「遮醜」!讓別人不會注意到他們其實並不會寫程式!

我很偏激嗎?或許有一點,因為我確實發現多數愛講物件導向的人會變得很沒有想像力與創意,反而是比較不會寫程式的一群人!正如我腦袋裡有太多的英文文法規則,講或寫英文時就會很猶豫;相反的,我一點點中文文法都不懂,但是有很多中文語句的記憶與經驗,要我說寫中文我就很溜!

所以我不愛談物件導向,基本上連上程式語言課時都不太談的!不是我不懂,或者偷懶,而是考慮到那些東西多講了對多數腦袋『正常』的學生來說,通常只是學習過程中無謂的負擔,甚至是負面的干擾。

( 心情隨筆校園筆記 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=yccsonar&aid=7085309

 回應文章

alexkkm
等級:6
留言加入好友
2014/02/06 15:28
物件本來就不是給使用者來理解的,它是協助開發人員"更有效率地運用己開發程式"的概念,就跟哲學裡"白馬非馬"這句話一樣。車分很多類,大小不一,用途不一,但"車"卻是有一些共有的特點的,了解的人,可以從最基礎著手(四個輪子,一個可以載貨的空間,可以控制方向,可以控制前進後退等等),不必從0開始。不會物件不是世界末日,會物件也不代表什麼,只代表"你會用別人的心血成果"而己。
鄉下老師(yccsonar) 於 2014-02-06 15:48 回覆:
討厭的是有一堆人努力要人相信:如果不懂物件導向到非常經細的地步,你就沒有資格寫程式!真是天龍國。