回覆列表
-
1 # 你看我獨角獸嗎
-
2 # 小鳥攻城獅
補充一下使用場景:
嵌入式應用層:
說的這兩種語言Python 和C++目前僅限於說在嵌入式系統中的應用層,和低層系統互動的。
嵌入式核心層:
核心層包括底層和驅動層。大部分是C語言編寫,而且會有少量的組合語言,在核心關鍵部分,特別像中斷和訊號量上下文。
-
3 # 非飛2006
在嵌入式系統中,資源受限情況下C用得非常多,其次是C++(C++在嵌入式中其實沒想象中那麼多,嵌入式圖形介面中會多些,特別是QT這樣的C++庫)。
當資源足夠時,Python逐漸用得多起來,一個是Python和C/C++語法有稍許相似性,或者說C/C++開發工程師轉到Python也非常容易;另外一個是Python開發效率比較高。當執行效率不足時,也可以非常方便的以C/C++程式碼開發底層庫,然後匯出介面給Python使用,Python可以很好地承擔起膠水的工作。
還有的,目前因為AI上Python大量應用的緣故,也讓Python熱起來。但這些放到嵌入式上,還並不那麼能夠使用(一些還需要GPU加速,嵌入式平臺不一定具備這樣硬體效能強勁的GPU;而單純的大量數值計算,Python指令碼的效率在嵌入式系統更堪憂),所以這個是需要注意的。
總得來說,玩嵌入式系統還是離不開C/C++,但最好也能掌握Python,不難也好用。
C/C++是編譯語言,而Python是一種解釋型語言。 C/C++已經存在很久了,C最早於1969年開發,C++於1983年推出。Python由Guido van Rossum於1989年建立,年齡較小。從那時起,它就成為最受歡迎的開源程式語言之一。所有Python版本都是開源的,可以自由使用和分發,即使是商業專案也是如此。 (如果您正在尋找商業級支援和補償,可以使用ActivePython等發行版。)
對於PythonPython是美國頂級計算機科學(CS)部門最流行的入門式程式語言。根據Barr Group的一項研究,十大CS部門中有八個目前使用Python來教授編碼。如果你願意,可以辯論它的優點,但簡單的事實是,最近畢業生招聘池中最廣為人知的語言是Python。最近的畢業生很可能會理解如何在Python中編寫程式碼,而不是在C/C++中。
Hobbyist開發人員可能對Python有一定的經驗,他們更有可能熟練使用Python而不是C/C++。由於只有大約40%的計算機軟體工程師和系統分析師擁有計算機科學學位,因此很多業內人士都來自業餘愛好者背景。但是對於嵌入式系統來說,數字會非常嚴重。 Barr集團的研究表明,超過95%的嵌入式系統程式碼是用C/C++編寫的。嵌入式系統上的這種傳統對於Python來說可能很難克服,但它的屬性和龐大的編碼人數可能會幫助它在未來超越C/C++。
Python不僅是入門級CS程式中最受歡迎的語言,它也是嵌入式計算發展最快的語言。當你再次掃描這些數字並認識到它是其餘5%嵌入式系統程式碼中不是C/C++的增長最快的語言時,可能這聽起來很愚蠢,但是Python將開始吃掉C/C++的壟斷,甚至超過未來幾年。有經驗的程式設計無人機,機器人或其他專案經驗豐富的業餘愛好者經常擁有Arduino或Raspberry Pi背景。那時他們可能會在某個層次上處理Python,而且他們很可能會碰到一些嵌入式系統程式設計。
儘管C/C++寫入速度慢,容易出錯且經常無法讀取,但Python以其可寫性,錯誤減少和可讀性而聞名。可讀性的重要性怎麼強調都不過分:當你在一個團隊工作時,可讀性對維護程式碼至關重要。除非您願意在除錯和質量保證方面花費更多時間和金錢,否則它必須易於辨認。 Python的設計重用遠超C/C++,而在當今的敏捷環境中,設計重用可能是保持領先或落後於競爭的區別。
嵌入式演算法變得越來越複雜。簡單的控制迴圈正在被神經網路和其他大量參與的流程取代,這些流程幫助Python獲得了立足點。有像Theano這樣的Python庫可以最佳化這些程序的Python程式碼。雖然Theano主要用C/C++編寫,但Python用於以人性化的方式與高效能庫進行互動。 Python庫正在蓬勃發展 - PyPI是Python包的索引,擁有超過80,000個模組,這些大量的彙編透過讓他們選擇跳過幾個步驟並在自己的程式碼中使用已經建立的功能,大大提高了程式設計師的工作效率。
C/C++C/C++的優勢非常明顯:它建立了更嚴謹和更快的執行程式碼,並且它已經成為95%嵌入式系統程式碼的首選語言,因此它具有Python必須克服的全部遺留問題。然而,在速度方面,執行時速度並不是開發要考慮的唯一方面 - 您還必須考慮開發速度。雖然Python在執行時可能比C/C ++效率低,但在開發過程中效率更高。直譯器讀取每行程式碼,解析它,執行執行時檢查和呼叫例程以執行程式碼中的操作。這比執行C/C++程式碼的步驟要多得多,其中可以將相同的程式碼行編譯成幾條指令。這可能導致執行速度變慢,並導致Python的能耗增加。
總而言之,C/C++的優勢在於編寫過程更嚴謹、執行速度更快,是嵌入式系統程式碼的首選語言。而Python是入門很快、很容易上手且使用,有大量工具包的語言。在實際應用中要看專案需求,如果專案要求高,建議使用用C/C++,如果需要迭代快速,那麼使用Python也是個很好的選擇。