在20世紀80年代,IBM和蘋果已經掀起了個人電腦的浪潮。但是在今天看來,當時的個人電腦的配置都很低,以至於一個大的數組就能把內存占滿。為了讓程序能夠運行,當時所有編程語言編譯器的核心就是盡量的去做優化。為了提高程序運行效率,編程語言迫使程序員去像計算機一樣思考,以便寫出更符合計算機口味的程序。在那個時代,程序猿生活在水深火熱之中,他們被迫去像資本家一樣花費大量的時間和精力想盡一切辦法去搾干計算機的每一寸能力。
Guido von Rossum,一個擁有阿姆斯特丹大學數學和計算機碩士雙學位的荷蘭人,他也是當時的一個苦逼程序猿,並且他已經接觸並使用過C語言。當時Guido面臨的現狀是:即使他已經准確的知道了如何用C語言去寫出一個功能,整個編寫過程還是需要耗費大量的時間,因為他要考慮“這樣寫計算機是不是喜歡”。這讓Guido感到非常苦惱。Guido的另外一個選擇是使用shell。Boure Shell 作為UNIX系統的解釋器(interpreter)已經長期存在。UNIX的管理員們常常用shell去寫一些簡單的腳本,以進行一些系統維護的工作。shell可以像膠水一樣,將UNIX下的許單一的多功能組合在一起去完成一些復雜的工作。許多C語言需要上百行代碼才能完成的功能,在shell下只需要用幾行代碼。然而,shell的本質是調用命令,它並不是一個真正的編程語言。總之,shell不能全面的調動計算機的功能。
Guido非常希望有一種編程語言既可以像C語言那樣能夠全面地調用計算機提供的的功能接口,又可以像shelll那樣可以輕松的進行編程。
1989年,Guido為了打發聖誕假期(看來,這也是個做IT的單身宅...),他開始寫Python語言的編譯器/解釋器。Python的名字來自Guido非常喜歡的電視劇 Monty Python's Flying Circus。他希望這個叫做Python的語言能夠是他一直想要的編程語言--介於C和shell之間,功能全面、易學易用、可擴展。
1991年,Python正式發布第一個版本。該版本用C語言實現了第一個Python編譯器(同時也是解釋器),並且它能夠調用C庫(.so文件),這為python編寫高效的C擴展模塊提供了先天性的條件。
90年代初,個人計算機開始進入普通家庭。Intel發布了486處理器,windows發布了window 3.0開始的一系列視窗系統。計算機的性能大大提高,程序員開始關注計算機的易用性。
1990年的個人電腦時代,許多程序員以及資深計算機用戶已經在頻繁使用Internet進行交流(包括email 和 newsgroup),這讓信息交流成本大大下降。當時Unix的商業化讓愛好開放、自由的IT從業人員感到崩潰,而GNU組織的成立促使一種新的軟件開發模式開始流行:open source。程序員利用業余時間進行軟件開發,並開放源代碼。1991年,Linus在comp.os.minix新聞組上發布了Linux內核源代碼,吸引了大批hacker的加入。Linux的出現之前,那些開源軟件只能跑在他們深惡痛絕的已經商業化的UNIX系統上。這是很滑稽,也是讓開源軟件開發者們感到非常的郁悶的。Linux的出現,讓他們重新找到了組織,Linux和GNU相互合作,最終構成了一個從滿活力的開源平台。
硬件性能不再是瓶頸,Python又容易使用,所以許多人開始轉向Python。另外,Guido後來宣布Python遵循GPL協議,Python從此走上了開源的道路,並且在開源社區的參與下開始快速發展。
自從2004年以後,Python的使用率呈線性增長。現在Python已經成為最受歡迎的程序設計語言之一。
2016年TIOBE編程語言排行榜圖:
由上圖可見,Python的使用率整體呈上升趨勢,說明Python逐漸得到了業內的認可,並且得到了越來越廣泛的應用。這得益於Python的簡單易學,但個人認為更重要的原因在於兩個方面:
Python現在被廣泛用於眾多領域:
系統運維 通過Python提供API能方便的進行系統維護和管理,Python已成為Linux系統下的標志性語言之一;
雲計算 Python是目前雲計算領域最火的語言,典型應用為OpenStack;
Web編程 出現了很多python的web開發框架,如django、tronado,flash等;Youtube、豆瓣、知乎、春雨醫生等公司所有業務幾乎都是用Python完成,另外python在google內部也被大量使用;
科學計算、人工智能 NumPy擴展提供了大量標准數學庫的接口,其他的典型庫還有SciPy、Matplotlib、Enthgout librarys、pandas;
文本處理 Python提供的re模塊支持正則表達式,還提供SGML和XML分析模塊;
數據庫編程 程序員可以通過遵循Python DB-API(數據庫應用程序編程接口)規范的模塊與Microsoft SQL Server、Orace、DB2、MySQL、SQLite等數據庫進行通信;此外,Python自帶一個Gadfly模塊,提供了
一個完整的SQL環境;
網絡編程 Python提供了豐富的模塊支持socket編程,能方便快速地開發分布式應用程序;
圖形處理 有PIL、Tkinter、PyQT等圖形庫支持,能方便進行圖形處理;
其他 python可以用來做很多事其他的事情,如編寫爬蟲程序、多媒體應用、pymo引擎(AVG游戲引擎)
今天Python已經進入到3.0的時代。由於Python 3.0向後不兼容,所以從2.0到3.0的過渡並不容易。另一方面,Python的性能依然值得改進,Python的運算性能低於C++和Java(見Google的討論),因此Python依然是一個在發展中的語言。
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2016-12/138319p2.htm