面向對象編程已死?

來源: aqee  發布時間: 2011-04-06 11:28  閱讀: 9672 次  推薦: 4   原文鏈接   [收藏]  

  本文是從 Object Oriented Programming is Dead 這篇文章翻譯而來。

  那好吧,也許是沒死,但卡內基.梅隆大學的Robert Harper教授卻說(Teaching FP to freshmen)面向對象編程和設計“不適合做為現代計算機科學教學課程”,詳細的內容引用如下:

“面向對象編程應該完全的從基礎課程中刪除掉,因為它既是反模塊化,又是反并行的,這是它的非常固有的特征,所以它不適合作為一種現代的計算機科學課程。”

  估計你們也意料到了,評論里出現了一些反對意見。當我把這篇文章地址貼到Facebook上后,在很短的時間里出現了16條評論,幾乎都是反對的。有一個做招聘工作的人回復道“我已經疲倦了面試那些只知道Haskell語言卻不會使用C里的strlen()函數的實習生。”但是,就像RobertHarper教授在對一條評論的回復中說的,“在卡耐基,我們的目標是教育學生,而不是培訓學生”。這究竟是在說什么呢?難道是學院派和行業派的沖突嗎?學院派通常認為“對于學生來說,他們有很多的機會去學習那些陳舊的編程方法,他們可以在日后的工作實踐中按需學習那些知識”,與此同時,招聘經理們卻痛恨這種現狀,就像一位副總裁告訴我的,要想把一個從不錯的大學里的應屆畢業生培養成一個完全能工作的軟件開發人員,平均所需時間是一年半。這就不奇怪為什么許多公司不喜歡要剛畢業的學生了。

  我曾經歷過各種編程模式的興衰。我最初做行業編程(以及學術編程)時采用的是結構化編程模式。這種編程模式當時被認為是一個巨大的進步,但需要人們在思考和設計程序時做一些改變。后來我又經過了很長的、緩慢的、諸多痛苦的過程轉變到了面向對象編程模式。我們曾經經過函數式編程的年代嗎?也許吧。也許它跟其它的編程模式共存不沖突。

  我們如今有了新的需求。正像當初的結構化模式和后來的面向對象模式是來滿足大型程序和巨型團隊的要求,如今的因為要求處理更多的數據的趨勢而出現的關鍵問題就是并行性(parallelism)。基于這個背景出現的微軟的F#語言的目標就是并行性——為了更好的在多處理器的電腦上并行工作。很顯然,我們不停的向前發展是為了更好的利用最新的硬件。但是,這就可以說面向對象成為選修、我們的學生就可以等到畢業后再學習這些知識嗎?我還沒有被說服。

  即使是在面向對象熱潮達到頂峰的時候,我就堅稱,并不是任何東西都可以成為對象,各種模式的混合使用在過去,在將來,都是正確之道。即使現在函數式編程正趨于流行、使用量增加的情況下仍然會是這種情況。那些古老的編程模式會完全的消失嗎?我不這么認為。以后大家都不用對象了嗎?不可能的。我想,那些大學,特別是聲稱“提供教育而培訓”的大學其實是對學生的一種傷害,他們沒有看到當今這個領域的真實情況。不祥之兆不斷顯現,函數式編程日顯重要。但忽略面向對象編程不會給任何人帶來好處。只是我的個人意見。

4
0
 
標簽:面向對象
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()