在大學(xué)院校的計(jì)算機(jī)科學(xué)體系中,持續(xù)缺乏對(duì)嵌入式系統(tǒng)編程關(guān)注的情況,可能會(huì)讓分散的情況日趨嚴(yán)重。事實(shí)上,美國(guó)的工程教育越來(lái)越趨向于集中在某些特定領(lǐng)域,這也日益突顯出了當(dāng)?shù)卮髮W(xué)的計(jì)算機(jī)科學(xué)教育在嵌入式系統(tǒng)編程方面的不足之處。 然而,問(wèn)題在于,嵌入式系統(tǒng)開(kāi)發(fā)安全、可靠、關(guān)鍵任務(wù)系統(tǒng)的基礎(chǔ),而這些系統(tǒng)通常會(huì)用在從醫(yī)療到商用客機(jī)在內(nèi)等許多大型開(kāi)發(fā)專(zhuān)案中,因而使問(wèn)題顯得更加突出。 許多批評(píng)的聲浪都認(rèn)為,造成嵌入式編程領(lǐng)域產(chǎn)生落差的原因,是由于大學(xué)的計(jì)算機(jī)科學(xué)系所越來(lái)越偏向如Java這類(lèi)時(shí)髦的程序語(yǔ)言,但付出的代價(jià)卻是犧牲了教導(dǎo)學(xué)生如何去設(shè)計(jì)及分析算法和數(shù)據(jù)結(jié)構(gòu)等基礎(chǔ)。紐約大學(xué)榮譽(yù)教授暨軟件工具供應(yīng)商Adacore公司CEO Robert Dewar最近發(fā)表一篇文章,探討嵌入式領(lǐng)域的落差情況,他認(rèn)為,許多大學(xué)都必須重新思考他們的程序課程規(guī)劃。 “說(shuō)穿了,”Dewar寫(xiě)道,“用Java來(lái)取代傳統(tǒng)程序入門(mén)課程中使用的語(yǔ)言,像是Pascal, Ada, C或是C++等──無(wú)異是讓整體教學(xué)的水準(zhǔn)往后退了一大步。許多大學(xué)轉(zhuǎn)向Java的理由只是因?yàn)閷W(xué)生畢業(yè)后好找工作,但諷刺的是,這些學(xué)校培養(yǎng)出了僅具備膚淺技能的程序設(shè)計(jì)人才,他們正在失去與來(lái)自各個(gè)不同國(guó)家,具備更多技能與深度知識(shí)的人才競(jìng)爭(zhēng)的能力。” 一些嵌入式編程專(zhuān)家則認(rèn)為,Dewar還低估了嵌入式領(lǐng)域編程落差的嚴(yán)重性。該領(lǐng)域的專(zhuān)家之一Michael Barr,則是采取更具體的行動(dòng)──他舉辦了為期一周的“嵌入式軟件研習(xí)營(yíng)”(Embedded Software Boot Camp)──希望藉由面對(duì)面的教學(xué),彌合所謂的嵌入式編程落差。這個(gè)研習(xí)營(yíng)的重點(diǎn)集中在培養(yǎng)某些技能,如用C或C++來(lái)做硬件控制、撰寫(xiě)更多設(shè)備驅(qū)動(dòng)程序等,而B(niǎo)arr的結(jié)論是:美國(guó)的大學(xué)并沒(méi)有做好固件開(kāi)發(fā)培訓(xùn)。 “我發(fā)現(xiàn),這些參加研習(xí)營(yíng)的人都有一個(gè)共同點(diǎn),就是他們?cè)谡n堂上的表現(xiàn)通常都不是很好,除非他們都知道C語(yǔ)言,”Barr說(shuō)。“我并不是說(shuō)他們必須很懂C,但他們起碼要知道基本的C語(yǔ)法。” 那些一開(kāi)始就從Java開(kāi)始的計(jì)算機(jī)科學(xué)或工程系畢業(yè)生“根本無(wú)法觸及問(wèn)題核心,”他說(shuō)。“這就是我覺(jué)得情況變?cè)愕闹饕颉!?/font> 危機(jī)迫在眉睫? Barr的專(zhuān)長(zhǎng)是醫(yī)療設(shè)備和其他嵌入式系統(tǒng)設(shè)計(jì),他指出,自他舉辦研習(xí)營(yíng)以來(lái),他已經(jīng)看到了解決嵌入式編程人才短缺問(wèn)題的一線曙光,像IEEE等團(tuán)體也開(kāi)始關(guān)注這個(gè)問(wèn)題了。下一次的研習(xí)營(yíng)將在今年五月初于美國(guó)馬里蘭州舉行,屆時(shí)除了美國(guó)本土,還將有來(lái)自比利時(shí)、加拿大、墨西哥和土耳其的參加者。Barr認(rèn)為,目前在做的事,正是彌補(bǔ)美國(guó)大學(xué)的計(jì)算機(jī)科學(xué)課程缺乏嵌入式編程訓(xùn)練的最好方法。 Barr表示,這個(gè)研習(xí)營(yíng)的參與者對(duì)課程內(nèi)容的反應(yīng)包羅萬(wàn)象,像是有人會(huì)說(shuō):“你幫我把我以前曾經(jīng)學(xué)過(guò),但卻從來(lái)不知如何使用的知識(shí)整合起來(lái)了”;也有人說(shuō): “為什么二十年前沒(méi)有人教我這些?” 嵌入式傳道者M(jìn)ichael Barr用以下這張Venn圖來(lái)說(shuō)明目前計(jì)算機(jī)工程領(lǐng)域的嵌入式軟件編程現(xiàn)況,以及為何我們總是缺乏良好的固件開(kāi)發(fā)培訓(xùn)。 另一方面,在航空等產(chǎn)業(yè)中,一些大型的嵌入式專(zhuān)案通常都沿用較舊的技術(shù)。“這種保守、過(guò)程導(dǎo)向的工作環(huán)境,通常會(huì)讓許多軟件工程師卻步,”Barr說(shuō)。 觀察家們對(duì)于嵌入式編程語(yǔ)言如C之中的指令若持續(xù)落后,是否會(huì)帶來(lái)危機(jī)一事意見(jiàn)并不相同。一位工程師對(duì)嵌入式軟件專(zhuān)家Dewar的文章做出了如下回覆:“能解決問(wèn)題才是關(guān)鍵。至于專(zhuān)門(mén)的程序語(yǔ)言知識(shí)并不重要。工程師可以學(xué)習(xí)。在這個(gè)產(chǎn)業(yè)中,任何一種特定的知識(shí),壽命其實(shí)都不長(zhǎng)。” 但Barr憂(yōu)心之處在于缺乏C語(yǔ)言課程,還多大多數(shù)熟悉傳統(tǒng)程序語(yǔ)言的軟件工程師年紀(jì)都偏高了,“某種程度來(lái)說(shuō),這也是一種危機(jī)。”他進(jìn)一步表示,嵌入式軟件涉及的層面非常廣泛,從冰箱到汽車(chē)到智能手機(jī)以及醫(yī)療設(shè)備,全都包含在內(nèi)。 |