您的位置:首頁 > 熱點(diǎn) >

嵌入式編程感想:會(huì)用C語言的是真男人!

幾個(gè)月前筆者跟兩個(gè)年輕企業(yè)家在巴爾的摩吃了頓愉快的午餐,這兩個(gè)年輕人最近才從霍普金斯大學(xué)(Johns Hopkins University)計(jì)算機(jī)科學(xué)系畢業(yè),創(chuàng)辦了一家業(yè)績(jī)快速成長(zhǎng)的顧問公司;他們的公司擅長(zhǎng)以一種稱為Rubyon Rails (又稱Ruby)的語言,撰寫以網(wǎng)頁為中心的數(shù)據(jù)庫(web-centric databases)軟件。

我們邊吃飯邊談一些工作上的話題,其中一個(gè)年輕人下了個(gè)令我難忘的評(píng)論:“用C語言寫程序是真正的男人!”這句話是他跟同學(xué)在將可用的編程語言進(jìn)行分類時(shí)所發(fā)明的;而即使優(yōu)秀如他,也當(dāng)場(chǎng)承認(rèn)他不符合以上“真正的男人”條件??磥恚@句話不僅反映了C語言的高難度,也顯示對(duì)較年輕的設(shè)計(jì)工程師來說,C語言真的不好掌握。

對(duì)現(xiàn)代的計(jì)算機(jī)科系學(xué)生來說,學(xué)習(xí)C語言就像選修一門用拉丁文來上的課那樣;但C語言并不是已經(jīng)過時(shí)的設(shè)計(jì)語言,且在方興未艾的嵌入式軟件開發(fā)領(lǐng)域維持著主導(dǎo)地位。下面的圖一是美國版EETimes子網(wǎng)站Embedded Systems Design十三年來針對(duì)嵌入式軟件所應(yīng)用之設(shè)計(jì)語言的調(diào)查統(tǒng)計(jì)表。

圖1

從 圖一可看出,C語言在1997~2009年之間都是嵌入式軟件開發(fā)使用最多的語言;近五年來,C與C++語言更瓜分了大部分原屬匯編語言 (assembly)的版圖,其中較高階的C++發(fā)展速度雖不如預(yù)期,但仍在嵌入式軟件設(shè)計(jì)領(lǐng)域維持27%左右的占有率。整體看來,C++語言使用率在 90年代晚期加速上升,在2001年達(dá)到高峰,然后稍微下滑、之后維持穩(wěn)定。

無論如何,嵌入式軟件設(shè)計(jì)師不會(huì)在短時(shí)間內(nèi)放棄使用C語言,原因有很多個(gè):首先,C語言編譯器支持大多數(shù)的8位、16位與32位CPU;其次,C語言在處理器與驅(qū)動(dòng)程序?qū)蛹?jí),兼具高低級(jí)語言的特色。

當(dāng) 然,如果僅獲得一小群人數(shù)逐漸減少的程序設(shè)計(jì)師支持,C語言難以繼續(xù)作為重要的設(shè)計(jì)語言而存活;而既然C語言仍然如此重要,也意味著嵌入式軟件設(shè)計(jì)師并不 會(huì)減少。目前每年新上市的CPU有98%都是嵌入式的,這類新型CPU的長(zhǎng)期發(fā)展性也非常樂觀。圖二顯示美國那斯達(dá)克指數(shù)與新CPU出貨量變化的消長(zhǎng)關(guān)系。

圖1

嵌入式軟件設(shè)計(jì)教育斷層

但 在C語言在全世界各地的重要性日益增加的同時(shí),學(xué)校里卻越來越少學(xué)生愿意去學(xué)如何使用該種設(shè)計(jì)語言;這反映了嵌入式系統(tǒng)設(shè)計(jì)領(lǐng)域日益嚴(yán)重的「教育斷層」問 題。美國的高等教育機(jī)構(gòu)在提供實(shí)用的、嵌入式軟件設(shè)計(jì)必備的技能教育方面非常失敗,相關(guān)開發(fā)技巧非得在工作崗位上才能學(xué)得到。

圖3

從圖三可以看出,在電子工程相關(guān)科系,只有一小部分課程是與嵌入式軟件開發(fā)有關(guān)的;而計(jì)算機(jī)科學(xué)系所提供的嵌入式軟件開發(fā)相關(guān)課程也只多一點(diǎn)點(diǎn)。現(xiàn)在有不少美國大學(xué)雖提供額外的計(jì)算機(jī)工程 學(xué)分,但大多數(shù)還是來自現(xiàn)有電子工程、計(jì)算機(jī)科學(xué)系的課程與教授,并沒有太多有關(guān)嵌入式軟件開發(fā)的新內(nèi)容。而在職訓(xùn)練也很少提供嵌入式軟件開發(fā)課程。

如果以上我所舉出的,有關(guān)C語言將在可見的未來繼續(xù)保有重要性、特別是在嵌入式軟件設(shè)計(jì)領(lǐng)域的種種證據(jù)屬實(shí),那麻煩就真的大了──因?yàn)楝F(xiàn)在的年輕程序設(shè)計(jì)師雖然都很聰明,他們恐怕不知道該如何使用C語言寫程序,甚至不想學(xué)。

總 有人得寫那些需求量越來越大的嵌入式軟件──新一代設(shè)計(jì)語言可能幫得上忙,卻無法支持所有那些發(fā)展資歷已數(shù)十年、未來數(shù)十年也會(huì)繼續(xù)被應(yīng)用的CPU架構(gòu); 既然這樣的趨勢(shì)難以避免,我們這個(gè)圈子需要培育年輕一代的C語言程序設(shè)計(jì)師。但該怎么做呢?若狀況持續(xù)發(fā)展下去,又會(huì)產(chǎn)生怎樣的結(jié)果?

【備注】我確信那位年輕人并沒有性別歧視,「真正的女人」當(dāng)然也會(huì)使用C語言!

(參考原文:Real men program in C,by Michael Barr,本文作者為嵌入式系統(tǒng)設(shè)計(jì)領(lǐng)域的專家,目前經(jīng)營一家嵌入式系統(tǒng)顧問公司Netrino)

標(biāo)簽: C語言 Ruby C++

相關(guān)閱讀