在打算開發一個網站時,選擇什麼語言,是首先須要面對的問題。目前主流的WEB開發語言有ASP.NET、PHP、JSP; 做爲MS上世紀老將ASP,就再也不說起,若是是由於維護方面的緣由而必須使用,可考慮升級到ASP.NET,而做爲新開發一個語言,實在找不到理由再使用它了; html
如下將對這三種語言作對比,以供權衡: python
上手度 linux
.NET: 5分 程序員
PHP:3分 web
JSP:1分 shell
若是你是一個WEB方面的新手,這三門WEB語言的學習成本差異很大。ASP.net 做爲微軟的產品,繼承了其一向的特色,方便上手,易用;甚至你都不用編碼,靠着鼠標拖拖拽拽,都能整一個網站出來(網上,就有這樣的視頻講解。固然,這樣出來的網站是無法應用到實際中的,且不說其代碼複用率極其低下,拖拽出來的代碼,靈活度過小,效率也低(eg:gridview中的分頁實現載入數據是一次所有載入的))。同時,憑着其強大的開發工具visual studio系列,在程序出現bug時,能最大程度的提供問題說明,讓開發者儘快定位到問題所在。JSP相比而言難度就大多了,光是配置一個開發環境就得耗費很多精力,JSP語言最爲頭疼的就是程序調試方面,當程序出現問題時,並不能獲得友好的錯誤提示,調試BUG比較耗時。再就是JSP依託的JAVA過於龐大,着實是個無底洞,開始容易,越日後發現要學的越多,通常互聯網公司,還真難以有幾個能駕馭,再普及的;PHP學習算是基於.net和JSP之間,語法與C語言一脈相承,上手也算容易; 數據庫
資源 apache
.NET:4分 windows
PHP:5分 tomcat
JSP:2分
資源包括能獲取到的學習資料、開放源碼,以及各類插件和庫。PHP在這方面遙遙領先,粗略看來,各類網站的知名開源產品,大都使用PHP實現,如博客wordpress、論壇discuz、Wiki知識庫MediaWiki等;
相應的各類插件、庫、開源代碼的數量和質量更是其它語言沒法相比。.NET資源也比較豐富,選用.NET幸福的是有MS這麼一個強大後臺作有力的技術支持,CSDN 的資料不但多,質量更是上乘;JSP因爲其門檻高的緣故,導致在這方面的資料也比較少;
系統架構實施
.NET:3分
PHP:5分
JSP: 3分
.NET 部署環境是windows 03/08+MS SQL Server + IIS。都是微軟的產品,優勢就是部署容易,方便,兼容性好。最爲頭疼就是安全方面的問題,windows下老是得不停的打補丁,但仍是時常遭受這樣那樣的攻擊;再就是數據庫方面,MS SQL 與Oracle在併發處理、效率上始終有個數據量級的差距,2008發佈以後聽說是好了些,但老是讓人感受不大放心;PHP就是LAMP架構,即 Linux+Apache+My Sql + PHP;Linux平臺在我這幾年的熟悉後,深入體會到其就是爲服務器而生,各類的工具讓人愛不釋手;My Sql做爲開源產品,首先在軟件費用上就公司能省下一大筆,其性能優秀,即便某日網站規模的擴大體使數據庫出現瓶頸,也可組建一個數據庫團隊來研究改進。不過,在Oracle收購MySql以後,爲其前景蒙上了一層陰影。有可能,在不久的未來,MySql的部分功能就會閉源。JSP的架構小則是 Linux+apache+tomcat+MySql ,大則Linux + Apache + Java (WebSphere) + Oracle,對於通常小型網站的部署,大都選用第一種;WebSphere過於龐大,通常部署都得獨自佔用一臺服務器;Oracle是數據庫中的王者,性能優異(國內銀行證券的數據庫應用,通常只有DB2和Oracle兩種選擇),但其價格不菲,非通常創業公司可以承擔(按CPU收費,通常 25w/cpu/每一年;次年會收取15%的維護費)須要提一下的是JSP系統架構部署有些難度,架構出現問題後,排錯是個很痛苦的過程。
管理維護
.NET:2分
PHP:5分
JSP: 4分
WEB 管理中,常常會經過遠程來管理網站,遠程管理的方便與否關鍵看命令行工具的支持力度及腳本環境的操做便捷性。.NET只能跑在Windows平臺上,遠程管理通常只能經過圖形化界面遠程鼠標操做,當網速比較慢的時候,管理員的心情無比複雜,遠程操做基本上是在一幅幅圖片上估計下一張圖片中鼠標的移動位置;Windows平臺的命令行環境很是差,IIS的命令行工具功能少,bat腳本也難學難用(雖然能夠經過安裝cygwin工具來模擬linux shell環境,但系統操做,系統資源監控方面仍是無能爲力); Linux下就幸福多了,遠程基本上都是經過SSH鏈接,安全有保證,shell腳本消耗的網絡帶寬也只是圖形化界面的百分之一,管理流暢,心情舒暢;各類程序消耗資源均可遠程監控;Linux就是爲服務器而生,此話絕不爲過。PHP、JSP均可跨平臺,通常其系統部署都是在Linux下,MySql數據庫和apche服務器均可經過相應的命令行工具備效管理。JSP的應用服務器在這方面支持要少些;
跨平臺
.NET:0 分
PHP:5分
JSP:5分
曾幾什麼時候,我對跨平臺不屑一顧,想着好端端的一個應用,既然是定位在這個平臺上開發的,幹嗎要移植到其它平臺上。現在,我是深有體會。手上一個項目,公司因爲成本壓力,須要將應用從 SUN Unix移植到Linux平臺(Redhat)。咱們的程序基本上不用改動,在Linux上編譯就只多了幾個警告,改改就可上線了;而另外一個項目,我被深度套牢!咱們使用的是Windows平臺的ASP.NET,因爲受到Windows的病毒氾濫加上WEB管理的麻煩,迫切但願能移植到Linux平臺,但這基本上不可能實現。若真想將這應用移植,只有下狠心使用PHP等重寫應用,換系統架構。PHP、JSP均可跨平臺,不用多說。
當前主流應用的選擇
PHP:當前WEB創業公司的語言選擇主要集中在PHP。除了上述緣由還有一個重要緣由就是PHP開發程序員隊伍的規模。
淘寶網(阿里巴巴): Linux操做系統 + Web 服務器: Apache +PHP
PHP的應用太多,這裏再也不列舉;
ASP.NET:在創業公司中應用很少,知名互聯網應用有限,目前比較知名的應用有:
博客園、CSDN、eBay、MySpace等;
JSP:JSP 實施比較龐大,用好的就得用到websphere或weblogic這樣的大物件,種種緣由使得JSP在互聯網公司中應用並很少,除了阿里巴巴,沒有幾個公司能駕馭JAVA(JSP)。深刻JAVA須要多年修煉,而成精以後,公司是否有足夠的薪水來留住這麼一羣高手是個考驗;
阿里巴巴:Linux+(JSP)
總結
現在流行的Ruby,也是創業公司的一個選擇;python的優雅,也可考慮嘗試(豆瓣使用的Python);但選擇這些語言的一個風險是公司規模擴大後,是否能找到足夠的人才得打個問號。總的來講,創業面臨選擇一門開發語言,PHP當是首選;若是不考慮Linux平臺,鐵定在Windows上運營,.NET也是一個不錯的選擇。JSP小公司勿近,危險,容易形成的資金套牢