如今有眾多可選的編程語(yǔ)言,這往往是入門(mén)者首先要面對(duì)的問(wèn)題。開(kāi)發(fā)工具的選擇有時(shí)取決于特定的約束條件或者個(gè)人喜好。
過(guò)去的16年中對(duì)近260個(gè)團(tuán)體組織和4000名學(xué)生的Python培訓(xùn)過(guò)程,讓我見(jiàn)證了人們做出這一選擇的一些共性原因。大部分Python用戶(hù)都提到了下面這些原因。
01 軟件質(zhì)量
對(duì)于很多人而言,Python更注重可讀性、一致性和軟件質(zhì)量,這使得它區(qū)別于腳本語(yǔ)言世界中的許多其他工具。
Python代碼在設(shè)計(jì)之初就具有良好的可讀性,因此具備了比傳統(tǒng)腳本語(yǔ)言更優(yōu)秀的可重用性和可維護(hù)性。即使代碼并非你親手所寫(xiě),Python的一致性也保證其易于理解。
此外,Python支持軟件開(kāi)發(fā)的高級(jí)重用機(jī)制。例如面向?qū)ο螅╫bject-oriented,OO)以及函數(shù)式編程(function programming)。
從設(shè)計(jì)之初,Python就秉承了一種獨(dú)特的簡(jiǎn)潔而極具可讀性的語(yǔ)法,以及一種高度一致的編程模型。
正如過(guò)去某次Python會(huì)議標(biāo)語(yǔ)所宣稱(chēng)的那樣,Python似乎是“與人腦思維直覺(jué)吻合”,也就是說(shuō),Python的語(yǔ)言特性以一種一致和受限的方式進(jìn)行交互,并自然地遵守一套緊湊的核心概念。這使得Python易于學(xué)習(xí)、理解和記憶。
事實(shí)上,Python程序員在閱讀和編寫(xiě)代碼時(shí)無(wú)須經(jīng)常查閱手冊(cè)。Python是一個(gè)設(shè)計(jì)風(fēng)格始終如一的開(kāi)發(fā)平臺(tái),可以保證開(kāi)發(fā)出具有一致性的代碼。
從哲學(xué)理念上講,Python采取了一種所謂極簡(jiǎn)主義的設(shè)計(jì)理念。這意味著盡管實(shí)現(xiàn)某一編程任務(wù)通常有多種方法,往往只有一種方法是顯而易見(jiàn)的,還有一些不是那么明顯的方法,而且貫穿整門(mén)語(yǔ)言都采用這一套緊湊的交互形式。
此外,Python并不會(huì)為你做任意的選擇;當(dāng)交互模棱兩可時(shí),使用簡(jiǎn)潔明了的解決辦法要優(yōu)于“魔法”般的方式。在Python的思維方式中,明確勝于隱晦,簡(jiǎn)單勝于復(fù)雜。
除了以上的設(shè)計(jì)宗旨,Python還包含模塊化、OOP在內(nèi)的一些工具來(lái)自然地提升程序的可重用性。而且由于Python致力于提升編碼質(zhì)量,Python程序員也都自然而然地秉承了這一理念。
02 開(kāi)發(fā)者生產(chǎn)效率
相對(duì)于C、C++和Java等編譯/靜態(tài)類(lèi)型語(yǔ)言,Python的開(kāi)發(fā)者效率提高了數(shù)倍。
Python代碼的長(zhǎng)度往往只有C++或Java代碼的1/5~1/3。這就意味著可以錄入更少的代碼,調(diào)試更少的代碼,并在開(kāi)發(fā)完成之后維護(hù)更少的代碼。并且Python程序可以立即運(yùn)行,而無(wú)需傳統(tǒng)編譯/靜態(tài)語(yǔ)言所必需的編譯及鏈接等步驟,進(jìn)一步提高了程序員的效率。
20世紀(jì)90年代中后期,互聯(lián)網(wǎng)帶來(lái)的信息爆炸使有限的程序員與日益繁多的軟件開(kāi)發(fā)項(xiàng)目之間的矛盾愈發(fā)嚴(yán)重;開(kāi)發(fā)者開(kāi)發(fā)系統(tǒng)的速度常常要求趕上互聯(lián)網(wǎng)演變的速度。在這一浪潮過(guò)后的公司裁員和經(jīng)濟(jì)衰退時(shí)期,產(chǎn)業(yè)圖景又悄然改變。公司開(kāi)始要求更少的程序員來(lái)完成相同的開(kāi)發(fā)任務(wù)。
無(wú)論在以上哪種背景下,Python作為開(kāi)發(fā)工具均以付出更少的精力完成更多的任務(wù)而脫穎而出。
Python致力于開(kāi)發(fā)速度的最優(yōu)化:其簡(jiǎn)潔的語(yǔ)法、動(dòng)態(tài)類(lèi)型、無(wú)須編譯、內(nèi)置工具包等特性使程序員能夠快速完成項(xiàng)目開(kāi)發(fā),而使用其他開(kāi)發(fā)語(yǔ)言則需要幾倍的時(shí)間。其最終結(jié)果就是,相對(duì)于傳統(tǒng)的語(yǔ)言,Python把開(kāi)發(fā)者效率提高了數(shù)倍。
不論所處的時(shí)代是欣欣向榮還是蕭條而不景氣,也無(wú)論軟件行業(yè)未來(lái)的走勢(shì)是起還是落,這都是一件值得慶幸的事。
03 程序的可移植性
絕大多數(shù)的Python程序不做任何改變即可在所有主流計(jì)算機(jī)平臺(tái)上運(yùn)行。例如,在Linux和Windows之間移植Python代碼,只需簡(jiǎn)單地在機(jī)器間復(fù)制代碼即可。
此外,Python提供了多種可選的代碼庫(kù),用于編寫(xiě)包括用戶(hù)圖形界面、數(shù)據(jù)庫(kù)接入、基于Web的系統(tǒng)等在內(nèi)的各種程序。其中甚至包括程序啟動(dòng)和文件夾處理這樣的操作系統(tǒng)級(jí)接口,也成為Python可移植性的一部分。
04 標(biāo)準(zhǔn)庫(kù)的支持
Python內(nèi)置了眾多預(yù)構(gòu)建并可移植的功能模塊,這些功能模塊叫作標(biāo)準(zhǔn)庫(kù)(standard library)。標(biāo)準(zhǔn)庫(kù)支持一系列應(yīng)用級(jí)的編程任務(wù),涵蓋了從字符模式到網(wǎng)絡(luò)腳本編程的匹配等方面。
此外,Python可通過(guò)自行開(kāi)發(fā)的庫(kù)或眾多第三方的應(yīng)用來(lái)支持軟件的擴(kuò)展。Python的第三方支持工具包括網(wǎng)站搭建、數(shù)值計(jì)算、串口讀寫(xiě)、游戲開(kāi)發(fā)等各個(gè)方面(參考接下來(lái)的樣例)。例如,NumPy是一個(gè)免費(fèi)的,與MATLAB一樣功能強(qiáng)大的數(shù)值計(jì)算開(kāi)發(fā)平臺(tái)。
05 組件集成
Python腳本可通過(guò)多種集成機(jī)制輕松地與應(yīng)用程序的其他部分進(jìn)行通信。這種集成使Python成為實(shí)現(xiàn)產(chǎn)品定制和擴(kuò)展的工具。
目前,Python代碼可以調(diào)用C和C++的庫(kù),可以被C和C++的程序調(diào)用,可以與Java和.NET組件集成,可以與COM和Silverlight等框架進(jìn)行通信,可以通過(guò)串行端口與設(shè)備進(jìn)行連接,并且可以通過(guò)SOAP、XML-RPC和CORBA等接口與網(wǎng)絡(luò)進(jìn)行交互。Python絕不僅僅是一個(gè)孤立的工具。
06 享受樂(lè)趣
Python的易用性和強(qiáng)大內(nèi)置工具使編程成為一種樂(lè)趣,而不是瑣碎的重復(fù)勞動(dòng)。這是一個(gè)難以言表的優(yōu)點(diǎn),將對(duì)開(kāi)發(fā)效率的提升有很重要的幫助。
-
編程語(yǔ)言
+關(guān)注
關(guān)注
10文章
1923瀏覽量
34517 -
python
+關(guān)注
關(guān)注
54文章
4760瀏覽量
84310
原文標(biāo)題:你為什么選擇Python?4000名用戶(hù)提到了這些原因
文章出處:【微信號(hào):mcuworld,微信公眾號(hào):嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論