| 導(dǎo)讀:這是一篇來自譯言網(wǎng)的文章,作者認(rèn)為,計(jì)算機(jī)是否正在走向消亡是一個(gè)假命題,之所以有人這么認(rèn)為是因?yàn)槿藗儗?duì)計(jì)算機(jī)科學(xué)存有某種誤解。當(dāng)這種誤解消除之后,計(jì)算機(jī)科學(xué)將走上平穩(wěn)的發(fā)展之路。 |
計(jì)算機(jī)科學(xué)正在消亡嗎?
既然蘋果正在盈利,專家們需要一個(gè)即將發(fā)生厄運(yùn)的對(duì)象作為預(yù)測(cè)目標(biāo)。有人似乎盯上了計(jì)算機(jī)科學(xué),正是這激發(fā)David Chisnall懷疑這個(gè)學(xué)科是否真的正在走向消亡。
在20世紀(jì)90年代末,第一次商業(yè)網(wǎng)站泡沫期間,有這樣一種觀念,計(jì)算機(jī)科學(xué)學(xué)位是一種快速賺錢的方式。商業(yè)網(wǎng)站的繁榮使風(fēng)險(xiǎn)投資者將資本投到最為瘋狂的方案中。他們這樣做只是因?yàn)樗麄兦∏删砣牖ヂ?lián)網(wǎng)。這種趨勢(shì)雖然并非全部基于某種事實(shí),卻導(dǎo)致人們認(rèn)為,任何一個(gè)從大學(xué)走出的擁有計(jì)算機(jī)科學(xué)學(xué)位的人都會(huì)立即獲得大量的風(fēng)險(xiǎn)投資資金。
隨之而來的是不可避免的沖擊,和突如其來的IT行業(yè)從業(yè)者過剩。進(jìn)入這個(gè)行業(yè)的大多數(shù)人只是為了快速的獲取錢財(cái)而沒有真正的才能所以他們失業(yè)了,但只有很少的一部分人是有才能的人失業(yè)。但這種形勢(shì)并沒有對(duì)把計(jì)算機(jī)科學(xué)作為一個(gè)具有吸引力的學(xué)位方案的觀念產(chǎn)生太大影響。
自從第一次商業(yè)網(wǎng)站泡沫結(jié)束后,我們發(fā)現(xiàn)申請(qǐng)計(jì)算機(jī)科學(xué)學(xué)位的人員數(shù)量在逐漸下降。在英國,很多部門會(huì)支持降低當(dāng)?shù)厣暾?qǐng)者數(shù)量,吸引更多的海外學(xué)員,尤其來自東南亞的學(xué)生,而且給予他們這些渴望在海外學(xué)習(xí)的學(xué)生比他們?cè)诿绹鴮W(xué)習(xí)更多的優(yōu)惠。這僅僅緩和了下滑。然而,有人開始問計(jì)算機(jī)科學(xué)是否正在走向消亡。
計(jì)算機(jī)科學(xué)和望遠(yuǎn)鏡
問題部分來自于人們對(duì)計(jì)算機(jī)科學(xué)確切是什么缺乏認(rèn)識(shí)。甚至計(jì)算機(jī)科學(xué)專業(yè)的本科生通常也只是從最廣義上了解該學(xué)科。所以,人們懷疑這個(gè)學(xué)科是否正在消亡,并不奇怪。
甚至計(jì)算相關(guān)領(lǐng)域的人們普遍認(rèn)為,計(jì)算機(jī)科學(xué)基本上就是講授編程的職業(yè)課程。2007年1月,De Montfort大學(xué)Neil McBride在英國計(jì)算機(jī)社會(huì)上發(fā)表了一篇題為“計(jì)算的死亡”文章。盡管文章內(nèi)容相當(dāng)?shù)唾|(zhì)量,和使我確信我不愿成為英國計(jì)算機(jī)社會(huì)的一員,但是這篇文章仍然獲得廣泛傳播。文章包含例如這樣的選項(xiàng):“改變了的是對(duì)于理解低級(jí)編程或是任何編程的需求。當(dāng)Ruby語言在Rails上使用時(shí),誰還會(huì)需要C語言呢?”
誰需要C語言?當(dāng)然,至少是那些企圖理解當(dāng)Ruby在Rail程序中運(yùn)行時(shí)發(fā)生了什么事情的人需要C語言。一種匯編語言還是兩種其實(shí)都一樣。一個(gè)學(xué)術(shù)學(xué)位,不同于一種職業(yè)資格,關(guān)鍵在于讓人理解而不是技術(shù)——不幸的是Dr.McBride在寫這篇文章的時(shí)候沒有注意到這一點(diǎn)。
在試圖描述計(jì)算機(jī)科學(xué)時(shí),Edsger Dijkstra認(rèn)為,“計(jì)算機(jī)科學(xué)就是關(guān)于計(jì)算機(jī),就像天文學(xué)就是關(guān)于望遠(yuǎn)鏡一樣。”我喜歡這樣的引用,但是它常會(huì)被那些不是很了解天文學(xué)的人錯(cuò)誤引用。在我小的時(shí)候,我對(duì)天文學(xué)相當(dāng)感興趣,并且花費(fèi)了大量的時(shí)間徘徊于天文臺(tái)和閱讀關(guān)于這門科學(xué)(也通過望遠(yuǎn)鏡觀察)。在那期間,我學(xué)到了比在物理課上學(xué)到的更多的光學(xué)知識(shí)。盡管我從未造出一個(gè)我自己的望遠(yuǎn)鏡,但是很多真正的天文學(xué)家卻做到了,同時(shí)很多這個(gè)專業(yè)的成員為我們理解光學(xué)作出了重要的貢獻(xiàn)。
當(dāng)然,望遠(yuǎn)鏡的制造者和天文學(xué)家是有所不同的。一個(gè)望遠(yuǎn)鏡的制造者可能會(huì)知道更多關(guān)于望遠(yuǎn)鏡結(jié)構(gòu)的東西,但很少會(huì)關(guān)注恒星體的運(yùn)動(dòng)。但是兩者都需要真正理解光線在透過鏡頭和從鏡子里反射時(shí)發(fā)生了什么。沒有理解這些,天文學(xué)是相當(dāng)困難的。
這樣的道理同樣適用于計(jì)算機(jī)科學(xué)。一個(gè)計(jì)算機(jī)科學(xué)家可能不會(huì)編制他自己的集成電路,也可能不會(huì)寫自己的編譯器和操作系統(tǒng)。在現(xiàn)代,這些東西對(duì)于個(gè)人來說通常是太復(fù)雜而且不可能完成一個(gè)可與現(xiàn)有產(chǎn)品競(jìng)爭(zhēng)的標(biāo)準(zhǔn)。但是計(jì)算機(jī)科學(xué)家明確知道,當(dāng)一個(gè)程序在編譯和運(yùn)行時(shí),在編譯器、操作系統(tǒng)、CPU中發(fā)生著什么。
望遠(yuǎn)鏡對(duì)于天文學(xué)家來說是一個(gè)重要的工具,同樣計(jì)算機(jī)對(duì)于計(jì)算機(jī)科學(xué)家來說是一個(gè)重要工具——但是它僅僅只是一個(gè)工具,并不是研究的重點(diǎn)。天文學(xué)家用望遠(yuǎn)鏡研究天上的星體;計(jì)算機(jī)科學(xué)家研究算法來使用計(jì)算機(jī)。
軟件和硬件通常被認(rèn)為是相互分離的概念。這是一個(gè)方便的區(qū)分,但是并不是一直是事實(shí)。第一臺(tái)計(jì)算機(jī)自身并沒有軟件,和需要重新?lián)Q線以運(yùn)行不同的程序。現(xiàn)代硬件經(jīng)常集成固件——軟件可以與硬件緊密結(jié)合在通用目的的硅片中以完成專門目的的功能。從科學(xué)的視角來看,一個(gè)任務(wù)是通過硬件還是軟件完成都是不重要的。(在工程學(xué)看來,這是成本、維護(hù)和速度的交換。)無論如何,硬件與軟件的結(jié)合是一種算法的實(shí)例,應(yīng)當(dāng)讓它得到研究。
正如和其他的學(xué)科一樣,計(jì)算機(jī)科學(xué)中涉及多個(gè)學(xué)科領(lǐng)域。我傾向于將這個(gè)學(xué)科視為三個(gè)學(xué)科領(lǐng)域的交集。
數(shù)學(xué)
工程學(xué)
心理學(xué)
研究沒有計(jì)算機(jī)輔助、純抽象算法的計(jì)算機(jī)科學(xué)家正處于數(shù)學(xué)的邊緣。建立大型硬件和軟件系統(tǒng)的計(jì)算機(jī)科學(xué)家更接近于工程學(xué)。那些使用常規(guī)驗(yàn)證工具建立這些系統(tǒng)的人們處于這兩者之間。
沒有人的指令,電腦基本上沒用,所以這正是心理學(xué)在計(jì)算機(jī)科學(xué)中重要的原因。電腦需要和人之間進(jìn)行很多交互,沒有任何群體是真正適應(yīng)這樣的任務(wù)的。計(jì)算機(jī)如此廣泛應(yīng)用的原因是計(jì)算機(jī)在人類不能適應(yīng)的地方表現(xiàn)出更多的優(yōu)勢(shì)。試圖找到一種讓人和機(jī)器都能理解的描述機(jī)制是計(jì)算機(jī)科學(xué)的子學(xué)科“人/計(jì)算機(jī)交互”(HCI)的使命。因此,這一學(xué)科一般被認(rèn)為接近心理學(xué)。
人機(jī)交互并不是計(jì)算機(jī)科學(xué)中唯一與心理學(xué)相關(guān)的領(lǐng)域。回到1950年,阿蘭 圖靈推薦將圖靈測(cè)試作為一種判定實(shí)體是否是智能的實(shí)體的方法。
我們完全可以理解,那些沒有直接學(xué)習(xí)計(jì)算機(jī)科學(xué)的人搞不清這個(gè)學(xué)科的范圍,錯(cuò)誤的將它歸結(jié)于其它更為熟悉的學(xué)科。因此,有人推薦將這一學(xué)科改名為“信息科學(xué)”。從原則來講,這是一個(gè)好辦法,但是缺點(diǎn)在于很難以一種直觀的方式將某人描述為一個(gè)信息專家。
計(jì)算機(jī)科學(xué)家不能編程!
在和業(yè)內(nèi)人士聊天的時(shí)候,我通常被告知計(jì)算機(jī)科學(xué)家不會(huì)編程。這個(gè)問題部分源自那些雇傭計(jì)算機(jī)科學(xué)家的人,他們認(rèn)為計(jì)算機(jī)科學(xué)家僅僅是做了3至4年編程工作的人。(另外一部分源自帶有同樣觀念的申請(qǐng)學(xué)習(xí)計(jì)算機(jī)科學(xué)的學(xué)生。)
一些計(jì)算機(jī)科學(xué)家,甚至教授,確實(shí)不會(huì)編程。教授們讓博士生們?yōu)樗麄兘鉀Q編程問題,但是現(xiàn)在畢業(yè)生們并不那么認(rèn)為。編程更接近于計(jì)算機(jī)科學(xué)的工程學(xué)部分,那些通過更關(guān)注于數(shù)學(xué)或心理學(xué)方面的計(jì)算機(jī)學(xué)科學(xué)位的學(xué)生當(dāng)然可能在工程學(xué)方面處于劣勢(shì)。
很多的對(duì)于計(jì)算機(jī)科學(xué)的不滿來自錯(cuò)誤的期望,即認(rèn)為一個(gè)計(jì)算機(jī)科學(xué)畢業(yè)生就是一個(gè)好的程序員。其實(shí),這個(gè)專業(yè)的畢業(yè)生應(yīng)當(dāng)在學(xué)校至少要學(xué)習(xí)六種以上的語言,但是她不必做任何事情尤其綜合這些語言。她當(dāng)然幾乎不會(huì)深入了解一個(gè)給予的平臺(tái)上可獲得的標(biāo)準(zhǔn)庫,而要全面的理解這些需要經(jīng)驗(yàn)。這些經(jīng)驗(yàn)她可能從其他工作中或開源工作中學(xué)會(huì),但是絕不是從她的學(xué)位課程中。
計(jì)算機(jī)科學(xué)和軟件工程是截然不同的課程,但很多人將兩者混淆看待。就工具和流程來講,軟件工程教授的是開發(fā)軟件的過程。計(jì)算機(jī)科學(xué)課程只是簡(jiǎn)單的涉及了這些問題,就像材料物理學(xué)家可能了解機(jī)械工程一樣。當(dāng)然,這并不能使計(jì)算機(jī)科學(xué)家成為一個(gè)軟件工程師,它至多使物理學(xué)家成為建橋的最佳的候選人。
它有什么好處呢?
如果他們不能編程,那么擁有一個(gè)計(jì)算機(jī)科學(xué)家的目的又是什么呢?要想證明一個(gè)學(xué)術(shù)科目的存在,它必須讓學(xué)習(xí)者對(duì)它有實(shí)用的理解。計(jì)算機(jī)科學(xué)首先是應(yīng)用數(shù)學(xué)的一個(gè)分支,因此計(jì)算機(jī)科學(xué)家需要理解數(shù)據(jù)推理的原理。但有兩個(gè)方面又讓計(jì)算機(jī)科學(xué)和數(shù)學(xué)有所不同:
關(guān)注效率。除理論之外,這種專注表現(xiàn)在本身復(fù)雜性的理論,它根據(jù)它們運(yùn)行的時(shí)間和空間需求來組織算法。當(dāng)接近于工程學(xué)時(shí),這變成了最小化運(yùn)行在現(xiàn)實(shí)架構(gòu)上的指令數(shù)量,或者減少別的瓶頸。很多的計(jì)算機(jī)科學(xué)是一種折中的選擇,和包含找到一種解決現(xiàn)實(shí)需求的有效(不是最理想的)方法。當(dāng)然,這些原理也適用于計(jì)算之外。例如,工作流的優(yōu)化。
同時(shí),專注于不同層次的抽象概念。算法接近于計(jì)算機(jī)科學(xué)的應(yīng)用的邊緣,人們期望它運(yùn)行在真實(shí)的系統(tǒng)。在程序運(yùn)行時(shí)執(zhí)行的指令,用于創(chuàng)建這些指令的高級(jí)算法,和用于與用戶交互的接口都是很重要的。一位計(jì)算機(jī)科學(xué)家需要將這些在思考問題時(shí)一次一并考慮。
對(duì)于大多數(shù)人來說,計(jì)算機(jī)已經(jīng)成為我們?nèi)粘I钪械囊徊糠帧I踔链蛘劢K端機(jī),很多人每天都與大量的計(jì)算機(jī)設(shè)備交互。這種趨勢(shì)使處理多線程的算法更有前景,然而計(jì)算機(jī)科學(xué)卻是創(chuàng)立這一切的核心。
在一個(gè)時(shí)期內(nèi),計(jì)算機(jī)科學(xué)的申請(qǐng)者數(shù)量可能還會(huì)降低。也許計(jì)算機(jī)科學(xué)不再是與“快速富裕”相關(guān)的熱詞,但人們(英國計(jì)算機(jī)社會(huì)之外)正開始認(rèn)識(shí)到,計(jì)算機(jī)科學(xué)不是職位軟件開發(fā)學(xué)位課程。從長遠(yuǎn)來看,這種認(rèn)識(shí)有利于這一科目發(fā)展,因?yàn)檫@可以第一時(shí)間排除那些不需要選擇這一學(xué)科的學(xué)生。近年來,物理學(xué)的申請(qǐng)者也在降低,但沒有人聲稱物理學(xué)正在消亡和需要更多的迎合現(xiàn)實(shí)需要,讓人們成為二流的工程師,而不是成為一流的科學(xué)家。
原文鏈接:http://article.yeeyan.org/view/154383/146061/