每年都有新的編程語言誕生。創造一種新語言來解決計算機科學挑戰的誘惑是難以抗拒的。一些資料顯示有多達2500種語言,這并不奇怪。
對于我們嵌入式軟件開發人員來說,這個數字并不算大。事實上,我們可以用一只手來數一數我們在目標上實際使用的所有語言:C、C++、Rust和Python。還有一些其他的語言,特別是如果你在嵌入式Linux或FPGAs上工作,這里只是在考慮使用微控制器的開發人員會考慮的語言。
在很大程度上,近50年來,C一直是資源受限系統中使用的主要語言。今天關于通用軟件計算有趣的是,C語言在那個時期也占了主導地位。至少,直到2024年6月。39年來第一次,至少根據TIOBE編程社區指數,C的受歡迎程度降到了C++以下!
圖一。通用編程語言普及的歷史表明,C++有史以來第一次擊敗了C
語言流行意味著什么
嵌入式軟件團隊和開發人員是否應該擔心C++的受歡迎程度剛剛超過C?隨著時間的推移,這些語言的受歡迎程度會起起伏伏。事實上,縱觀歷史,有幾次C++看起來似乎會統治C,結果C的受歡迎程度再次飆升。
這次是不同的。通用軟件行業的許多團隊正在從C語言轉向C++或Rust。現在連Linux內核都提供了對Rust的支持!雖然C語言在通用計算中可能會失去人氣,但它仍然是嵌入式系統事實上的語言,并且在可預見的未來仍將如此。
回顧過去十年的調查數據,超過80%的嵌入式系統項目使用了C語言!今天,這些數字在60-70%之間。也許更有趣的是,C++已經增長到嵌入式項目的20–25 %!即使是嵌入式團隊,總的趨勢也是遠離C,走向C++。這些調查中的語言流行度可以幫助團隊了解計算機科學的總體趨勢,并洞察未來開發人員可能擁有的技能。例如,越來越多的人推薦使用Rust。
雖然遺留的C代碼比任何人能夠量化的都要多,但這并不意味著我們應該將所有的新代碼開發與一種過時的語言聯系起來。畢竟,當現代技術可以讓團隊走得更遠更快時,為什么要扼殺創新和浪費時間呢?
當然,你可能會說微控制器是資源受限的設備,需要C語言,但是你有沒有看到今天哪些廠商推出了資源受限的產品?Cortex-M33器件具有2MB閃存和768 kB RAM,運行頻率為160 MHz及以上。
C++或Rust太慢的論點真的經不起推敲。
結論
C++有史以來第一次超越C成為最受歡迎的編程語言。這種趨勢會持續下去嗎?只有時間能證明一切。然而,重要的是要認識到語言普及并不能說明全部。
如果嵌入式系統語言選擇的正確解決方案是如下使用它們,不會感到驚訝:
l 啟動代碼的匯編語言
l c用于低級驅動程序和主板支持
l 應用程序代碼是C++還是Rust
雖然我們經常認為一種語言支配另一種語言,但我們已經在一個系統中使用了多種語言。為什么不在應用程序級別擴展C++或Rust的使用,在那里它能提供最大的好處,而把C代碼放在我們已經最熟悉的地方呢?
這將使我們最好地利用C的速度和“靈活性”以及C++或者信任現代技術和抽象。