摘要:Pyhon發展歷史以及運用場景介紹程序員
1. Python的起源web
Python的做者,Guido von Rossum,荷蘭人。1982年,Guido從阿姆斯特丹大學得到了數學和計算機碩士學位。然而,儘管他算得上是一位數學家,但他更加享受計算機帶來的樂趣。用他的話說,儘管擁有數學和計算機雙料資質,他總趨向於作計算機相關的工做,並熱衷於作任何和編程相關的活兒。在那個時候,Guido接觸並使用過諸如Pascal、C、Fortran等語言。這些語言的基本設計原則是讓機器能更快運行。在80年代,雖然IBM和蘋果已經掀起了我的電腦浪潮,但這些我的電腦的配置很低。好比早期的Macintosh,只有8MHz的CPU主頻和128KB的RAM,一個大的數組就能佔滿內存。全部的編譯器的核心是作優化,以便讓程序可以運行。爲了增進效率,語言也迫使程序員像計算機同樣思考,以便能寫出更符合機器口味的程序。在那個時代,程序員巴不得用手榨取計算機每一寸的能力。有人甚至認爲C語言的指針是在浪費內存。至於動態類型,內存自動管理,面向對象…… 別想了,那會讓你的電腦陷入癱瘓。這種編程方式讓Guido感到苦惱。Guido知道如何用C語言寫出一個功能,但整個編寫過程須要耗費大量的時間,即便他已經準確的知道了如何實現。他的另外一個選擇是shell。Bourne Shell做爲UNIX系統的解釋器已經長期存在。UNIX的管理員們經常用shell去寫一些簡單的腳本,以進行一些系統維護的工做,好比按期備份、文件系統管理等等。shell能夠像膠水同樣,將UNIX下的許多功能鏈接在一塊兒。許多C語言下上百行的程序,在shell下只用幾行就能夠完成。然而,shell的本質是調用命令。它並非一個真正的語言。好比說,shell沒有數值型的數據類型,加法運算都很複雜。總之,shell不能全面的調動計算機的功能。shell
Guido但願有一種語言,這種語言可以像C語言那樣,可以全面調用計算機的功能接口,又能夠像shell那樣,能夠輕鬆的編程。ABC語言讓Guido看到但願。ABC是由荷蘭的數學和計算機研究所開發的。Guido在該研究所工做,並參與到ABC語言的開發。ABC語言以教學爲目的。與當時的大部分語言不一樣,ABC語言的目標是「讓用戶感受更好」。ABC語言但願讓語言變得容易閱讀,容易使用,容易記憶,容易學習,並以此來激發人們學習編程的興趣。編程
2.Python的運用場景數組
Python常常被用於Web開發。好比,經過mod_wsgi模塊,Apache能夠運行用Python編寫的Web程序。Python定義了WSGI標準應用接口來協調Http服務器與基於Python的Web程序之間的通訊。一些Web框架,如Django,TurboGears,web2py,Zope等,可讓程序員輕鬆地開發和管理複雜的Web程序。服務器
在不少操做系統裏,Python是標準的系統組件。 大多數Linux發行版以及NetBSD、OpenBSD和Mac OS X都集成了Python,能夠在終端下直接運行Python。有一些Linux發行版的安裝器使用Python語言編寫,好比Ubuntu的Ubiquity安裝器,Red Hat Linux和Fedora的Anaconda安裝器。Gentoo Linux使用Python來編寫它的Portage包管理系統。Python標準庫包含了多個調用操做系統功能的庫。經過pywin32這個第三方軟件 包,Python可以訪問Windows的COM服務及其它Windows API。使用IronPython,Python程序可以直接調用.Net Framework。通常說來,Python編寫的系統管理腳本在可讀性、性能、代碼重用度、擴展性幾方面都優於普通的shell腳本。網絡
NumPy,SciPy,Matplotlib可讓Python程序員編寫科學計算程序。框架
PyQt、PySide、wxPython、PyGTK是Python快速開發桌面應用程序的利器。運維
Python對於各類網絡協議的支持很完善,所以常常被用於編寫服務器軟件、網絡爬蟲。第三方庫Twisted支持異步網絡編程和多數標準的網絡協議(包含客戶端和服務器),而且提供了多種工具,被普遍用於編寫高性能的服務器軟件。異步
不少遊戲使用C++編寫圖形顯示等高性能模塊,而使用Python或者Lua編寫遊戲的邏輯、服務器。相較於Python,Lua的功能更簡單、體積更小;而Python則支持更多的特性和數據類型。
YouTube、Google、Yahoo!、NASA都在內部大量地使用Python。