有朋友在問這方面的問題,整理一下給大家帖出來,供初學者在選擇技術時有一個參考。
三種編程技術各有優勢,我們大概可以從語言、平台這二點來區分:
一、語言:
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還能跨語言。
總結:請注意,不論任何編程語言或技術平台,並沒有好與不好之分,只有適合與否。在開發不同的項目時需要使用不同的技術。當然做為程序員初學者來說,需要從一種比較容易上手的編程語言及平台學起,培養自己的學習能力、興趣;基礎打扎實,才能在以後日新月異的技術更新中不斷成長。