資深C++開發人員稱:Python是最佳的入門編程語言
譯文譯者 | 布加迪
審校 | 孫淑娟?
Phil Nash是C++測試框架的早期開發者之一,也是SonarSource的開發倡導者。他認為,尋找第一語言的新程序員和任何想往工具包添加另一種語言的人都應該從Python入手。?
Nash告訴The New Stack :“選擇Python很乏味,但原因令人興奮。Python很容易入手,它正逐漸成為一種真正專業級的、非常流行的語言。我認為沒有其他語言能像Python滿足所有這些要求。”?
第一語言是Python還是JavaScript ??
那么,JavaScript作為第一語言有什么問題呢?Nash表示,JavaScript是不錯的選擇,但它從來就不是一種對初學者友好的語言。順帶提一下BASIC:這是80年代一種很流行的編程語言,全稱是“初學者通用符號指令”。它很簡單,但是它不是一種非常好的語言,所以人們不用它開發專業級應用程序,直到微軟在90年代推出了Visual Basic。?
Nash表示,流行的Python卻不一樣,因為它用起來簡單,但隨著開發人員變得更有經驗,就可以進而鉆研更復雜的用途,最終編寫出實際的應用程序。Nash認為,JavaScript也相當簡單,但更多的是純屬偶然,而非有意設計。?
他說:“JavaScript原本設計成另外的用途,無意中成為世界上最流行的語言,就因為它基本上與Web捆綁在一起。因此,JavaScript是一門值得學習的出色語言,但它對初學者來說并不友好。”?
另一方面,Python同時滿足了兩方面:對初學者友好,又很有用。?
Nash說:“它讀起來更像是寫在紙上的偽代碼,當您勾勒出想法,它就會轉化成生產代碼庫中的實際工作代碼。沒有比這更適合初學者的了,它在工業中也得到了廣泛應用。”?
他經常在Python和JavaScript之間來回切換,這造成的最大困惑就是搞清楚要不要在行末加分號。?
他說:“這是JavaScript方面的問題之一,許多是可選的。所以分號實際上是可選的,除了在一些情況下它不是可選的。Python的信條之一就是應該有一種正確的方式來做事。這并不總是正確的,但總的來說,它試圖設計事物,以便有明顯的方式來做事,即Python之道。一切看起來都很統一,JavaScript幾乎截然相反。”?
Python作為第二語言:您該費心嗎??
您可能會說,Python無關緊要。說到Web,如果您是前端/Web開發人員,JavaScript確實是王者。?
不妨考慮一下:Anaconda的開源PyScript在去年發布后,現在走向了前端。?
Nash說:“您還可以在后端將Python用作一種出色的Web技術,我經常這么做。它還開始顯示出前端語言的一番潛質,盡管還處于早期階段。現在判斷它是否會流行起來還為時過早,但它確實存在,如果您已經有Python技能,現在可以聲稱或認為自己是前端開發人員,至少如果您試水過的話。換成其他各種語言,恐怕不能這么說。”?
但是眼下對您來說太晚了,您已經學過JavaScript或其他語言了。Nash認為,Python還是一種理想的互補語言。?
他說:“Python是一種很棒的腳本語言。它還有這方面的完整功能,因為它針對問題具有可擴展性。”?
Python的另一個差異化優勢是,它是一種動態語言。因此,比如當您聲明一個變量時,不必說它是什么類型的變量(數字、字符串還是布爾)。該語言根據您的使用方式來推斷,這點酷似JavaScript。對于Java或C++來說不是這樣,它們都是強類型語言。他補充道,動態語言通常對初學者來說更容易。?
“Python是一種動態語言,這意味著您可以在代碼中犯錯誤,這些錯誤只在運行時才被發現,而靜態類型語言會在編譯時發現錯誤。許多人包括我自己通常更喜歡靜態類型語言,尤其是對于更龐大更復雜的代碼庫。Python現在有可選的類型注釋,帶來了很多好處,但前提是您使用額外的靜態分析工具。”?
他補充道,Sonar提供了一種靜態分析工具,可以發現所使用類型的不匹配之處,甚至在Python中也是如此。?
Python可以用作更復雜的代碼庫(比如C++)的友好前端。?
他說:“您可以用Python接口來包裝,然后就很容易據此編寫Python代碼。所以這是大多數機器學習庫所做的,比如它們實際上主要用C++編寫,處理底層的繁重工作,然后是漂亮的相對簡單的Python前端。它其實是優秀的第二語言。如果要學習另一種語言,大多數開發人員在工具包中應該有Python。”?
Python以其在機器學習中的應用而聞名,它也是金融領域的一種流行語言,一方面是由于NumPy和量子計算,它們運用數學和統計方法處理金融和風險管理問題。?
他說:“量子計算開發人員過去幾乎完全用C++處理工作,也許用MATLAB來畫草圖,然后他們會把代碼轉換成C++以提高性能。但有了Python和NumPy,他們發現實際上可以在一個軟件包中獲得所有內容。他們的代碼看起來就像用MATLAB來編寫,但在底層執行起來像C++。”?
開發人員對于Python需要了解的事情?
Web開發的后端有兩種主要的Python框架:Django和Flask。Nash使用Flask從事Web開發。?
他說:“Django更像是傳統的Web框架,您得用Django的方式做所有事。現在您基本上就是Django開發人員了。Flask在許多方面借鑒了Django,但不那么自成一體。實際上您可以引入其他依賴項,以自己想要的方式做事,我編程時就喜歡這樣。”?
他表示,網上還有無數教程和資源用于學習這些框架或與Python有關的知識。Python也已經與基于Unix的操作系統(比如MacOS或Linux)一同出現在機器上。Windows系統可以添加它,只需簡單安裝。然后只要輸入Python,即可從命令行來訪問它。隨后它進入交互式外殼(shell),開發人員可以立即開始輸入代碼。它還可以通過IDE來訪問,比如PyCharm(面向Python的IDE),或者通過結合VS Code的插件。Python不是像C++或Java那樣的高性能語言,不過它也可以在這些編程項目中發揮作用。?
他說:“在性能不重要的應用領域,Python通常是理想的選擇。或者您可以將它與高性能語言結合使用;很容易將它與C++實現對接,從而實現兩全其美。”?
原文標題:??Veteran C++ Developer Says Python Is Best Starter Language??,作者:Loraine Lawson?