Python是軟件開發(fā)領(lǐng)域一朵誘人的奇葩:人們經(jīng)常把Python看作是一種起到縫合作用的嚴(yán)格腳本語言,不過卻很少有人意識(shí)到Python已經(jīng)足夠強(qiáng)大到應(yīng)用于工業(yè)級(jí)軟件開發(fā)領(lǐng)域。Python的年歲比Java老,到現(xiàn)在,這種語言已經(jīng)發(fā)展出了規(guī)模雖然不大但仍然在成長中的自描述企業(yè)應(yīng)用Pythonistas。
雖然人們經(jīng)常把Python同Perl相比較,把它們看作一種專門應(yīng)用于Internet的腳本語言,然而,Python已確實(shí)在大規(guī)模的軟件開發(fā)領(lǐng)域占據(jù)了自己的一席之地。這種腳本編程語言具有以下顯著特點(diǎn):
*面向?qū)ο?/p>
*解釋語言
*交互式
*模塊化
*動(dòng)態(tài)性
*高級(jí)語言
*可移植
*可用C和C++擴(kuò)展
Python整合了各種模塊、異常、動(dòng)態(tài)輸入、高級(jí)動(dòng)態(tài)數(shù)據(jù)類型和類等概念。它同多種系統(tǒng)函數(shù)和系統(tǒng)庫乃至各類Windows系統(tǒng)建立了接口。
如果說Python并不一定能滲透到任何計(jì)算領(lǐng)域的話,至少在企業(yè)開發(fā)這一行它的處境就是這樣。在企業(yè)開發(fā)領(lǐng)域,Python還被當(dāng)成一種可以替換Perl的腳本語言。本文就對(duì)Python構(gòu)造企業(yè)級(jí)應(yīng)用這一問題做簡短闡述。
優(yōu)點(diǎn)
Python語言的某些特點(diǎn)使其成為企業(yè)應(yīng)用的合理選擇:
*免費(fèi)可用(像Perl一樣,Python也是開放源代碼軟件)。
*穩(wěn)定(Python目前已發(fā)布到2.2版,我剛才已經(jīng)提到,它的年頭比Java還老)。
*良好地支持對(duì)象、模塊和其他可重用機(jī)制。
*采用C和Java語言的集成方便性和擴(kuò)展性。
以上這些特性非常有利于Python在企業(yè)中的應(yīng)用,不過,Python還具有一些適合企業(yè)應(yīng)用但卻不太令人注意的其他合理因素。
開發(fā)和維護(hù)的成本節(jié)約
IT部分通常要完成的任務(wù)相當(dāng)繁重但支撐這些工作的資源卻很少,這已經(jīng)成為公開的秘密。任何承諾提高編碼效率、降低軟件總成本的IT解決方案都應(yīng)該進(jìn)行周到的考慮。Python所具有的一個(gè)顯著優(yōu)勢(shì)就是可以在企業(yè)的軟件創(chuàng)建和維護(hù)階段節(jié)約大量資金,而這兩個(gè)階段的軟件成本占到了軟件整個(gè)生命周期中總成本的50%到95%。
Python清晰可讀的語法使得軟件代碼具有異乎尋常的易讀性,甚至對(duì)那些不是最初接觸和開發(fā)原始項(xiàng)目的程序員都能具有這樣的強(qiáng)烈感覺。雖然某些程序員反對(duì)在Python代碼中大量使用空格,不過,幾乎人人都承認(rèn)Python代碼的可讀性遠(yuǎn)勝于C或者Java,后兩者都采用了專門的字符標(biāo)記代碼塊結(jié)構(gòu)、循環(huán)、函數(shù)以及其他編程結(jié)構(gòu)的開始和結(jié)束。提倡Python的人還宣稱,采用這些字符可能會(huì)產(chǎn)生顯著的編程風(fēng)格差異,使得那些負(fù)責(zé)維護(hù)代碼的人遭遇代碼可讀性方面的困難。
Python明晰的語法使其成為一種學(xué)習(xí)曲線平和的編程語言。有經(jīng)驗(yàn)的程序員甚至可能在一天之內(nèi)就掌握Python的基礎(chǔ)知識(shí),至多不過一周作用就可以上手,而編程語言的專家則肯定會(huì)比他掌握C、C++、Java甚至Perl要快很多。
Python因其語法的明晰而獲得的最大好處或許該算是開發(fā)時(shí)間的大大降低了。一名從事企業(yè)級(jí)應(yīng)用程序開發(fā)工作的開發(fā)人員告訴我,他所在單位的開發(fā)時(shí)間因?yàn)镻ython的采用而大大節(jié)約,同時(shí)卻并沒有給軟件性能帶來任何負(fù)面影響,他說:“就我們的業(yè)務(wù)而言,快速地開發(fā)出新產(chǎn)品比開發(fā)出性能驚人的軟件產(chǎn)品要重要得多,開發(fā)時(shí)間相比軟件的優(yōu)化要貴得多(以每小時(shí)計(jì)算)。
對(duì)開發(fā)速度采用何種評(píng)價(jià)標(biāo)準(zhǔn)一直是個(gè)很難確定的問題,不過通常情況下,普遍認(rèn)為開發(fā)Python應(yīng)用程序的速度大約是用Java開發(fā)同類應(yīng)用程序速度的10倍。要是相比C/C++節(jié)約的時(shí)間就更多了。
內(nèi)容管理框架
用Python創(chuàng)建的Zope是開放源代碼領(lǐng)域使用最廣泛和最容易理解的內(nèi)容管理框架。這種工具可以讓了解Python的程序員以相比JSP/ASP更少的時(shí)間來創(chuàng)建和部署具有高度交互性的網(wǎng)站,在這種框架下,網(wǎng)站屬主可以非常輕松地修改網(wǎng)站的內(nèi)容而無須程序員的介入。
Zope投入實(shí)用已經(jīng)有若干年的時(shí)間了,目前,特別在歐洲地區(qū)已經(jīng)獲得了普遍的應(yīng)用。Zope在美國也贏得了廣泛的歡迎,目前對(duì)Zope的開發(fā)主要集中于簡化開發(fā)過程和進(jìn)一步將功能同內(nèi)容的表示相分離,從而再度增加了Zope的普及率,同Python一樣Zope也是開放源代碼軟件。
Zope確實(shí)引入了相當(dāng)?shù)南到y(tǒng)負(fù)荷,從而在開發(fā)期間降低了系統(tǒng)的性能,但是采用某些技術(shù)可以有效地把部署網(wǎng)站時(shí)產(chǎn)生的問題最小化。
Jython
在考慮企業(yè)中的Python應(yīng)用時(shí),有一點(diǎn)往往被人們所忽略了,這就是Python的變種Jython。Jython完全用Java語言編寫,實(shí)現(xiàn)快速地開發(fā)和應(yīng)用程序測(cè)試,以遠(yuǎn)低于Java編輯-編譯-測(cè)試的開發(fā)時(shí)間提升Java類庫的運(yùn)用。Jython還緊湊地集成了Python和Java的代碼,令兩者都可以充分利用對(duì)方的優(yōu)點(diǎn)。而這正是Microsoft.NET的CLR技術(shù)所要實(shí)現(xiàn)的目標(biāo)之一,但今天對(duì)Python來說這一切已經(jīng)成為現(xiàn)實(shí)。
缺點(diǎn)
顯然,Python的企業(yè)應(yīng)用也應(yīng)該嚴(yán)肅對(duì)待反對(duì)方的意見。反對(duì)Python作為企業(yè)級(jí)編程可行語言的主要觀點(diǎn)如下:
*相比其他編程語言,比如Java,Python的開發(fā)人員少很多。
*缺乏真正的多處理器支持。
*缺乏商業(yè)支持。
*軟件性能(不過各種評(píng)測(cè)都反復(fù)表明Python在大多數(shù)應(yīng)用中堪與Java媲美)。
當(dāng)然,缺乏商業(yè)支持是大多數(shù)開放源代碼技術(shù)都面臨的問題。對(duì)Python而言,一時(shí)也找不出個(gè)應(yīng)景的法子。然而,最近一些關(guān)注Python的歐洲公司新組成了一個(gè)商務(wù)團(tuán)體,也許這一舉動(dòng)標(biāo)志著Python發(fā)展的一個(gè)嶄新階段(請(qǐng)參考Python商務(wù)論壇的網(wǎng)站)。
缺乏預(yù)包裝的解決方案
PHP在企業(yè)軟件領(lǐng)域贏得了輝煌的成功,主要原因就在于其廣泛實(shí)用的產(chǎn)品門類,比如討論板、聊天服務(wù)器和分組日歷以及即時(shí)消息系統(tǒng)等。相比之下,Python提供的解決方案就少多了。Python語言的分發(fā)版中確實(shí)包含了一些擴(kuò)展的類庫,越來越多的程序員也在致力于開發(fā)等價(jià)PHP的Python工具,但是考慮到市場(chǎng)的時(shí)間緊迫性,而且你所面臨的問題已經(jīng)有現(xiàn)成的PHP解決方案可以對(duì)付,那么PHP自然會(huì)成為你的首選。
以上內(nèi)容為大家介紹了Python企業(yè)應(yīng)用的優(yōu)缺點(diǎn),希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。