默默從 90 年代耕耘至今的 Python 老大哥在今年也將邁入 30 歲了,2010 年是它人生最輝煌巔峰的時期,名氣與使用程度不僅超越了 C、C#、Java 和 JavaScript,甚至 2018 年開始在 Stack Overflow 幾乎有 14% 的問題標籤都是 Python,超越了 C#、Java、JavaScript、C++ 和 R,那這 3 名潛藏的新星之秀究竟是誰,它們跟老大哥有什麼不同?
Python 助新手工程師 Coding 穩定成長,但對資深的來說呢?
從另外一份資料:TIOBE 6 月熱門程式語言排行來看,Python 目前接受度也在第二名。先從 Python 的優點來看,它已立足於市場、工程語言界有幾十餘年,在網路上擁有廣大迴響與公開資源,對於新手工程師、或是老手來說都相當易於使用學習,像是不需指定資料格式,你僅需要宣告一個變數,Python 就能理解其整數、福點數、布林值。如果你曾經學過 C++ 應該多少體會過些挫敗,因為浮點數轉換成整數的關係導致你沒辦法編譯, C++ 雖考慮到英文閱讀的問題做設計,但相比 Python 來說更難閱讀。
那 Python 的缺點有哪些?
- 速度太慢了:老大哥真的老了,使用 Python 完成一項任務所需的時間比使用任何其他語言要長 2 到 10 倍,因為不像其他的靜態語言,動態語言的它很吃記憶體又需要保留內存,一次只能執行一個任務導致 Python 需要確定每個變數只有一種型態,不然最後很有可能要從頭再來。
- 定義變數範圍:因為 Python 計算運算式時編譯器要先尋找程式碼區塊,然後要確定所有的函數都是能被執行的,而且每個運算式都需要先測試,十分麻煩。
- 匿名函數適用機會有限:Python 能使用 Lambdas 的機會少之又少,匿名函數只能作為 Python 運算式,不能作為陳述式。另一方面,變數宣告和陳述式都是陳述式,這代表 Lambdas 不能使用他們,這種類型的運算式在 Python 的表達式和陳述式之間的區隔不明顯,但這情況在其他語言中不會發生。
- 運算時容易跳出錯誤:Python 不是先編譯後執行,導致很多錯誤會在跑程式的時候一直跳出來,對新手查找錯誤是一個幫助,但對資深工程師來說會花費太多時間,需要額外設置節點。
那哪 3 種程式語言,未來可能取代 Python ?
- Rust 語言:這項語與 Python 有著相同的安全性,沒有變數會被意外覆蓋過去,根據 StackOverflow Insights 數據指出,這也是過去幾年最受歡迎的程式語言。
- Go 語言:非常適合像 Python 一樣初入門的初學者,也是現行維護跟使用上較為簡易的一種,這項語法是現在中高收入工程師用的語法排名之一。
- Julia 語言:可與 Python 直接正面競爭的新語法,現在多數使用 Python 或 Matlab 的工程師,會用 C++ 來修正輔助,但之後為了減少 2 種語法互相搭配的麻煩,會取向用 Julia 一次性處理。
但整體來說,並沒有哪一種程式語言一定是「最好」的,畢竟不論哪種工具只有自己使用過,才知道哪個比較適合自己。
核稿編輯:MindyLi
延伸閱讀:
- 邊玩遊戲邊學 JavaScript !Google 推出最新應用程式讓你隨時隨地學 coding
- Coding 更快找答案!Google 搜尋直接預覽 Stack Overflow內容
- 支援 Python 與 R 語言!Facebook 開源大規模預測工具「Prophet」