面向?qū)ο缶幊蘋OP已死 有事燒紙
“面向?qū)ο缶幊虘?yīng)該完全的從基礎(chǔ)課程中刪除掉,因?yàn)樗仁欠茨K化,又是反并行的,這是它的非常固有的特征,所以它不適合作為一種現(xiàn)代的計(jì)算機(jī)科學(xué)課程。”
估計(jì)你們也意料到了,評論里出現(xiàn)了一些反對意見。當(dāng)我把這篇文章地址貼到Facebook上后,在很短的時間里出現(xiàn)了16條評論,幾乎都是反對的。有一個 做招聘工作的人回復(fù)道“我已經(jīng)疲倦了面試那些只知道Haskell語言卻不會使用C里的strlen()函數(shù)的實(shí)習(xí)生。”但是,就像Robert Harper教授在對一條評論的回復(fù)中說的,“在卡耐基,我們的目標(biāo)是教育學(xué)生,而不是培訓(xùn)學(xué)生”。這究竟是在說什么呢?難道是學(xué)院派和行業(yè)派的沖突嗎? 學(xué)院派通常認(rèn)為“對于學(xué)生來說,他們有很多的機(jī)會去學(xué)習(xí)那些陳舊的編程方法,他們可以在日后的工作實(shí)踐中按需學(xué)習(xí)那些知識”,與此同時,招聘經(jīng)理們卻痛恨 這種現(xiàn)狀,就像一位副總裁告訴我的,要想把一個從不錯的大學(xué)里的應(yīng)屆畢業(yè)生培養(yǎng)成一個完全能工作的軟件開發(fā)人員,平均所需時間是一年半。這就不奇怪為什么 許多公司不喜歡要剛畢業(yè)的學(xué)生了。
我曾經(jīng)歷過各種編程模式的興衰。我最初做行業(yè)編程(以及學(xué)術(shù)編程)時采用的是結(jié)構(gòu)化編程模式。這種編程模式當(dāng)時被認(rèn)為是一個巨大的進(jìn)步,但需要人們 在思考和設(shè)計(jì)程序時做一些改變。后來我又經(jīng)過了很長的、緩慢的、諸多痛苦的過程轉(zhuǎn)變到了面向?qū)ο缶幊棠J健N覀冊?jīng)經(jīng)過函數(shù)式編程的年代嗎?也許吧。也許 它跟其它的編程模式共存不沖突。
我們?nèi)缃裼辛诵碌男枨蟆U癞?dāng)初的結(jié)構(gòu)化模式和后來的面向?qū)ο竽J绞莵頋M足大型程序和巨型團(tuán)隊(duì)的要求,如今的因?yàn)橐筇幚砀嗟臄?shù)據(jù)的趨勢而出現(xiàn)的關(guān)鍵問題就是并行性(parallelism)。基于這個背景出現(xiàn)的微軟的F#語言的目標(biāo)就是并行性——為了更好的在多處理器的電腦上并行工作。很顯然,我們不停的向前發(fā)展是為了更好的利用***的硬件。但是,這就可以說面向?qū)ο蟪蔀檫x修、我們的學(xué)生就可以等到畢業(yè)后再學(xué)習(xí)這些知識嗎?我還沒有被說服。
即使是在面向?qū)ο鬅岢边_(dá)到頂峰的時候,我就堅(jiān)稱,并不是任何東西都可以成為對象,各種模式的混合使用在過去,在將來,都是正確之道。即使現(xiàn)在函數(shù)式 編程正趨于流行、使用量增加的情況下仍然會是這種情況。那些古老的編程模式會完全的消失嗎?我不這么認(rèn)為。以后大家都不用對象了嗎?不可能的。我想,那些 大學(xué),特別是聲稱“提供教育而培訓(xùn)”的大學(xué)其實(shí)是對學(xué)生的一種傷害,他們沒有看到當(dāng)今這個領(lǐng)域的真實(shí)情況。不祥之兆不斷顯現(xiàn),函數(shù)式編程日顯重要。但忽略 面向?qū)ο缶幊滩粫o任何人帶來好處。只是我的個人意見。
【編輯推薦】