嵌入式編程感想:會(huì)用C語(yǔ)言的是真男人!
幾個(gè)月前筆者跟兩個(gè)年輕企業(yè)家在巴爾的摩吃了頓愉快的午餐,這兩個(gè)年輕人最近才從霍普金斯大學(xué)(Johns Hopkins University)計(jì)算機(jī)科學(xué)系畢業(yè),創(chuàng)辦了一家業(yè)績(jī)快速成長(zhǎng)的顧問(wèn)公司;他們的公司擅長(zhǎng)以一種稱為Ruby on Rails (又稱Ruby)的語(yǔ)言,撰寫(xiě)以網(wǎng)頁(yè)為中心的數(shù)據(jù)庫(kù)(web-centric databases)軟件。
本文引用地址:http://cafeforensic.com/article/249851.htm我們邊吃飯邊談一些工作上的話題,其中一個(gè)年輕人下了個(gè)令我難忘的評(píng)論:“用C語(yǔ)言寫(xiě)程序是真正的男人!”這句話是他跟同學(xué)在將可用的編程語(yǔ)言進(jìn)行分類時(shí)所發(fā)明的;而即使優(yōu)秀如他,也當(dāng)場(chǎng)承認(rèn)他不符合以上“真正的男人”條件??磥?lái),這句話不僅反映了C語(yǔ)言的高難度,也顯示對(duì)較年輕的設(shè)計(jì)工程師來(lái)說(shuō),C語(yǔ)言真的不好掌握。
對(duì)現(xiàn)代的計(jì)算機(jī)科系學(xué)生來(lái)說(shuō),學(xué)習(xí)C語(yǔ)言就像選修一門用拉丁文來(lái)上的課那樣;但C語(yǔ)言并不是已經(jīng)過(guò)時(shí)的設(shè)計(jì)語(yǔ)言,且在方興未艾的嵌入式軟件開(kāi)發(fā)領(lǐng)域維持著主導(dǎo)地位。下面的圖一是美國(guó)版EETimes子網(wǎng)站Embedded Systems Design十三年來(lái)針對(duì)嵌入式軟件所應(yīng)用之設(shè)計(jì)語(yǔ)言的調(diào)查統(tǒng)計(jì)表。
圖1
從 圖一可看出,C語(yǔ)言在1997~2009年之間都是嵌入式軟件開(kāi)發(fā)使用最多的語(yǔ)言;近五年來(lái),C與C++語(yǔ)言更瓜分了大部分原屬匯編語(yǔ)言 (assembly)的版圖,其中較高階的C++發(fā)展速度雖不如預(yù)期,但仍在嵌入式軟件設(shè)計(jì)領(lǐng)域維持27%左右的占有率。整體看來(lái),C++語(yǔ)言使用率在 90年代晚期加速上升,在2001年達(dá)到高峰,然后稍微下滑、之后維持穩(wěn)定。
無(wú)論如何,嵌入式軟件設(shè)計(jì)師不會(huì)在短時(shí)間內(nèi)放棄使用C語(yǔ)言,原因有很多個(gè):首先,C語(yǔ)言編譯器支持大多數(shù)的8位、16位與32位CPU;其次,C語(yǔ)言在處理器與驅(qū)動(dòng)程序?qū)蛹?jí),兼具高低級(jí)語(yǔ)言的特色。
當(dāng) 然,如果僅獲得一小群人數(shù)逐漸減少的程序設(shè)計(jì)師支持,C語(yǔ)言難以繼續(xù)作為重要的設(shè)計(jì)語(yǔ)言而存活;而既然C語(yǔ)言仍然如此重要,也意味著嵌入式軟件設(shè)計(jì)師并不 會(huì)減少。目前每年新上市的CPU有98%都是嵌入式的,這類新型CPU的長(zhǎng)期發(fā)展性也非常樂(lè)觀。圖二顯示美國(guó)那斯達(dá)克指數(shù)與新CPU出貨量變化的消長(zhǎng)關(guān)系。
圖1
嵌入式軟件設(shè)計(jì)教育斷層
但 在C語(yǔ)言在全世界各地的重要性日益增加的同時(shí),學(xué)校里卻越來(lái)越少學(xué)生愿意去學(xué)如何使用該種設(shè)計(jì)語(yǔ)言;這反映了嵌入式系統(tǒng)設(shè)計(jì)領(lǐng)域日益嚴(yán)重的「教育斷層」問(wèn) 題。美國(guó)的高等教育機(jī)構(gòu)在提供實(shí)用的、嵌入式軟件設(shè)計(jì)必備的技能教育方面非常失敗,相關(guān)開(kāi)發(fā)技巧非得在工作崗位上才能學(xué)得到。
圖3
從圖三可以看出,在電子工程相關(guān)科系,只有一小部分課程是與嵌入式軟件開(kāi)發(fā)有關(guān)的;而計(jì)算機(jī)科學(xué)系所提供的嵌入式軟件開(kāi)發(fā)相關(guān)課程也只多一點(diǎn)點(diǎn)?,F(xiàn)在有不少美國(guó)大學(xué)雖提供額外的計(jì)算機(jī)工程 學(xué)分,但大多數(shù)還是來(lái)自現(xiàn)有電子工程、計(jì)算機(jī)科學(xué)系的課程與教授,并沒(méi)有太多有關(guān)嵌入式軟件開(kāi)發(fā)的新內(nèi)容。而在職訓(xùn)練也很少提供嵌入式軟件開(kāi)發(fā)課程。
如果以上我所舉出的,有關(guān)C語(yǔ)言將在可見(jiàn)的未來(lái)繼續(xù)保有重要性、特別是在嵌入式軟件設(shè)計(jì)領(lǐng)域的種種證據(jù)屬實(shí),那麻煩就真的大了──因?yàn)楝F(xiàn)在的年輕程序設(shè)計(jì)師雖然都很聰明,他們恐怕不知道該如何使用C語(yǔ)言寫(xiě)程序,甚至不想學(xué)。
總 有人得寫(xiě)那些需求量越來(lái)越大的嵌入式軟件──新一代設(shè)計(jì)語(yǔ)言可能幫得上忙,卻無(wú)法支持所有那些發(fā)展資歷已數(shù)十年、未來(lái)數(shù)十年也會(huì)繼續(xù)被應(yīng)用的CPU架構(gòu); 既然這樣的趨勢(shì)難以避免,我們這個(gè)圈子需要培育年輕一代的C語(yǔ)言程序設(shè)計(jì)師。但該怎么做呢?若狀況持續(xù)發(fā)展下去,又會(huì)產(chǎn)生怎樣的結(jié)果?
【備注】我確信那位年輕人并沒(méi)有性別歧視,「真正的女人」當(dāng)然也會(huì)使用C語(yǔ)言!
(參考原文:Real men program in C,by Michael Barr,本文作者為嵌入式系統(tǒng)設(shè)計(jì)領(lǐng)域的專家,目前經(jīng)營(yíng)一家嵌入式系統(tǒng)顧問(wèn)公司Netrino)
c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
c++相關(guān)文章:c++教程
評(píng)論