面對珍珠(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 的所有的適應性和介面能力。
網路程式設計
Python 隨附的標準模組可以對網路插槽進行初級和協定層級的通訊,例如,如果要從 POP 伺服器上讀取電子郵件,Python 隨帶的庫模組可以做到。另外, Python 也支援 XML、HTML和 CGI 函式庫文件,所以利用它可以解析使用者輸入的需求,並透過網頁伺服器產生最佳品質的成果。
程式設計師也可為擁有 Python 內建解釋器的 Apache、Unix 和 Windows 網路伺服器編譯模組。基於 CGI 程式的功效,可以很方便地執行 Python 語句而不用單獨裝載。
資料庫程式設計
Python 中有無數的擴充模組可以連接如 Orcle、Informix 、mySOL和PostgreSql等通用的完整資料庫系統;還有稱為 Gadfly 的工具可以獨立的環境環境。 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 製作商業動畫。