其實(shí)這三種編程技術(shù)各有優(yōu)勢(shì),我們大概可以從語(yǔ)言、平臺(tái)這二點(diǎn)來(lái)區(qū)分:
一、語(yǔ)言:
PHP:PHP產(chǎn)生與1994年,其語(yǔ)法混合了C、Java、Perl 和他自創(chuàng)的一些編程語(yǔ)法;PHP是嵌入在HTML中執(zhí)行的;它也是一種解釋性語(yǔ)言。早期的PHP并非完全的面向?qū)ο缶幊陶Z(yǔ)言,到了PHP4以后的版本才開(kāi)始有了面向?qū)ο蟮母拍睢?/p>
JAVA:JAVA產(chǎn)生與1995年,JAVA語(yǔ)言和JAVA平臺(tái)統(tǒng)稱為JAVA;它語(yǔ)法與C語(yǔ)言和C++語(yǔ)言很接近,并且JAVA是面向?qū)ο缶幊陶Z(yǔ)言,JAVA是編譯性語(yǔ)言,可以先將JAVA源碼編譯成.class文件后,在JAVA虛擬機(jī)上解釋執(zhí)行。
.NET:在.NET中,多種編程語(yǔ)言支持開(kāi)發(fā)如:VB、C#、F#等等,通常我們都在使用C#編程,C#是為.NET平臺(tái)專們打造的一種編程語(yǔ)言,產(chǎn)生與2000年。其語(yǔ)言語(yǔ)法和JAVA、C、C++相近,同樣也是一種面向?qū)ο缶幊陶Z(yǔ)言。C#同樣需要編譯為.dll文件,然后由.net框架中CLR編譯執(zhí)行。
語(yǔ)言區(qū)分:PHP、JAVA、C#這幾天語(yǔ)言最大的區(qū)別就是執(zhí)行方式的不同。其中還有一些語(yǔ)言本身的區(qū)別,比如是否為強(qiáng)類型、是否能動(dòng)態(tài)編譯、是否為多線程、是否為分布式、是否可移值等等。至于很多人說(shuō)的性能上的問(wèn)題,我認(rèn)為語(yǔ)言本身上的性能問(wèn)題差異并不大,關(guān)建在于寫(xiě)程序的人如何編寫(xiě)的代碼。另外,在關(guān)于與語(yǔ)言結(jié)和的數(shù)據(jù)庫(kù)方面也有一定的區(qū)別,PHP通常使用MySQL數(shù)據(jù)庫(kù),JAVA通常使用MySQL或Oracle,而C#因?yàn)槭俏④浀漠a(chǎn)物,通常使用與微軟相關(guān)的數(shù)據(jù)庫(kù)Sql Server或Access等,有時(shí)候也會(huì)用Sqllite數(shù)據(jù)庫(kù)。
二、平臺(tái):
PHP:一般人在稱呼PHP的時(shí)候,本身并沒(méi)有平臺(tái)和語(yǔ)言的區(qū)別。我們用PHP往往只做WEB應(yīng)用開(kāi)發(fā),至于桌面應(yīng)用程序的開(kāi)發(fā),近年好像PHP出了這種開(kāi)發(fā)平臺(tái),但現(xiàn)實(shí)應(yīng)用中幾乎看不到。但是不得不說(shuō),PHP在WEB的表現(xiàn)層應(yīng)用中,有很好的表現(xiàn),不論從處理界面布局,或是性能上都有著不錯(cuò)的優(yōu)勢(shì)。
JAVA:我們?cè)诜Q呼JAVA的時(shí)候,往往說(shuō)的并不一定是語(yǔ)言本身,而是指JAVA平臺(tái)。在JAVA平臺(tái)中,可以使用JAVA語(yǔ)言去開(kāi)發(fā)各種不同的應(yīng)用開(kāi)發(fā),比如說(shuō):Java SE、Java EE和Java ME,分別用于開(kāi)發(fā)JAVA桌面應(yīng)用、WEB應(yīng)用、移動(dòng)應(yīng)用等等。
.NET:在.NET這個(gè)體系中,語(yǔ)言和平臺(tái)是有明顯區(qū)別的,而且一個(gè)平臺(tái)上可以應(yīng)用多種語(yǔ)言開(kāi)發(fā),這樣就滿足了掌握不同語(yǔ)言的程序員可以開(kāi)發(fā)同一個(gè)應(yīng)用程序。在.NET平臺(tái)中,也像JAVA一樣,可以開(kāi)發(fā)不同的應(yīng)用,比如:WinForm(桌面應(yīng)用)、控制臺(tái)應(yīng)用、ASP.NET(WEB應(yīng)用)、WPF(新的桌面應(yīng)用)、WCF(網(wǎng)絡(luò)通信基礎(chǔ)應(yīng)用)、WEB服務(wù)(面向服務(wù)編程應(yīng)用)、ASP.NET MVC3.0(新的WEB應(yīng)用)、XNA(桌面及手機(jī)游戲應(yīng)用)等等。
平臺(tái)區(qū)分:三種技術(shù)平臺(tái)都可以做我們常用的WEB應(yīng)用。對(duì)于桌面應(yīng)用來(lái)說(shuō),PHP并不太適用,JAVA則沒(méi)有較好的桌面應(yīng)用的開(kāi)發(fā)工具,這方面.NET平臺(tái)有較好的優(yōu)勢(shì),不論是Winform還是WPF,都非常適合做桌面應(yīng)用程序。至于實(shí)現(xiàn)一些底層的復(fù)雜業(yè)務(wù),PHP則不如JAVA和.NET,但是在做前端表現(xiàn)層的時(shí)候有著較好的優(yōu)勢(shì)。所以很多復(fù)雜的大型綜合應(yīng)用,可能會(huì)有.NET或者JAVA做數(shù)據(jù)訪問(wèn)層及業(yè)務(wù)邏輯層,PHP則用來(lái)做表現(xiàn)層。據(jù)所說(shuō)淘寶就是基于這種方式開(kāi)發(fā)的。同時(shí),JAVA與.NET都是可以跨平臺(tái)的,.NET還能跨語(yǔ)言。
總結(jié):請(qǐng)注意,不論任何編程語(yǔ)言或技術(shù)平臺(tái),并沒(méi)有好與不好之分,只有適合與否。在開(kāi)發(fā)不同的項(xiàng)目時(shí)需要使用不同的技術(shù)。當(dāng)然做為程序員初學(xué)者來(lái)說(shuō),需要從一種比較容易上手的編程語(yǔ)言及平臺(tái)學(xué)起,培養(yǎng)自己的學(xué)習(xí)能力、興趣;基礎(chǔ)打扎實(shí),才能在以后日新月異的技術(shù)更新中不斷成長(zhǎng)。
您可能感興趣的文章:- PHP和Java的主要區(qū)別有哪些?哪個(gè)最適合Web開(kāi)發(fā)語(yǔ)言?
- java與php的區(qū)別淺析