有朋友在問這方面的問題,整理一下給大家帖出來,供初學者在選擇技術時有一個參考。
三種程式設計技術各有優勢,我們大概可以從語言、平台這二點來區分:
一、語言:
PHP:PHP產生與1994年,其語法混合了C、Java、Perl 和他自創的一些程式語法;PHP是嵌入在HTML中執行的;它也是一種解釋性語言。早期的PHP並非完全的物件導向程式語言,到了PHP4以後的版本才開始有了物件導向的概念。
JAVA:JAVA產生與1995年,JAVA語言和JAVA平台統稱為JAVA;它語法與C語言和C++語言很接近,並且JAVA是物件導向程式語言,JAVA是編譯性語言,可以先將JAVA源碼編譯成.class檔後,在JAVA虛擬機器上解釋執行。
.NET:在.NET中,多種程式語言支援開發如:VB、C#、F#等等,通常我們都在使用C#編程,C#是為.NET平台專們打造的一種程式語言,產生與2000年。其語言語法和JAVA、C、C++相近,同樣也是一種物件導向程式語言。 C#同樣需要編譯為.dll文件,然後由.net框架中CLR編譯執行。
語言區分:PHP、JAVA、C#這幾天語言最大的差別就是執行方式的不同。其中還有一些語言本身的區別,例如是否為強型別、是否能動態編譯、是否為多執行緒、是否為分散式、是否可移值等等。至於很多人說的效能上的問題,我認為語言本身上的效能問題差異並不大,關建在於寫程式的人如何寫的程式碼。另外,在關於與語言結和的資料庫方面也有一定的區別,PHP通常使用MySQL資料庫,JAVA通常使用MySQL或Oracle,而C#因為是微軟的產物,通常使用與微軟相關的資料庫Sql Server或Access等,有時候也會用Sqllite資料庫。
二、平台:
PHP:一般人稱呼PHP的時候,本身並沒有平台和語言的區別。我們用PHP往往只做WEB應用開發,至於桌面應用程式的開發,近年來好像PHP出了這種開發平台,但現實應用中幾乎看不到。但不得不說,PHP在WEB的表現層應用中,有很好的表現,不論從處理介面佈局,或是效能上都有不錯的優勢。
JAVA:我們在稱呼JAVA的時候,往往說的不一定是語言本身,而是指JAVA平台。在JAVA平台中,可以使用JAVA語言去開發各種不同的應用開發,比如說:Java SE、Java EE和Java ME,分別用於開發JAVA桌面應用、WEB應用、行動應用等等。
.NET:在.NET這個體系中,語言和平台是有明顯區別的,而且一個平台上可以應用多種語言開發,這樣就滿足了掌握不同語言的程式設計師可以開發同一個應用程式。在.NET平台中,也像JAVA一樣,可以開發不同的應用,例如:WinForm(桌面應用)、控制台應用、ASP.NET(WEB應用)、WPF(新的桌面應用)、WCF(網頁通訊基礎應用)、WEB服務(服務導向應用)、ASP.NET MVC3.0(新的WEB應用)、XNA(桌上型電腦及手機遊戲應用)等。
平台區分:三種技術平台都可以做我們常用的WEB應用。對於桌面應用來說,PHP並不太適用,JAVA則沒有較好的桌面應用的開發工具,這方面.NET平台有較好的優勢,不論是Winform還是WPF,都非常適合做桌面應用程式。至於實現一些底層的複雜業務,PHP不如JAVA和.NET,但在做前端表現層的時候有著較好的優勢。所以很多複雜的大型綜合應用,可能會有.NET或JAVA做資料存取層及業務邏輯層,PHP則用來做表現層。據所說淘寶就是基於這種方式開發的。同時,JAVA與.NET都是可以跨平台的,.NET還能跨語言。
總結:請注意,不論任何程式語言或技術平台,並沒有好與不好之分,只有適合與否。在開發不同的專案時需要使用不同的技術。當然做為程式設計師初學者來說,需要從一種比較容易上手的程式語言及平台學起,培養自己的學習能力、興趣;基礎打紮實,才能在以後日新月異的技術更新中不斷成長。