豆瓣的開發語言:無所不能的python

pythontab發表於2014-10-28

面對珍珠(Perl)奪目之光、靈蛇(Python)更具有上天入地之能。它可以在 MS-DOS,Amiga,BeOS, OS/2,VMS,QNX等多種OS上執行;比 Perl 和 VB更快更好,比 C 和 C++ 語言更具擴充性;不僅在"星球大戰"、 "星球之旅(Star Trek)"等超級大片中當綱特技和動畫製作,還闖入了美國航天航空局控制室。真相如何,請看報導。 

  對 Perl (珍珠) 語言,網際網路開發人員可以說是無人不知、無人不曉;它執行迅捷、操作簡單,而且可以讓使用者在使用時感到其樂無窮。但它也有不竟如人意的時候:它的開放性同時帶來了它的複雜性,用它處理大專案時尤其會使人無從下手。 

  儘管如此,大部分網際網路專案仍得靠著 Perl 這員"功臣"來搭建。 

  但也並非別無選擇。最新推薦的軟體叫 Python (靈蛇),它的歷史僅有 Perl 的1/4,有著許多相似的特徵。 

  Python 的名字源於著名的滑稽團 Monty Python,它擁有許多廣為人知的演員,並塑造了許多婦孺皆知的銀屏形象。那麼,網際網路世界中的 Python 又是怎樣的一個形象呢? 

  更快更好的 Python 

  與 Perl 一樣, Python 也是一種解釋語言,它完全採用物件導向的方式,語言結構介於 C 語言和 Perl 語言之間。雖然它被視作一種高極語言,但它的內建直譯器的功能卻非常基本,僅有幾種功能、運算子和關鍵詞便構成了整個程式語言。它的優勢可不僅如此,它還能透過一系列的模組進行擴充。它既比 Perl 和 VB 語句更快更好,又比 C 和 C++ 語言更有擴充性。 

  同樣,Python 對程式語句的處理首先透過一個解釋和編譯系統轉換成為一系列的位元組程式碼,然後再由 Python 的虛擬機器進行處理。Python 設計得非常有效,主要歸功於它龐大的功能庫,因此使用者不用進入系統環境或是作業系統,也不用引用模組。用 Python 程式設計,小程式還是小程式,不必勞費太多的成本和時間。 

  除了它的 Core 平臺外, Python 還能在 MS-DOS,Amiga,BeOS, OS/2,VMS,QNX 以及其它許多作業系統上執行。甚至還可以在掌上電腦上執行 Python 程式。面對珍珠(Perl)奪目之光、靈蛇(Python)更具有上天入地之能。 

  除了它的 Core 平臺外, Python 還能在 MS-DOS,Amiga,BeOS, OS/2,VMS,QNX 以及其它許多作業系統上執行。甚至還可以在掌上電腦上執行 Python 程式。 

  Python 還有以下顯著的特徵: 

  超強的適應性 

  Python 可以由一系列的平臺支援。它編譯完備的格式可以在 Windows 和 MacOS 及其自身 Tk 擴充平臺上執行,並可用於開發對使用者友好的介面。在 UNIX 和其它平臺上, Python 可以作為原始碼由程式設計師自行編譯,或者與其它預編的二進位制編碼共同使用。它超強的適應性更能讓它有跨平臺適用的能力:用它在 UNIX 平臺上書寫的程式段95%的情況下無須作任何修改就可用於 Mac 和 PC 機。擴充 Tk 平臺對它的支援,甚至可以讓基於GUI 格式的應用程式不用大動筋骨就可在上述三種平臺上做自由切換,還保持著統一的介面。 

  正因為這種天然生就的跨平臺執行能力,Python 還能支援一些平臺的擴充平臺,從而簡化和免除了對其它語言和環境的適應過程。與 SunOS / Solaris 工具帶有 Sun 音訊裝置及 SGI版本帶有視音訊介面(包括 OpenGL)一樣,Windows Pytyon 直譯器也同樣帶有 Visual C++ 類庫和 Windows 音訊驅動介面。此外還有與 COM 物件進行通訊的功能。 

  超大的功能性 

  Python 幾乎無所不能。它的核心很小,但卻擁有足夠的基本程式塊用於設計大部分應用軟體。而且在某些情況下該程式語言還可以擴充與 C,C++ 和 Java 語言並用,因此沒有它編不了的程式。 Python 直譯器還帶有極為強大的補充模組庫,用於擴充語言能力,進行網路通訊、文字處理和規則表示式匹配。 

  雖然 Python 的主要特點是隱去程式設計師的許多低階複雜工作,它還能支援鉤、擴充程式以及其它功能對某些作業系統進行低階接入。正因為這種高低兼行的特點,Python 可以視作和 C,Visual Basic 同等級別的語言,或是介於二者間的其它級別的語言。 

  超凡的擴容性 

  因為 Python 本身用 C 語言寫成(某些擴充平臺採用C++語言編寫),而且它採用開放式的原始碼,這樣可以對程式本身進行主動擴充。另外該程式語言的許多模組由 C 和 C++ 介面支援,包括一些諸如網路和DBM資料庫接入等基本構件,以及其它如 Tk 等許多先進工具。 

  此外,Python 還能融入 C 或 C++ 語言,從而可以使用 Python 語言為應用程式提供程式設計介面。也正基於它的跨語言開發的支援能力,還可以使用 Python 設計應用程式後再輸送到為 C 語言環境而無須將程式用 C 語言重寫,因為兩種語言均可同時使用。 

  JPython 是一個完全採用 Java 語言編寫的 Python 直譯器,這就意味著任何 Python 程式都可與一個 Java 物件或是使用 Python 物件的應用程式相聯結。 

  超常的簡易性 

  瞭解了 Python 以上幾個基本特點後,再對程式語言它內容進行了解就相對容易了。該語言核心很小,而且格式和文體簡明。由於所有其它的元件和擴充部分都使用完全一樣的句法結構,利用 Python 程式設計會很快讓人速成。 

  但這並不意味著 Python 語言就沒有複雜的地方。對其許多擴充部分和內庫都必需經過深思熟慮後方可進行有效的利用。 

  超強的功能性 

  擁有如此廣泛的支援和博採眾長的特徵,Python 在處理一系列問題上都顯得特別有效。以下為它的功能簡介: 

  計算器: 

  由 Python 支援的一個擴充程式叫 NumPy,它可以提供與許多標準數學庫相連的介面。Python 語言還擁有無限精確的特性,可以單獨處理100位數字的算術。 

  文書處理器: 

   

  Python 能夠對任何資料進行分割、累加和總結。它的模組可以對日誌檔案行中的元素進行分割,並根據內建的資料種類對其資訊進行記錄和總結,最後才進行輸出。它的規則表示式庫使程式設計師可以使用 emacs,Perl 等等。 這再次證明 Python 的無所不能,曾經有程式設計師還利用 Python 編製成非常複雜的 SGML 處理工具。 

  便捷的應用開發: 

  Python對程式設計師而言一目瞭然,用它程式設計迅速有效。它博大的模組庫可以提供針對不同協議、工具和庫的介面。免除重新開發之苦。 

  由於Python 還支援 Tk 工具,所以可以在幾個小時內完成一個應用軟體,而用 Perl 語言可能會需要2到3天,用 C 語言甚至要幾個星期。 

  跨平臺開發: 

  Python 以中立方式支援不同的一系列平臺,如果使用者使用的系統包含不同的平臺,使用 Python 開發應用程式則再好不過;它這種適應性也可以為系統預留使用其它工具的可能。對於頻繁更換平臺使用者,Python 是個理想的選擇。 

  為終端使用者提供軟體服務時,Python 也是個備選方案,可以避免同時用不同應用軟體程式設計的時間和費用。 

  系統裝置 

  Python旨在避免作業系統中低階部分的滋擾,但如若需要主動進入這些低階部分時也完全可以透過相應的工具和擴充件來實現。與作業系統一樣, Python 可以進入相同的的功能,並予以備份和擴充,而且備份和擴充後的功能會增加 Python 的所有的適應性和介面能力。 

  網際網路程式設計 

  Python 帶有的標準模組可以對網路插槽進行初級和協議級別的通訊,比如,如果要從 POP 伺服器上讀取電子郵件,Python 隨帶的庫模組可以做到。另外, Python 還支援 XML、HTML和 CGI 庫檔案,所以利用它可以解析使用者輸入的需求,並透過網路伺服器產生最佳質量的成果。 

  程式設計師還可為擁有 Python 內建直譯器的 Apache、Unix 和 Windows 網路伺服器編譯模組。基於 CGI 程式的功效,可以很方便地執行 Python 語句而不用單獨裝載。 

  資料庫程式設計 

  Python 中有無數的擴充模組可以連線如 Orcle、Informix 、mySOL和PostgreSql等通用的資料庫系統;還有稱作 Gadfly 的工具可以獨立Python 提供完全的SQL環境。Python 有強大的文字和資料處理能力,可以用它作為不同資料庫間的連線,比起那些資料庫附帶的總結和彙報工具顯得更有優勢。同時,由於它支援不同系統,用同樣的介面也可以連線任何資料庫。可以用 Tk 在支援平臺上建立前端,馬上就可獲得高速跨平臺、獨立資料庫的查詢工具。 

  其它 

  Python 應用範圍廣泛,幾乎沒有它不適配的語言;憑籍它的微小核心、豐富功能、多樣資料,Python 提供了一個良好的程式構建基礎。綜合了C 和 C++二者的優點,只要採用合適的結構和方式,便可對 Python 程式進行無限的擴充。除了一大堆顯著的優點,Python 也有缺點。 

  要列出 Python 的缺點確實不太容易。Python 在其擴充模組中提供了大部分的功能,並充分顯示了對其增加功能有多容易,一旦用它還不能解決問題,那麼也僅需要利用 C 或 C++ 語言重新編寫一個擴充程式便可。 

  批評 Python 的人往往不是說Python 缺乏某種功能,而是對這種功能並不瞭解。通常還有一種抱怨說 Python 缺少規則表示式的支援-但實際上有兩個模組可以用來處理規則表示式,其中之一還可以完全用來支援 Perl 語言的句式句法。對規則表示式的處理並沒有編進該語言中,但並不等於它作不到。 

  針對 Perl、Rebol 和 Java 語句而言, Python 的優勢在於它的核心很小。這減少了執行的時間,因為在執行時需要裝載的程式碼較少,而且這個特點也使它有著更廣的適應性。 

  一旦熟悉了 Python 語句的簡明風格,它的強大優勢頓時便會凸現出來。用它編就的程式歷久不衰。 

  Python 的理想使用者群 

  它適合不同型別的使用者以解決不同型別的問題。大部分時候這些問題一般不為人所知,因為它們有著較高的保密性。也有大型公司用它進行商用開發,並展示開發所獲的成果。 

  紅帽 (Red Hat )曾用 Python 和 Tk 一起成功開發配置和管理作業系統的可視介面。整個系統可以全面控制 Linux 作業系統,並根據使用者選擇對配置檔案作自動更新。 

  Infoseek 在其公用搜尋引擎使用了Python。該公司還用 Python 對其軟體進行定製,使終端使用者能對該網站內容進行方便下栽。 

  美國航空航天局也在不少領域中用到 Python 程式語言,最出名的莫過於在任務控制中心將 Python 用於任務計劃;對 Python 在其它方面的使用例如用其計算天體方位和設計衛星的路徑等等都充分體現了 Python 的超強計算能力。 

  以在"星球大站"、"阿貝斯 (Abyss)"、 "星球之旅 (Star Trek)"、 "印地安那瓊斯 (Indiana Jones)"超級大片中當綱特技和動畫製作的工業光魔公司 (Industrial Light)也採用 Python 製作商業動畫。 


相關文章