主流WEB開發語言簡單對比(轉)

主流WEB開發語言簡單對比
 原文連接:http://www.uml.org.cn/site/201401091.asp
 
 

隨着時間的飛逝,隨着歲月的流失。從世界上第一臺計算機ENIAC誕生至今,已經有將近半個世紀了。通過這半個世紀的語言發展,咱們所接觸的語言基本上都是高級語言了。這篇文章主要對如今比較主流的WEB開發語言,作一個簡單的對比。javascript

JAVAphp

簡介:html

Java是由Sun Microsystems公司於1995年5月推出的Java程序設計語言(如下簡稱Java語言)和Java平臺的總稱。用Java實現的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平臺、動態的Web、Internet計算。今後,Java被普遍接受並推進了Web的迅速發展,經常使用的瀏覽器如今均支持Java applet。另外一方面,Java技術也不斷更新。java

IDE:mysql

Eclipse、Myeclipse、Jbuilder200八、Jdeveloper、Netbeans等,不少!程序員

版本歷史:web

1995年5月23日,Java語言誕生sql

1996年1月,第一個JDK-JDK1.0誕生數據庫

1996年4月,10個最主要的操做系統供應商申明將在其產品中嵌入JAVA技術apache

1996年9月,約8.3萬個網頁應用了JAVA技術來製做

1997年2月18日,JDK1.1發佈

1997年4月2日,JavaOne會議召開,參與者逾一萬人,創當時全球同類會議規模之紀錄

1998年12月8日,JAVA2企業平臺J2EE發佈

1999年6月,SUN公司發佈Java的三個版本:標準版(J2SE)、企業版(J2EE)和微型版(J2ME)

2000年5月8日,JDK1.3發佈

2000年5月29日,JDK1.4發佈

2001年6月5日,NOKIA宣佈,到2003年將出售1億部支持Java的手機

2001年9月24日,J2EE1.3發佈

2002年2月26日,J2SE1.4發佈,自此Java的計算能力有了大幅提高

2004年9月30日18:00PM,J2SE1.5發佈,成爲Java語言發展史上的又一里程碑。爲了表示該版本的重要性,J2SE1.5改名爲Java SE 5.0

2005年6月,JavaOne大會召開,SUN公司公開Java SE 6。此時,Java的各類版本已經改名,以取消其中的數字「2」:J2EE改名爲Java EE,J2SE改名爲Java SE,J2ME改名爲Java ME

2006年12月,SUN公司發佈JRE6.0

目前JDK7.0已經在研發中,已經有測試版在 https://jdk7.dev.java.net/ 能夠下載使用

應用方面:

能夠從事JSP網站開發、Java編程、Java遊戲開發、Java桌面程序設計,以及其餘與Java語言編程相關的工做。

PHP

簡介

PHP,一個嵌套的縮寫名稱,是英文超級文本預處理語言(PHP:Hypertext Preprocessor)的縮寫。PHP 是一種 HTML 內嵌式的語言,是一種在服務器端執行的嵌入HTML文檔的腳本語言,語言的風格有相似於C語言,如今被不少的網站編程人員普遍的運用。PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。它能夠比 CGI 或者 Perl 更快速的執行動態網頁。

IDE

Eclipse、Komodo、PHP 設計器、PhpED、PHPEdit、Zend Studio等。

版本歷史

在1997年,任職於 Technion IIT 公司的兩個以色列程序設計師:Zeev Suraski 和 Andi Gutmans,重寫了 PHP 的剖析器,成爲 PHP 3 的基礎,而 PHP 也在這個時候改稱爲PHP: Hypertext Preprocessor.[5]。通過幾個月測試,開發團隊在1997年11月釋出了 PHP/FI 2,隨後就開始 PHP 3 的開放測試,最後在1998年6月正式釋出 PHP 3。Zeev Suraski 和 Andi Gutmans 在 PHP 3 釋出後開始改寫 PHP 的核心,這個在1999年釋出的剖析器稱爲 Zend Engine[7],他們也在以色列的 Ramat Gan 成立了 Zend Technologies 來管理 PHP 的開發。

在2000年5月22日,以Zend Engine 1.0爲基礎的PHP 4正式釋出,2004年7月13日則釋出了PHP 5,PHP 5則使用了第二代的Zend Engine[5]。PHP包含了許多新特點,像是強化的面向對象功能、引入PDO(PHP Data Objects,一個存取數據庫的延伸函數庫)、以及許多效能上的加強。目前PHP 4已經不會繼續更新,以鼓勵用戶轉移到PHP 5。

2008年PHP 5成爲了PHP惟一的有在開發的PHP版本。未來的PHP 5.3將會加入Late static binding和一些其餘的功能強化。PHP 6 的開發也正在進行中,主要的改進有移除register_globals、magic quotes 和 Safe mode的功能。

應用方面

PHP常見的模板引擎

Smarty

Smarty的特色是將模板編譯成PHP腳本,而後執行這些腳本。很快,很是靈活。

Heyes Template Class

一個很是容易使用,但功能強大而且快速的模板引擎,它幫助你把頁面佈局和設計從代碼中分離。

FastTemplate

一個簡單的變量插值模板類,它分析你的模板,把變量的值從HTML代碼中分離處理。

ShellPage

一個簡單易用的類,可讓你的整個網站佈局基於模板文件,修改模板就能改變整個站點。

STP Simple Template Parser

一個簡單、輕量級而且易於使用的模板分析類。它能夠從多個模板中組裝一個頁面,把結果頁面輸出到瀏覽器或者文件系統。

OO Template Class

一個你能夠用在本身程序中的面向兌現的模板類。

SimpleTemplate

一個能夠建立和結構化網站的模板引擎。它能夠解析和編譯模板。

bTemplate

短小可是快速的模板類,容許你把PHP邏輯代碼從HTML修飾代碼中分離。

Savant

一個強大且輕量級的PEAR兼容模板系統。它是非編譯型的,使用PHP語言自己作爲它的模板語言。

ETS – easy template system

能夠使用徹底相同數據重組模板的模板系統。

EasyTemplatePHP

適用於你的站點的一個簡單可是強大的模板系統。

vlibTemplate

一個快速、全能的模板系統,它包含一個緩存和調試類。

AvanTemplate

多字節安全的模板引擎,佔用不多系統資源。它支持變量替換,內容塊能夠設置顯示或隱藏。

Grafx Software’s Fast Template

一個修改版本的Fast Template系統,它包括緩存功能,調試控制檯以及沉默去除爲賦值塊。

TemplatePower

一個快速、簡單、功能強大的模板類。主要功能有嵌套的動態塊支持,塊/文件包含支持以及顯示/隱藏未賦值的變量。

TagTemplate

這個庫的功能被設計來使用模板文件,同時容許你從HTML文件檢索信息。

htmltmpl: templating engine

一個適用於Python和PHP的模板引擎。它面向但願在項目中分離代碼和設計的web應用開發人員。

PHP Class for Parsing Dreamweaver templates

一個分析Dreamweaver模板的簡單類,被用於Gallery 2 和WordPress的自定義模塊中。

MiniTemplator (Template Engine)

針對HTML文件的一個緊湊型模板引擎。對於模板變量和塊定義它具備簡單的語法。其中塊能夠嵌套。

Layout Solution

簡化網站開發和維護。它擁有經常使用的變量和頁面元素使你不須要重複作頁面佈局工做。

Cached Fast Template

它已經歸入 FastTemplate ,容許你緩存模板文件,甚至能夠在分離的塊內容上緩存不一樣的規格。

TinyButStrong

一個支持MySQL, Odbc, Sql-Server和ADODB的模板引擎。它包含7個方法和兩個屬性。

Brian Lozier’s php based template engine

只有2K大小,很是快而且是面向對象設計。

WACT

一個從設計中分離代碼的模板引擎。

PHPTAL

一個PHP下面的XML/XHTML模板庫。

ASP.NET

簡介

ASP.net構架是能夠用Microsoft(R)公司最新的產品 Visual Studio.net開發環境進行開發,WYSIWYG(What You See Is What You Get所見即爲所得)的編輯。這些僅是ASP.net強大化軟件支持的一小部分。

IDE

Visual Studio

應用

WEB、應用程

要說WEB開發的語言,數不勝數,cgi/perl/ruby所表明的腳本語言,php/java/.net所表明的類c語言,asp所表明的basic語言......通過這麼多年互聯網應用中的大浪淘沙,當前主流的也就屬php/java/.net三大陣營了。

爲何是這三種語言處於WEB應用的主流地位?我的認爲,它們有一個共性,就是類c語法。應用最普遍的語言就是c和basic,但basic自己不是徹底OO的,而類c語言既擁有最廣大的應用羣體,又是面嚮對象語言,有basic之長而無basic之短。所以從學習曲線、IDE支持、編碼規範等方面,都有着很大的優點。

在php/java/.net這三者中,我看好java在企業級應用、php在WEB應用方面的前景,一方面兩者均可以跨平臺部署,另外一方面比起.net來更輕巧和精簡。一個php安裝包,加上apache,也就幾十兆;java更是隻需jdk和appserver便可,加一塊兒也就一二百兆,還可自由選擇appserver。相比而言,.net安裝包動轍上G,只能部署在windows下面,而且須要.net framework的支持。另外一方面又分爲vb.net/asp.net/c#.net,不只分散了資源,也給應用者帶來了困惑。

爲何說php比java更合適web應用?一方面web應用要求更豐富的客戶體驗、更快捷的客戶響應,另外一方面要求更低的開發門檻和開發成本。在這方面java就顯得龐大而臃腫,愈來愈多的框架更下降了靈活性,純jsp+bean的模式至今仍有很大的市場也印證了這一點。相比而言,php有兩個主要的缺點:一是缺少IDE支持/沒法重構、測試,二是處理不一樣數據庫的語句各不相同,在更換數據庫時須要修改大量的代碼(到如今爲止php仍然沒法對mysql使用事務操做)。後者能夠經過封裝數據庫操做來解決,前者暫時尚未好的解決辦法。但儘管如此,做爲一門快速開發語言,在WEB開發上PHP仍是有着至關大的優點的,若是也出現一個相似rails的框架並解決跨數據庫的問題,那更是如虎添翼。

補充:如今已經有了php for rails。即cakephp。www.cakephp.org。

以php的用戶羣來看,若是cakephp確實夠優秀,確實是web開發的福音。

再解釋一下我不看好asp/ruby的理由:

一、asp:已經被微軟本身和市場兩方面淘汰。雖然ASP也能夠使用javascript做爲編程語言,但絕大多數人仍是使用basic語言。弱解釋的basic語言使它入門雖容易,但僅僅捆綁在IIS下,以及沒有一個良好的框架支撐,使得它漸趨勢微,在微軟的產品線中又被asp.net所代替。

二、ruby:當前一個紅得發熱的新貴,初初試用了一下,語法更OO,更簡潔,應該適合WEB開發。但它的缺點也很明顯,第一是缺少良好的IDE支持,諸如重構/語法檢查方面都很弱;第二它比起asp/php/jsp來說,它更像是一種腳本語言。學習曲線大,語法自己過於取巧,太過靈活

PHP的主要語言開發者之1、Zend公司的創始人之一Andi Gutmans最近在blog中直言不諱地批評了Java語言。他指出,目前Java廠商試圖在JVM上提供動態語言實現的路子根本不對,Java已經輸掉了Web開發語言的戰爭,PHP是事實上的標準和勝利者。

Gutmans的這篇文章在技術界引起了強烈爭議,很對人對此有不一樣的意見,我在這裏就闡述一下我對PHP和Java兩種語言的見解。

我早先曾經在《Perl、PHP、ASP、JSP技術比較》一文中對比過PHP和Java的異同,簡而言之,PHP是一種解釋執行的腳本語言,語法和C語言相似,易學易用,不懂電腦的非專業人員稍經學習也能使用PHP.而Java要先編譯成Class文件,而後在Java虛擬機上執行,Java開發須要熟悉Java語法以及一些核心的架構,從而實現一種可複用的、跨平臺的軟件,Java比PHP要難學的多。

實際上,從技術架構來講,Java語言相比PHP有明顯的優點,Java使用的是面向對象的系統設計方法,而PHP仍是採用面向過程的開發方法。PHP只能實現簡單的分佈式兩層或三層的架構,而JAVA能夠實現多層架構。數據庫層(持久化層)、應用(業務)邏輯層、表示邏輯層彼此分開,並且如今不一樣的層都已經有一些成熟的開發框架的支持。例如Struts就是利用Java的web開發技術實現了MVC的設計模式,而在業務邏輯層也有Spring框架,數據庫持久化層有Hibernate等框架。這些框架能夠方便開發者高效、合理、科學得架構多層的商業應用。從數學運算和數據庫訪問速度來說,Java的性能也優於PHP.實際上,對於跨平臺的大型的企業應用系統來說,Java幾乎已經成爲惟一的選擇(微軟.NET不支持跨平臺),可是在於Web網站應用開發來說,Java卻面臨着被PHP邊緣化的危險,幾乎全部的虛擬主機都支持PHP+MySQL,而支持Java的卻少之又少,在資源上,網上有不可勝數的PHP資源,不少著名的大型網站(例如Facebook、Mediawiki等)都是基於PHP的,而成功的Java網站卻寥寥無幾,這又是什麼緣由呢?

Java的理念是「一次編寫,處處運行」,Java在應用框架底下的架構是無與倫比的,遠賽過其餘任何語言,Java的框架利於大型的協同編程開發,系統易維護、可複用性較好。而PHP很容易自學,讓熱備能快速簡潔地編寫代碼,適合於快速開發,中小型應用系統,開發成本低。在調試、發佈上,PHP也較Java簡單。

理念上的不一樣致使了Java和PHP在Web應用開發上顯示了不一樣的結果,儘管Java的數學計算和數據庫訪問都有優點,架構也至關完美,可是PHP卻能夠簡單輕鬆地支持高強度Web訪問,可以快速開發應用,支持PHP的虛擬主機多如牛毛,使得用PHP開發一個網站比用Java開發一個網站要快得多,容易的多。Java所擁有的優勢只適合傳統的以軟件項目爲核心的開發模式,而PHP更適合於以客戶爲核心的SaaS的開發模式,所以,PHP目前在Web網站開發的優點徹底是由於Web網站開發的特殊性而致使的,並不是編程語言特性所決定。

所以,PHP在Web網站開發語言的戰爭中已經慢慢將Java拋在了後面,Java要想在Web網站開發上奮起直追,的確應該多聽聽Andi Gutmans的意見,完全改變一下思路才行,不然二者的差距只能是愈來愈遠。

另外,雖然在國際上LAMP(Linux+Apache+Mysql+Php)架構已經佔領了統治地位,可是在中國國內還有一個怪胎,就是基於微軟的Windows Server+IIS+SqlServer+ASP/ASP.NET的架構,從理論上說,微軟的這一套架構也能實現不錯的性能,只惋惜Windows和SqlServer價格不菲,整個架構在性能上比起LAMP不只沒有什麼優點,反而還有很多劣勢,所以微軟的這一套傢伙在國際市場上吃不開。而國內使用微軟盜版則能夠忽略成本,而ASP的易學易用性不遜於PHP,甚至連IT外行都可以使用,所以在國內也有不小的市場。可是隨着中國在保護知識產權方面的日趨完善,免費的LAMP依舊是將來的趨勢。

摘自http://www.williamlong.info/archives/1314.html

ASP全名Active Server Pages,是一個WEB服務器端的開發環境,利用它能夠產生和執行動態的、互動的、高性能的WEB服務應用程序。ASP採用腳本語言VBScript(Java script)做爲本身的開發語言。

PHP是一種跨平臺的服務器端的嵌入式腳本語言。它大量地借用C,Java和Perl語言的語法, 並耦合PHP本身的特性,使WEB開發者可以快速地寫出動態產生頁面。它支持目前絕大多數數據庫。還有一點,PHP是徹底免費的,不用花錢,你能夠從PHP官方站點(http: //www.php.net)自由下載。並且你能夠不受限制地得到源碼,甚至能夠從中加進你本身須要的特點。

JSP是Sun公司推出的新一代網站開發語言,Sun公司藉助本身在Java上的不凡造詣,將Java從Java應用程序和Java Applet以外,又有新的碩果,就是JSP,Java Server Page。JSP能夠在Serverlet和JavaBean的支持下,完成功能強大的站點程序。

三者都提供在 HTML代碼中混合某種程序代碼、由語言引擎解釋執行程序代碼的能力。但JSP代碼被編譯成 Servlet並由Java虛擬機解釋執行,這種編譯操做僅在對JSP頁面的第一次請求時發生。在ASP 、PHP、JSP環境下,HTML代碼主要負責描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的 HTML頁面只依賴於Web服務器,而ASP 、PHP、JSP頁面須要附加的語言引擎分析和執行程序代碼。程序代碼的執行結果被從新嵌入到HTML代碼中,而後一塊兒發送給瀏覽器。ASP 、PHP、JSP三者都是面向Web服務器的技術,客戶端瀏覽器不須要任何附加的軟件支持。

技術特色:

ASP:

1. 使用VBScript 、 JScript等簡單易懂的腳本語言,結合HTML代碼,便可快速地完成網站的應用程序。

2. 無須compile編譯,容易編寫,可在服務器端直接執行。

3. 使用普通的文本編輯器,如Windows的記事本,便可進行編輯設計。

4. 與瀏覽器無關(Browser Independence), 客戶端只要使用可執行HTML碼的瀏覽器,便可瀏覽Active Server Pages所設計的網頁內容。Active ServerPages 所使用的腳本語言(VBScript 、 Jscript)均在WEB服務器端執行,客戶端的瀏覽器不須要可以執行這些腳本語言。

5.Active Server Pages能與任何ActiveX scripting語言兼容。除了可以使用VB Script或JScript語言來設計外,還經過plug-in的方式,使用由第三方所提供的其它腳本語言,譬如REXX 、Perl 、Tcl等。腳本引擎是處理腳本程序的COM(Component Object Model) 對象。

6. 可以使用服務器端的腳原本產生客戶端的腳本。

7. ActiveX Server Components(ActiveX 服務器組件 )具備無限可擴充性。能夠使用Visual Basic 、Java 、Visual C++ 、COBOL等程序設計語言來編寫你所須要的ActiveX Server Component 。

PHP:

1 數據庫鏈接

PHP能夠編譯成具備與許多數據庫相鏈接的函數。PHP與MySQL是如今絕佳的羣組合。你還能夠本身編寫外圍的函數去間接存取數據庫。經過這樣的途徑當你更換使用的數據庫時,能夠輕鬆地修改編碼以適應這樣的變化。PHPLIB就是最經常使用的能夠提供通常事務須要的一系列基庫。但PHP提供的數據庫接口支持彼此不統一,好比對Oracle, MySQL,Sybase的接口,彼此都不同。這也是PHP的一個弱點。

JSP:

1.將內容的產生和顯示進行分離

使用JSP技術,Web頁面開發人員能夠使用HTML或者XML標識來設計和格式化最終頁面。使用JSP標識或者小腳原本產生頁面上的動態內容。產生內容的邏輯被封裝在標識和JavaBeans羣組件中,而且捆綁在小腳本中,全部的腳本在服務器端執行。若是核心邏輯被封裝在標識和Beans中,那麼其它人,如Web管理人員和頁面設計者,可以編輯和使用JSP頁面,而不影響內容的產生。在服務器端,JSP引擎解釋JSP標識,產生所請求的內容(例如,經過存取JavaBeans羣組件,使用JDBC技術存取數據庫),而且將結果以HTML(或者XML)頁面的形式發送回瀏覽器。這有助於做者保護本身的代碼,而又保證任何基於HTML的Web瀏覽器的徹底可用性。

2.強調可重用的羣組件

絕大多數JSP頁面依賴於可重用且跨平臺的組件(如:JavaBeans或者Enterprise JavaBeans)來執行應用程序所要求的更爲複雜的處理。開發人員可以共享和交換執行普通操做的組件,或者使得這些組件爲更多的使用者或者用戶團體所使用。基於組件的方法加速了整體開發過程,而且使得各類羣組織在他們現有的技能和優化結果的開發努力中獲得平衡。

3.採用標識簡化頁面開發

Web頁面開發人員不會都是熟悉腳本語言的程序設計人員。JavaServer Page技術封裝了許多功能,這些功能是在易用的、與JSP相關的XML標識中進行動態內容產生所須要的。標準的JSP標識可以存取和實例化JavaBeans組件,設定或者檢索羣組件屬性,下載Applet,以及執行用其它方法更難於編碼和耗時的功能。經過開發定製化標識庫,JSP技術是能夠擴展的。從此,第三方開發人員和其它人員能夠爲經常使用功能創建本身的標識庫。這使得Web頁面開發人員可以使用熟悉的工具和如同標識同樣的執行特定功能的構件來工做。 JSP技術很容易整合到多種應用體系結構中,以利用現存的工具和技巧,而且擴展到可以支持企業級的分佈式應用。做爲採用Java技術家族的一部分,以及Java 2EE的一個成員,JSP技術可以支持高度複雜的基於Web的應用。因爲JSP頁面的內置腳本語言是基於Java程序設計語言的,並且全部的JSP頁面都被編譯成爲Java Servlet,JSP頁面就具備Java技術的全部好處,包括健壯的存儲管理和安全性。做爲Java平臺的一部分,JSP擁有Java程序設計語言「一次編寫,各處執行」的特色。隨着愈來愈多的供貨商將JSP支持加入到他們的產品中,您能夠使用本身所選擇的服務器和工具,修改工具或服務器並不影響目前的應用。  應用範圍:

ASP是Microsoft開發的動態網頁語言,也繼承了微軟產品的一向傳統,只能執行於微軟的服務器產品,IIS(Internet Information Server) (windows NT)和PWS(Personal Web Server)(windows 98)上。Unix下也有ChiliSoft的組件來支持ASP,可是ASP自己的功能有限,必須經過ASP+COM的羣組合來擴充,Unix下的COM實現起來很是困難。

結論:ASP簡單而易於維護,是小型網站應用的最佳選擇,經過DCOM和MTS技術,ASP甚至還能夠完成中等規模的企業應用。 PHP可在Windows,Unix,Linux的Web服務器上正常執行,還支持IIS,Apache等通常的Web服務器,用戶更換平臺時,無需變換PHP代碼,可即拿即用。

結論:PHP由於結構上的缺陷,使的其只適合編寫小型的網站系統。

JSP同PHP相似,幾乎能夠執行於全部平臺。如Win NT,Linux,Unix。在NT下IIS經過一個外加服務器,例如JRUN或者ServletExec,就能支持JSP。知名的Web服務器Apache已經可以支持JSP。因爲Apache普遍應用在NT、Unix和Linux上,所以JSP有更普遍的執行平臺。雖然如今NT操做系統佔了很大的市場份額,可是在服務器方面Unix的優點仍然很大,而新崛起的Linux更是來勢不小。從一個平臺移植到另一個平臺,JSP和JavaBean甚至不用從新編譯,由於Java字節碼都是標準的與平臺無關的。

結論:對於腳本語言來說,JSP仍是擁有至關大的優點的,雖然其配置和部署相對其餘腳本語言來講要複雜一些,但對於跨平臺的中大型網站系統來說,基於JAVA技術的JSP(結合JavaBean和EJB)幾乎成爲惟一的選擇。

性能比較:

有人作過試驗,對這三種語言分別作迴圈性能測試及存取Oracle數據庫測試。在循環性能測試中,JSP只用了使人吃驚的四秒鐘就結束了20000*20000的迴圈。而ASP、PHP測試的是2000*2000循環(少一個數量級),卻分別用了63秒和84秒。(參考PHPLIB)。 數據庫測試中,三者分別對 Oracle 8 進行 1000 次 Insert,Update,Select和Delete: JSP 須要 13 秒,PHP 須要 69 秒,ASP則 須要 73 秒。

前景分析:

目前在國內PHP與ASP應用最爲普遍。而JSP因爲是一種較新的技術,國內採用的較少。但在國外,JSP已是比較流行的一種技術,尤爲是電子商務類的網站,多采用JSP。採用PHP的網站如新浪網(sina)、中國人(Chinaren)等,但因爲PHP自己存在的一些缺點,使得它不適合應用於大型電子商務站點,而更適合一些小型的商業站點。首先,PHP缺少規模支持。其次,缺少多層結構支持。對於大負荷站點,解決方法只有一個:分佈計算。數據庫、應用邏輯層、表示邏輯層彼此分開,並且同層也能夠根據流量分開,羣組成二維數組。而PHP則缺少這種支持。還有上面提到過的一點,PHP提供的數據庫接口支持不統一,這就使得它不適合運用在電子商務中。

ASP和JSP則沒有以上缺陷,ASP能夠經過Microsoft Windowsd的COM/DCOM得到ActiveX規模支持,經過DCOM和Transcation Server得到結構支持;JSP能夠經過SUN Java的Java Class和EJB得到規模支持,經過EJB/CORBA以及衆多廠商的Application Server得到結構支持。三者中,JSP應該是將來發展的趨勢。世界上一些大的電子商務解決方案提供商都採用JSP/Servlet。比較出名的如IBM的E-business,它的核心是採用JSP/Servlet的Web Sphere。它們都是經過CGI來提供支持的。但去年10月後它推出了Enfinity,一個採用JSP/Servlet的電子商務Application Server,並且聲言再也不開發傳統軟件。

Perl

Perl(Practical Extraction and Report Language)是一種很古老的腳本語言。最初的Web應用大可能是用Perl編寫的,Perl很像C語言,使用很是靈活,對於文件操做和處理具備和C語言同樣的方便快捷。

也正是由於Perl的靈活性和「過分」的冗餘語法,也所以致使許多Perl程序的代碼使人難以閱讀和維護,所以使用的人在逐漸減小,而且目前有被Python替代的可能。

另外Perl對於CPU的消耗彷佛較高,效率彷佛有一些不足。

Perl開發的成功案例:

Movable Type — 世界上使用最多的Blog系統之一,功能強大的足以和一個CMS系統相比擬。

Awstats — 很是經典的日誌系統,速度極快,功能也很是強大。

結論:Perl在部分應用中能發揮很大優點,但其維護性差使得其普及變得很困難。

.NET

.NET的優點:企業信息系統部門可自行編程

.NET是Microsoft貼在現有產品和將來產品上的一個新式行銷標籤。在Microsoft服務器端產品中,如基於Windows DNA 2000技術的izTalk Server 2000和Application Center 2000,.NET標籤將隨處可見。然 而,.NET最使人感興趣的特點卻在於它的開發平臺、語言和協議。

經過.NET,Microsoft爲咱們提供了一種全新的開發平臺,這個平臺將推進以新體系爲基礎的協同Web應用開發。根據Microsoft的說法,.NET至少將成爲一種「對Web編程」的方法。當前,初版Visual Studio .NET已經出現,由此出發,咱們或許能夠比較精確地勾畫出.NET平臺最終的全貌。

.NET開發工具--Visual Studo.NET的易用性使得它在Java很難實現的「用戶企業(信息系統部門)也可編程的系統」上超人一頭。筆者認爲可能還存在其餘這樣的領域。固然,儘管.NET的標準語言VB.NET和C#都與Java同樣複雜,可是Visual Studo.NET卻很好地消除了這種複雜性。

好比,日本蘭碧兒(NOEVIR)只靠本身的信息系統部門就完成了Web代理店支援系統的從企劃到編程的所有工做。日本一家系統集成商曾表示,此前導入Java系統的用戶企業中「選用.NET的信息系統部門就有望自行開發或對系統進行修改」。

筆者認爲,因爲Java自己較爲複雜,且不易學習掌握,所以「用戶企業只負責企劃,而將編程工做徹底委託給集成商的現象很是廣泛」。

在COBOL和VB(客戶商/服務器)的全盛時期,信息系統部門本身編程、對系統進行部分修改和功能追加是很正常的事情。若是連細小的系統修改都要外包,那麼系統的維護成本天然會很高,所以就將失去靈活性。甚至於還有可能削弱信息系統部門的業務能力。說到企劃,聽起來好聽,但若是連大致的狀況也不瞭解,恐怕與開發商交涉都很困難。這也許就是Java的一個「弊端」吧。

此外,「成本比UNIX低」以及「能夠充分利用Windows技術資源」等緣由也在加速.NET Framework的普及。做爲客戶端/服務器系統的開發環境,VB的後續語言--.NET中的「Windows Form」最具競爭力。愈來愈多的系統集成商開始選擇這一工具構築系統。

.NET的劣勢:應用成果少、開放性差

反過來講,.NET的劣勢則在於在大型系統中的應用成果少、缺少「開放性」。

對於應用成果來講,從此其數量將會不斷增長。據悉,日本Kabu.com證券將在2003年度內利用.NET Framework全面從新構築該公司目前利用ASP構築的系統。

在「開放性」方面又將會如何呢?Java普及的主要因素不少,但筆者認爲其中最關鍵的在於「開放性」。因爲可各類OS上運行,並且不少開發商還提供了Web應用服務器和開發工具,所以用戶能夠隨意選擇。而開發商則經過在功能和性能方面相互競爭來不斷提升產品水平。

而.NET Framework怎麼樣呢?只要想應用於業務系統中,其OS實際上則只能限於Windows。儘管微軟已經提供了FreeBSD版.NET Framework,但其目的僅限於學術研究。

從此人們所能期待的是Mono Project。Mono Project是指徹底獨立於微軟、正在開發開放源碼版.NET Framework的計劃。主導該計劃的是一家名爲Ximian的Linux企業,這家公司成功地開發了Linux標準桌面環境GNOME,目前已受到業界的普遍關注。

2003年1月該計劃還發布了運行Web應用程序ASP.NET的Web服務軟件XSP。儘管不少功能仍在開發之中,但目前開發工做進展順利。目前正面向Linux和Windows進行開發。據Mono Project稱,因爲該軟件依賴於Linux的部分很少,所以可以輕鬆地向其餘UNIX OS移植。

可否造成像Mono同樣的開放環境將是.NET普及的關鍵所在。微軟目前已經向業界標準化機構ECMA(歐洲計算機制造商協會)提交了.NET標準,此舉代表微軟將採用開放標準。但目前尚不清楚此舉只是單純的一種姿態,仍是真的要開放.NET。這就要看微軟從此是否可以繼續公開足夠的相關標準和信息了。

能夠說,不管是在技術上仍是在戰略上,Microsoft都對.NET寄予了厚望。當前的DNA 2000技術並未包含新的.NET平臺;相反,.NET將是一種全新的技術,有望揉合許多根本性的、深層次的創意。

做爲一種全新的平臺和技術,.NET帶來了許多新的產品,但這些產品和現有技術的兼容性未能得到百分之百的保證。.NET支持27種編程語言,它們將共享一組提供基本服務的類。.NET應用再也不直接在裸機上運行,因爲看好一種運行在虛擬機CLR(Common Language Runtime)上的稱爲MSIL的中間語言,Microsoft放棄了Intel x86代碼。

.net就遠來講可能更有前途,畢竟是microsoft統治時期

就JAVA來講,最近比較熱,J2EE等都是市場比較搶手的。

XML

Extensible Markup Language,可擴展標識語言。它是一種由W3C發展,可由網頁設計者自行定義標籤(TAG)HTML延伸規格,主要目的是讓使用者可以設計結構性資料及文件格式,並對資料如何存儲,接受與應用提供標準描述方法。簡單地說,XML就是一種用來在互聯網上建立電子文檔的標準。

CGI

Common Gateway Interface,公共網關接口。網頁服務器與應用程序之間傳遞資料的接口規範,CGI程序客用冷和程序語言產生,一般爲Perl,使用CGI程序能夠讀取使用者的輸入併產生動態的HTML網頁。CGI每次響應一個請求都會創建一個進程(Process),對於服務器來講是一個不校的負擔哦。不過,如今的Fast-cgi以及對此有很大的改善,因此就不用怕使用CGI編的論壇會佔有你過多的系統資源了.

DELPHI

Delphi是著名的Borland(如今已和Inprise合併)公司開發的可視化軟件開發工具。「真正的程序員用c,聰明的程序員用Delphi」,這句話是對Delphi最經典、最實在的描述。Delphi被稱爲第四代編程語言,它具備簡單、高效、功能強大的特色。和VC相比,Delphi更簡單、更易於掌握,而在功能上卻絲絕不遜色;和VB相比,Delphi則功能更強大、更實用。能夠說Delphi同時兼備了VC功能強大和VB簡單易學的特色。它一直是程序員至愛的編程工具。

Delphi具備如下的特性:基於窗體和麪向對象的方法,高速的編譯器,強大的數據庫支持,與Windows編程緊密結合,強大而成熟的組件技術。但最重要的仍是Object Pascal語言,它纔是一切的根本。 Object Pascal語言是在Pascal語言的基礎上發展起來的,簡單易學。

Delphi提供了各類開發工具,包括集成環境、圖像編輯(Image Editor),以及各類開發數據庫的應用程序,如DesktopDataBase Expert等。除此以外,還容許用戶掛接其它的應用程序開發工具,如Borland公司的資源編輯器(Resourse Workshop)。

在Delphi衆多的優點當中,它在數據庫方面的特長顯得尤其突出:適應於多種數據庫結構,從客戶機/服務機模式到多層數據結構模式;高效率的數據庫管理系統和新一代更先進的數據庫引擎;最新的數據分析手段和提供大量的企業組件。

Delphi發展至今,從Delphi1、Delphi2到如今的Delphi5,不斷添加和改進各類特性,功能愈來愈強大。Delphi5添加了對IDE(集成開發環境)的不少改進新特性,擴展了數據庫支持(ADO和InterBase數據庫),帶有Internet支持的MIDAS改進版,TeamSouse版本控制工具,轉換功能,框架概念以及不少的新組件與新特性。

JavaScript+Html

JavaScript 是一種描述語言,此一語言能夠被箝入 HTML 的文件之中。

透過 JavaScript 能夠作到迴應使用者的需求事件 (如: form 的輸入) 而不用任何的網路

來回傳輸資料,因此當一位使用者輸入一項資料時,它不用通過傳給伺服端 (server)

處理,再傳回來的過程,而直接能夠被客戶端 (client) 的應用程式所處理。你也可

以想像成有一個可執行程式在你的客端上執行同樣!目前已有一些寫好的程式在

Internet 上你能夠連過去看看,如下有一些計算器的例子,在 Nescape 上。

JavaScript 和 Java 很相似,但到底並不同! Java 是一種比 JavaScript 更復雜

許多的程式語言,而 JavaScript 則是至關容易瞭解的語言。JavaScript 創做者

能夠不那麼注重程式技巧,因此許多 Java 的特性在 Java Script 中並不支援

Javascript的語法基本上與Java一致,可是因爲Javascript是一個弱類型的腳本語言,在程序編寫的過程當中會有一些不一樣。同時因爲Javascript是基於對象的語言,注意不是面向對象的語言,因此它在對對象的支持上有必定缺陷,你們所熟悉的諸如對象繼承,多態等面嚮對象語言所具備的基本特性在Javascript中只能經過一些變通手段來實現(一般比較複雜)。然而,弱類型語言也有其優勢,那就是簡單性,Javascript中類型轉化是很是方便的(弱類型語言在代碼中基本上表現爲無類型),一個String經過一個簡單的加減操做就能夠轉化爲Int(至關於調用了Integer.ParseInt(String)),並且不會拋異常。Javascript做爲一種解釋性語言,還能使用在編譯性語言C/C++、JAVA難以支持的eval語句。因爲運行在沙箱中,Javascript運行時有不少的安全性限制。它不容許訪問本地的硬盤,並不能將數據存入到服務器上,不容許對網絡文檔進行修改和刪除,只能經過瀏覽器實現信息瀏覽或動態交互,從而有效地防止數據的丟失。

Ajax是Asynchronous JavaScript and XML的簡稱,它表現出一個Web開發上的根本轉變,那就是,Web上可能作些什麼.

Ajax的定義

Ajax不是一個技術,它其實是幾種技術,每種技術都有其獨特這處,合在一塊兒就成了一個功能強大的新技術。Ajax包括:

XHTML和CSS

使用文檔對象模型(Document Object Model)做動態顯示和交互

使用XML和XSLT作數據交互和操做

使用XMLHttpRequest進行異步數據接收

使用JavaScript將它們綁定在一塊兒

Ajax理念的出現,揭開了無刷新更新頁面時代的序幕,並有代替傳統web開發中採用form(表單)遞交方式更新web頁面的趨勢,能夠算是一個里程碑。但Ajax都不是適用於全部地方的,它的適用範圍是由它的特性所決定的。它的特性主要有:

一、按需取數據。頁面不讀取無用的冗餘數據,而是在用戶操做過程當中的某項交互須要某部分數據時纔會向服務器發送請求。

二、無刷新更新頁面。客戶端利用XMLHTTP發送請求獲得服務端應答數據,在不從新載入整個頁面的狀況下用JavaScript操做DOM最終更新頁面。

三、預讀功能也能夠經過Ajax實現,但並非Ajax的優點所在,它的主要優點仍是在交互方面。

Ajax帶來的正面效果:

一、減輕服務器的負擔。由於Ajax的根本理念是「按需取數據」,因此最大可能在減小了冗餘請求和響影對服務器形成的負擔。

二、減小用戶實際和心理等待時間。

傳統的web應用模型工做起來就象這樣:大部分界面上的用戶動做觸發一個鏈接到Web服務器的HTTP請求。服務器完成一些處理---接收數據,處理計算,再訪問其它的數據庫系統,最後返回一個HTML頁面到客戶端。這是一個老套的模式,自採用超文本做爲web使用以來,一直都這樣用, 但看過《The Elements of User Experience》的讀者必定知道,是什麼限制了Web界面沒有桌面軟件那麼好用。

這種舊的途徑讓咱們認識到了許多技術,但它不會產生很好的用戶體驗。當服務器正在處理本身的事情的時候,用戶在作什麼?沒錯,等待。每個動做,用戶都要等待。

很明顯,若是咱們按桌面程序的思惟設計Web應用,咱們不肯意讓用戶老是等待。當界面加載後,爲何還要讓用戶每次再花一半的時間從服務取數據?實際上,爲何總是讓用戶看到程序去服務器取數據呢?

Ajax如何與衆不同

經過在用戶和服務器之間引入一個Ajax引擎,能夠消除Web的開始-中止-開始-中止這樣的交互過程. 它就像增長了一層機制到程序中,使它響應更靈敏,而它的確作到了這一點。

不像加載一個頁面同樣,在會話的開始,瀏覽器加載了一個Ajax引擎---採用JavaScript編寫而且一般在一個隱藏frame中。這個引擎負責繪製用戶界面以及與服務器端通信。Ajax引擎容許用異步的方式實現用戶與程序的交互--不用等待服務器的通信。因此用戶再不不用打開一個空白窗口,看到等待光標不斷的轉,等待服務器完成後再響應。

一般要產生一個HTTP請求的用戶動做如今經過JavaScript調用Ajax引擎來代替. 任何用戶動做的響應再也不要求直接傳到服務器---例如簡單的數據校驗,內存中的數據編輯,甚至一些頁面導航---引擎本身就能夠處理它. 若是引擎須要從服務器取數據來響應用戶動做---假設它提交須要處理的數據,載入另外的界面代碼,或者接收新的數據---引擎讓這些工做異步進行,一般使用XML, 不用再擔誤用戶界面的交互。

誰在使用Ajax

在採用Ajax的開發上面,Google作了巨大的投資。去年Google全部主要的產品都用了這項技術---Orkut, Gmail, 以及最近的beta版的Google Groups, Google Suggest和Google Maps---它們全是Ajax的應用。(要想了解更多這些Ajax實際的技術細節,請看它們的分析文章:Gmail, Google Suggest, Google Maps). 其它的像:Flickr, 採用許多人們喜歡的Ajax特性, 還有Amazon的A9.com搜索引擎也採用相似的技術。

這些項目證實了Ajax不僅是學術上的,也有許多真實世界成功應用。這不是什麼實驗室裏的技術。Ajax的應用可大可小,從很是簡單的,像單一功能的Google Suggest到很是複雜的Google Maps。

相關文章
相關標籤/搜索