Web腳本開發(fā)語言比較
發(fā)表時間:2023-08-01 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]我們都一定對比過編程的輕松與簡單性。雖然我們都確認php和perl是最容易學(xué)習(xí)和編程的語言,但我仍舊想知道,如果用php、asp、jsp以及perl分別編寫一個同樣的程序,哪一個將最快。 進行這...
我們都一定對比過編程的輕松與簡單性。雖然我們都確認php和perl是最容易學(xué)習(xí)和編程的語言,但我仍舊想知道,如果用php、asp、jsp以及perl分別編寫一個同樣的程序,哪一個將最快。
進行這樣的對比依賴于操作系統(tǒng)和硬件設(shè)備。對于我來說,在linux/apache上運行php是非?斓模词箼C器屬于低端Pro類型。當(dāng)然,每個人都知道linux是多么的穩(wěn)定與快速。IIS上的ASP運行可以非常快,但是也要求相當(dāng)高的硬件性能。
至于Java,許多編程者都一直在抱怨它怎么會這么慢 … 有一個報告叫做“volano”,從中你可以找到各種JDKs和Servlet引擎間在性能上的區(qū)別。
但是也要看到,現(xiàn)在由于“Java”的大肆宣傳,每個人都在研究Servlets/JSP 或者 EJB(這可以從工作招聘中的調(diào)查得到)。所以,如果你從身無分文開始工作,PHP或者Python/Zope將是最好的選擇。但是如果你就職于一個目標(biāo)遠大的公司(幾千美元對他們來說是無所謂的),你就會有許多種選擇。
在企業(yè)級計算機環(huán)境中開發(fā)應(yīng)用程序要面臨許多特殊的挑戰(zhàn):多后臺線程是標(biāo)準,代碼資源必須是可管理的、可維護的并且能被多代開發(fā)人員所重用。
即使有了這些限制,IT管理人員仍舊要面臨巨大的壓力去快速開發(fā)新項目。當(dāng)這些工程發(fā)生在Web上時,腳本語言就經(jīng)常是較好的選擇。
做為評估的一個商業(yè)案例,eWEEk實驗室模擬了一個試驗,假設(shè)為了intranet的發(fā)展需要設(shè)計一個新的、相對小型的Web應(yīng)用。我們限制預(yù)算在幾千美元,以及一個星期的開發(fā)時間。
測試中,我們使用了2個同樣的Dell計算機公司的OptiPlex GX1p 系統(tǒng),每個機器的CPU都是Pentium III 550MHz、內(nèi)存 384MB。
一個服務(wù)器運行Windows 2000 Server,并且安裝了Service Pack 1。我們在其上測試Allaire公司的ColdFusion Server Professional 4.5.1以及Microsoft 公司的ASP (Active Server Pages) 5.0。另外一個服務(wù)器運行Red Hat 公司的Red Hat Linux 7.0,其上測試Apache 公司Tomcat 3.2 Beta 5 以及 PHP 4.02。
在開發(fā)速度、易用性以及完整、強大的API使用等方面,ColdFusion最終鶴立雞群。
我們也推薦使用JSP (JavaServer Pages),它由Tomcat 描繪,對于企業(yè)級應(yīng)用是一個好的選擇。ASP和PHP也能做同樣的工作,但它們不是我們第一選擇。
為了測試Web頁面性能并且測試穩(wěn)定性,我們使用了Quest軟件公司的Benchmark Factory load測試和穩(wěn)定計劃工具。Quest軟件可以從www.quest.com得到。
盡管性能有所不同,但我們相信每個產(chǎn)品對于小型工程都是足夠快的,在那里純腳本應(yīng)用是有實際意義的。關(guān)于這個測試的更多信息,包括代碼以及性能細節(jié),發(fā)布在www.eWEEK.com/links
JSP
Sun微系統(tǒng)公司一直努力地普及它的JSP腳本語言,并給Apache組織貢獻有關(guān)JSP和Java Servlet引擎的代碼。Apache組織將這些代碼發(fā)布為一個Apache產(chǎn)品,叫做Tomcat。
JSP相對來說還是一個新技術(shù),但是已經(jīng)有了明確的市場方向。
然而,由于JSP基于Java(并且?guī)缀跄茏龅絁ava可以做的任何事情,這就開放了一個巨大的API庫以及類庫)而且由于被稱為標(biāo)記庫的JSP擴展使JSP能模仿ColdFusion的標(biāo)記類型API,因此我們有理由認為,在未來幾年中,JSP將成為Web腳本語言的核心。
還有更多種類的產(chǎn)品支持JSP,它們適用于高端應(yīng)用服務(wù)器,這就讓JSP開發(fā)人員能更容易地考慮擴展性和容錯性。
由于JSP基于Java,而Java是一個功能強大的類型語言,所以當(dāng)需要時我們就必須定義變量的類型。對于非程序員學(xué)習(xí)起來,這就是一個困難,盡管了解一些Java的人認為JSP幾乎可以很快上手。
利用Java數(shù)據(jù)庫連通性,Java具有一個靈活且完整的訪問數(shù)據(jù)的API集。
在服務(wù)器端,我們測試了Apache 組織的免費 Tomcat 3.2 Beta 5版本。測試服務(wù)器是Linux的情況下,Tomcat的速度大約是每秒13頁。
很不幸,Tomcat只具有很基本的性能監(jiān)視器和管理工具(在Web上我們也許能找到一些beta產(chǎn)品),這與PHP類似。位于高端的基于Java的應(yīng)用程序服務(wù)器則提供了豐富的管理工具。
盡管Sun的Java 1.0 Community 版本的長處是免費的,而且非常適于JSP開發(fā)環(huán)境,但實際情況是,在JSP領(lǐng)域,開發(fā)工具通常很短缺。
對于企業(yè)級開發(fā),我們相信,JSP技術(shù)盡管很新,但仍舊是正確的選擇,因為它使用了Java,而且許多應(yīng)用服務(wù)器產(chǎn)品都支持JSP。Microsoft ASP
在團隊開發(fā)環(huán)境中,微軟公司的ASP(active server pages)語言是眾所周知而且非常好的Web腳本技術(shù),這也意味著ASP開發(fā)人員非常容易發(fā)現(xiàn)。由于ASP是隨Windows NT 服務(wù)器和Windows 2000 Web服務(wù)器安裝自帶的,所以這項技術(shù)也是非常流行的。
由于支持未定義類型變量(untyped),ASP使得編程很簡單。而且通過支持Microsoft COM(Component Object Model:組件對象模型)標(biāo)準,它提供了訪問巨量Windows API集的簡單方法。這也是一個雙刃劍,在提供簡單訪問強大的COM對象同時,ASP代碼也很復(fù)雜而且難于編寫。微軟公司的ADO(Active Data Objects)COM接口提供了全面數(shù)據(jù)庫訪問API。
微軟同樣投入大量資金在ASP的clustering技術(shù)上,并且即將到來的微軟應(yīng)用程序中心服務(wù)器將提供對ASP站點的clustering技術(shù)和內(nèi)容管理功能
編寫ASP時使用VBScript語言,我們希望它具有try/catch關(guān)鍵字。沒有這些,編寫錯誤處理邏輯程序是非常討厭的,因為我們必須手工檢查看看是否發(fā)生錯誤(ASP也支持Jscript,它具有try/catch關(guān)鍵字)。
ASP開發(fā)工具是很多的,而且通常是很成熟的。我們使用微軟公司的Microsoft Script Editor(隨Microsoft Office自帶)編寫頁面,發(fā)現(xiàn)這個工具非常有價值,因為它具有一個方便的編輯環(huán)境以及一個完整的調(diào)試器。
我們的ASP站點是運行Windows 2000的服務(wù)器,速度大約是每秒43頁。
另見:ASP與JSP的比較
PHP
Php做為首選的Linux Web腳本語言迅速浮現(xiàn)出來。隨著今年P(guān)HP4的發(fā)布,它尤其具備了大量的新功能,其中包括一個新腳本引擎和語言的標(biāo)準化關(guān)鍵字部分(比如HTTP會話管理),這在以前是以add-on模塊的形式存在的。
PHP開發(fā)小組的PHP語言是開放式的,并且可以安按照源代碼形式下載。適用于Windows的預(yù)編譯二進制碼也是可用的,而且PHP可以工作在許多Web服務(wù)器上,包括Apache和微軟的IIS。
PHP確實是幾種強大功能的混和物,包括Perl、C、Java,甚至某些ASP,并且支持未定義變量使得開發(fā)工作簡化。PHP非常易于擴展,由于源代碼可用,使得各種各樣的模塊擴展程序被一大群人開發(fā)并貢獻出來,這些擴展程序包括:數(shù)據(jù)庫鏈接、郵件應(yīng)用、XML解析器等等。
豐富的擴展也導(dǎo)致了缺乏API方面的一致性。用戶們必須努力約定他們使用的PHP組件,從而有效跟蹤相關(guān)的改變。
我們重點關(guān)注PHP在標(biāo)準數(shù)據(jù)庫API上的匱乏:為了訪問Oracle數(shù)據(jù),我們就必須直接編寫調(diào)用Oracle8 API的代碼,這使得頁面很不輕巧并且增加開發(fā)費用。在這個領(lǐng)域正在進行一些研究,其中包括將Micorsoft的ADO轉(zhuǎn)向PHP。
同樣,PHP缺乏完整的開發(fā)環(huán)境工具以及調(diào)試程序(我們只能找到一個,就是Ives Development 公司的Nexidion Designer,它還停留在1.0版本)。
在測試的Linux服務(wù)器上,PHP擁有大約每秒47頁的速度。