|
本文是從 Object Oriented Programming is Dead 這篇文章翻譯而來。
那好吧,也許是沒死,但卡內(nèi)基.梅隆大學(xué)的Robert Harper教授卻說(Teaching FP to freshmen)面向?qū)ο缶幊毯驮O(shè)計“不適合做為現(xiàn)代計算機科學(xué)教學(xué)課程”,詳細的內(nèi)容引用如下:
“面向?qū)ο缶幊虘?yīng)該完全的從基礎(chǔ)課程中刪除掉,因為它既是反模塊化,又是反并行的,這是它的非常固有的特征,所以它不適合作為一種現(xiàn)代的計算機科學(xué)課程。”
估計你們也意料到了,評論里出現(xiàn)了一些反對意見。當(dāng)我把這篇文章地址貼到Facebook上后,在很短的時間里出現(xiàn)了16條評論,幾乎都是反對的。有一個做招聘工作的人回復(fù)道“我已經(jīng)疲倦了面試那些只知道Haskell語言卻不會使用C里的strlen()函數(shù)的實習(xí)生。”但是,就像RobertHarper教授在對一條評論的回復(fù)中說的,“在卡耐基,我們的目標(biāo)是教育學(xué)生,而不是培訓(xùn)學(xué)生”。這究竟是在說什么呢?難道是學(xué)院派和行業(yè)派的沖突嗎?學(xué)院派通常認為“對于學(xué)生來說,他們有很多的機會去學(xué)習(xí)那些陳舊的編程方法,他們可以在日后的工作實踐中按需學(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)時被認為是一個巨大的進步,但需要人們在思考和設(shè)計程序時做一些改變。后來我又經(jīng)過了很長的、緩慢的、諸多痛苦的過程轉(zhuǎn)變到了面向?qū)ο缶幊棠J健N覀冊?jīng)經(jīng)過函數(shù)式編程的年代嗎?也許吧。也許它跟其它的編程模式共存不沖突。
我們?nèi)缃裼辛诵碌男枨蟆U癞?dāng)初的結(jié)構(gòu)化模式和后來的面向?qū)ο竽J绞莵頋M足大型程序和巨型團隊的要求,如今的因為要求處理更多的數(shù)據(jù)的趨勢而出現(xiàn)的關(guān)鍵問題就是并行性(parallelism)?;谶@個背景出現(xiàn)的微軟的F#語言的目標(biāo)就是并行性——為了更好的在多處理器的電腦上并行工作。很顯然,我們不停的向前發(fā)展是為了更好的利用最新的硬件。但是,這就可以說面向?qū)ο蟪蔀檫x修、我們的學(xué)生就可以等到畢業(yè)后再學(xué)習(xí)這些知識嗎?我還沒有被說服。
即使是在面向?qū)ο鬅岢边_到頂峰的時候,我就堅稱,并不是任何東西都可以成為對象,各種模式的混合使用在過去,在將來,都是正確之道。即使現(xiàn)在函數(shù)式編程正趨于流行、使用量增加的情況下仍然會是這種情況。那些古老的編程模式會完全的消失嗎?我不這么認為。以后大家都不用對象了嗎?不可能的。我想,那些大學(xué),特別是聲稱“提供教育而培訓(xùn)”的大學(xué)其實是對學(xué)生的一種傷害,他們沒有看到當(dāng)今這個領(lǐng)域的真實情況。不祥之兆不斷顯現(xiàn),函數(shù)式編程日顯重要。但忽略面向?qū)ο缶幊滩粫o任何人帶來好處。只是我的個人意見。
it知識庫:面向?qū)ο缶幊桃阉溃?/a>,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。