有關Python操作語言內容進行學習研究
Python免費開源,可移植到多種操作系統,只要避免使用依賴于特定操作系統的特性,Python程序無需修改就可以在各種平臺上面運行,這點大大的提高了Python操作語言的全面應用性。
相比之下,Python提供的解決方案就少多了。Python語言的分發版中確實包含了一些擴展的類庫,越來越多的程序員也在致力于開發等價PHP的Python工具。但是考慮到市場的時間緊迫性,而且你所面臨的問題已經有現成的PHP解決方案可以對付,那么PHP自然會成為你的首選。
大多數開發經理幾乎很少了解Python。在現代IT領域的高壓力環境下,項目管理人員缺乏對Python及其工具的了解、缺乏其軟件開發方面的知識自然成為Python獲得接受的死穴。
畢竟,CIO或者開發主管受到最終勝利完成開發任務的沉重壓力。在可能的收益卻缺乏具體和誘人的證據這一現實條件下,大多數開發經理寧肯選擇他們知道的東西。所以很少有人了解Python操作語言也就不奇怪了。
相比現有的成熟技術,比如ODBC和JDBC,Python的數據庫訪問層看起來就過于原始了。雖然這一方面也在發生變化。但是,開發部門需要平滑地接合現有的復雜遺留數據,同時需要快速的SQL數據庫訪問。
所有這一些使其在短時期內難以對Python表現出什么太大的興趣。 不過,Python在這一領域發展的也很快,在半年左右的時間里,Python完全可能在其中踏上一只腳, 相比其對手語言。
比如Perl、Java,在某種程度上再算上PHP,Python確實深受文檔缺乏之苦,Python沒有廣泛、易于獲得的文檔和圖書。市面上冠以PHP標題的圖書數量幾乎是Python的兩倍多;而Prel就更多了,它有400多種呢!
Python的在線文檔 倒還組織得比較好,但是這些文檔幾乎全是些參考資料。幸而Python相當容易的學習曲線減輕了對圖書資料的過多需要。 給Python應用程序創建圖形用戶界面未必復雜。Python分發版本隨帶的Tk就是Python開發人員最常用的工具。但是Tk就缺乏可訪問、易用的GUI工具。
剛啟動的PythonCard項目目前雖然還處于原型階段,但可能在將來填補這一鴻溝。boa-constructor這種產品已經吸引了某些Python程序員,但是用它來創建全功能的IDE確實太復雜了。
相比GUI工具的缺乏更要命的是Python操作語言幾乎沒有支持團隊開發的協議工具。 Java在這些工具領域可謂相當豐富,至少和C++可比。在企業軟件開發市場上,這一缺陷簡直可視為致命的要害。沒有這類工具要讓很多程序員共同開發同一項目幾乎是不可能的。
Python操作語言利用其模塊化和命名空間分析等特性減輕了這一方面的需求,這些特性可以讓多個程序員開發項目時不可能發生代碼沖突的情況。但是,這同樣改變不了其協同性能缺乏的嚴重性。
通常認為,Python是一種解釋性的語言,但是這種說法是不正確的,實際上,Python在執行時,首先會將.py文件中的源代碼編譯成Python的byte code(字節碼),然后再由Python Virtual Machine來執行這些編譯好的byte code。
這種機制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine與Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一種更高級的Virtual Machine。這里的高級并不是通常意義上的高級,不是說Python的Virtual Machine比Java或.NET的功能更強大,而是說和Java 或.NET相比,Python的Virtual Machine距離真實機器的距離更遠。
或者可以這么說,Python的Virtual Machine是一種抽象層次更高的Virtual Machine。基于C的Python編譯出的字節碼文件,通常是.pyc格式。在實際開發中,python常被昵稱為膠水語言,這不是說他會把你的手指粘住。
而是說他能夠很輕松的把用其他語言制作的各種模塊(尤其是C/C++)輕松地聯結在一起。常見的一種應用情形是,使用python快速生成程序的原型(有時甚至是程序的最終界面),然后對其中有特別要求的部分,用更合適的語言改寫,比如3D游戲中的圖形渲染模塊,速度要求非常高,就可以用C++重寫。
小結
說也說了做也做了,是否在企業中嘗試或接受Python仍然是一個復雜的問題,具體問題具體分析。咱們把各種爭論先放一邊,至少可以得到下面的一些共識:
如果你已經擁有大量的PHP代碼或者PHP應用程序,那么遷移到Python不可行。
◆如果你的Java代碼基礎雄厚但你需要大量的小型應用程序、小程序和代碼接口,那么Python/Jython可能會為你節約大量開發時間。
◆如果你正好手下有一到兩個程序員工作比較清閑,那么我建議你不妨讓他們研究下Python看能不能在將來派上用場。
【編輯推薦】