[閒聊] [轉貼] 會用C語言的是真男人!
原文網址
http://www.eettaiwan.com/ART_8800581112_480102_NT_ec9075be.HTM?click_from=8800029681,8656845686,2009-08-12,EETOL,ARTICLE_ALERT
出自電子工程專輯
幾個月前筆者跟兩個年輕企業家在巴爾的摩吃了頓愉快的午餐,這兩個年輕人最近才從霍
普金斯大學(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)
--------------------------------------------------------------------------
看起來這裡有不少鄉民都是真男人了!!!
^^
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.250.105
推
08/12 13:37, , 1F
08/12 13:37, 1F
→
08/12 13:57, , 2F
08/12 13:57, 2F
→
08/12 13:58, , 3F
08/12 13:58, 3F
→
08/12 14:01, , 4F
08/12 14:01, 4F
推
08/12 14:02, , 5F
08/12 14:02, 5F
→
08/12 14:02, , 6F
08/12 14:02, 6F
→
08/12 14:04, , 7F
08/12 14:04, 7F
噓
08/12 14:08, , 8F
08/12 14:08, 8F
→
08/12 14:09, , 9F
08/12 14:09, 9F
推
08/12 14:17, , 10F
08/12 14:17, 10F
→
08/12 14:36, , 11F
08/12 14:36, 11F
推
08/12 14:55, , 12F
08/12 14:55, 12F
推
08/12 16:10, , 13F
08/12 16:10, 13F
→
08/12 16:13, , 14F
08/12 16:13, 14F
→
08/12 17:43, , 15F
08/12 17:43, 15F
推
08/12 17:57, , 16F
08/12 17:57, 16F
→
08/12 17:58, , 17F
08/12 17:58, 17F
→
08/12 20:07, , 18F
08/12 20:07, 18F
推
08/12 22:30, , 19F
08/12 22:30, 19F
→
08/12 23:41, , 20F
08/12 23:41, 20F
→
08/13 01:12, , 21F
08/13 01:12, 21F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章