在這個人工智能和大數據當道的時代,好像不會門編程語言就落後於時代了。
有同學問我:許良許良,現在Python很火,我很想學,但是學長又告訴我,還是學C++好一些。
於是在編程語言的選擇上,在C++和Python之間猶豫不決,不知道到底該如何選擇。
先說下我的背景:
1.我上完了一門在自動駕駛Term1的線課程,Term1的內容主要是機器視覺和深度學習的內容,裡面編程語言是Python;
2.而Term2/Term3是主要是關於車輛定位、數據融合、路徑規劃和車輛控制的內容,裡面使用的語言是C++;
3.國慶期間花了5天時間把C++課程學了一遍,截止到現在,Term2已經完成,使用C++進行編程。
針對這個問題,我說一下我的淺顯的看法,拋磚引玉,要是說的不好,大家輕拍哈~
先說下Python和C++兩者的差異。
性質不同
Python為腳本語言(script language),需要邊解釋邊運行。好處是不需要編譯,可以直接運行。壞處是由於邊解釋邊運行,運行效率慢。
而C++為編譯語言(complier language),需要先編譯再運行。好處是運行速度快,尤其對於大型程序,效率提升明顯。壞處是程序更新後,需要重新編譯運行,不是很方便。
語法不同
Python語法簡單,語句簡潔,使用方便,上手容易,而且不需要編譯可以即使運行,尤其在Jupyter Notebook上運行,那叫一個得心應手,所以才有“人生苦短,我用Python”之說。
C++語法複雜,格式要求高,使用不便,上手較難。比如變量在使用前需聲明(declaration),更不用提指針/虛函數之類,想想都頭大。
應用場景不同
Python在人工智能領域佔據有壓倒性的優勢,有眾多的庫支持,大多數第三方庫都是基於Python開發或者提供完整的API。這也是為什麼自動駕駛Term1使用Python語言的原因。
由於運行速度的優勢,C++在工業界佔有統治性的地位,這也是為什麼在自動駕駛Term2/Term3都是用C++語言的原因。
所以,不用太糾結到底如何選擇,可以根據自己的應用場景和使用目的來選擇。
如果只是追求實現功能,對速度要求不高,請選擇Python。
如果需要追求運行效率,還是選擇C++。
如果是人工智能相關的領域,那還是別猶豫了,直接Python吧~
就醬。
以上。
歡迎大家關注頭條號:我不是許良誰是許良,我會持續跟大家分享汽車圈/互聯網圈的那些事兒。
我做了個思維導圖,供大家參考。
關注我的公眾號“聊聊汽車那些事兒”,回覆“編程語言”即可下載完整版思維導圖。
閱讀更多 許良 的文章