Global Sources
電子工程專輯
 
電子工程專輯 > EDA/IP
 
 
EDA/IP  

專家觀點:會用C語言的是真男人!

上網時間: 2009年08月12日     打印版  Bookmark and Share  字型大小:  

關鍵字:C語言  嵌入式軟體  程式 

幾個月前筆者跟兩個年輕企業家在巴爾的摩吃了頓愉快的午餐,這兩個年輕人最近才從霍普金斯大學(Johns Hopkins University)電腦科學系畢業,創辦了一家業績快速成長的顧問公司;他們的公司擅長以一種稱為Ruby on Rails (又稱Ruby)的語言,撰寫以網頁為中心的資料庫(web-centric databases)軟體。

我們邊吃飯邊談一些工作上的話題,其中一個年輕人下了個令我難忘的評論:「用C語言寫程式是真正的男人!」這句話是他跟同學在將可用的編程語言進行分類時所發明的;而即使優秀如他,也當場承認他不符合以上“真正的男人”條件。看來,這句話不僅反映了C語言的高難度,也顯示對較年輕的設計工程師來說,C語言真的不好掌握。

對現代的電腦科系學生來說,學習C語言就像選修一門用拉丁文來上的課那樣;但C語言並不是已經過時的設計語言,且在方興未艾的嵌入式軟體開發領域維持著主導地位。下面的圖一是美國版EETimes子網站Embedded Systems Design十三年來針對嵌入式軟體所應用之設計語言的調查統計表。

從圖一可看出,C語言在1997~2009年之間都是嵌入式軟體開發使用最多的語言;近五年來,C與C++語言更瓜分了大部分原屬組合語言(assembly)的版圖,其中較高階的C++發展速度雖不如預期,但仍在嵌入式軟體設計領域維持27%左右的佔有率。整體看來,C++語言使用率在90年代晚期加速上升,在2001年達到高峰,然後稍微下滑、之後維持穩定。


無論如何,嵌入式軟體設計師不會在短時間內放棄使用C語言,原因有很多個:首先,C語言編譯器支援大多數的8位元、16位元與32位元CPU;其次,C語言在處理器與驅動程式層級,兼具高低階語言的特色。

當然,如果僅獲得一小群人數逐漸減少的程式設計師支持,C語言難以繼續作為重要的設計語言而存活;而既然C語言仍然如此重要,也意味著嵌入式軟體設計師並不會減少。目前每年新上市的CPU有98%都是嵌入式的,這類新型CPU的長期發展性也非常樂觀。圖二顯示美國那斯達克指數與新CPU出貨量變化的消長關係。


嵌入式軟體設計教育斷層

但在C語言在全世界各地的重要性日益增加的同時,學校裡卻越來越少學生願意去學如何使用該種設計語言;這反映了嵌入式系統設計領域日益嚴重的「教育斷層」問題。美國的高等教育機構在提供實用的、嵌入式軟體設計必備的技能教育方面非常失敗,相關開發技巧非得在工作崗位上才能學得到。

從圖三可以看出,在電子工程相關科系,只有一小部分課程是與嵌入式軟體開發有關的;而電腦科學系所提供的嵌入式軟體開發相關課程也只多一點點。現在有不少美國大學雖提供額外的電腦工程學分,但大多數還是來自現有電子工程、電腦科學系的課程與教授,並沒有太多有關嵌入式軟體開發的新內容。而在職訓練也很少提供嵌入式軟體開發課程。


如果以上我所舉出的,有關C語言將在可見的未來繼續保有重要性、特別是在嵌入式軟體設計領域的種種證據屬實,那麻煩就真的大了──因為現在的年輕程式設計師雖然都很聰明,他們恐怕不知道該如何使用C語言寫程式,甚至不想學。

總有人得寫那些需求量越來越大的嵌入式軟體──新一代設計語言可能幫得上忙,卻無法支援所有那些發展資歷已數十年、未來數十年也會繼續被應用的CPU架構;既然這樣的趨勢難以避免,我們這個圈子需要培育年輕一代的C語言程式設計師。但該怎麼做呢?若狀況持續發展下去,又會產生怎樣的結果?

【備註】我確信那位年輕人並沒有性別歧視,「真正的女人」當然也會使用C語言!

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





投票數:   加入我的最愛
我來評論 - 專家觀點:會用C語言的是真男人!
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首