目前,網頁腳本語言三個主流:PHP,JSP,.NET。究竟是一種怎麼樣的形勢?是三國鼎立,還是其他的形勢呢?各自的真正優勢,又是在哪裡?

雖然這些內容在百度里搜一下有一堆,但很多其實都是表面的描述了。我希望在知乎上可以了解到一些真正開發者的理解。當然這些編程語言始終只是工具。


PHP的優勢在於, 跨平台, 極易部署, 易維護, 為Web而生, 開源社區強大, 文檔豐富.

至於說3足鼎立, 談不上, 全球前100萬的sites中, 70%是PHP.

JSP和http://Asp.net 也很優秀, 但是他們的部署問題是最大的問題.


Laurence 大神說的部署問題,我認為並不存在,php再輕也需要一個 apache跟php, java要tomcat跟jvm,net 要iis跟.net framework..但是現在.net的部分框架甚至可以讓.net自宿主運行,安裝一個mono/net framework就解決了所有問題

注意:.net通過mono來跨平台運行,所以win已經不再是障礙了

php在web領域有不可動搖的地位,70+的佔有率,大部分是由wp,discuz,ecshop

這些開源整站程序支持出來的。從tiobe最新的排名來看,

java 19% c# 4.7% php 2.8%

由於php只在web執行,還有android為java帶來的巨大優勢,私認為在web領域三者應該不分伯仲

.net擁有宇宙最好使的ide visual studio(甩開eclipse幾條街有木有),能最大優化開發效率…但是也由此催生一些只會用工具的碼畜。

php輕巧,請求上來,由伺服器接受請求,轉交php執行腳本,跑完了事。net跟java的主要web框架,都會事先有一部分在內存執行。

php開源程序應該是木有java多的,我大.net最少。

運行效率嘛,幾個循環其實沒什麼代表性。

不同版本的php.jvm.net.mono 可能都有一些差別

不管神馬語言,都不會影響你成為優秀的碼畜。


我看個這麼多評論,真的很搞笑,國內就這個水平。 這三種web後端語言,在工作中我只用php。 其他二種只是了解。 如果你真的懂web怎麼運行,什麼語言都不重要。 如果不懂web怎麼運行, 就搞一種比如php,然後你就必需至少理解http協議, 如果天資不好,最好搞一本網路協議看看,從硬體光纜看到應用層比如http,ftp. 只有你懂得網路,你才能懂得web 怎麼運行。像php後台語言就是干http協議的事(當然還有apache輔助,如果非要往後扯linux-&>硬體-&>物理,數學), 以及把後台邏輯變成前台http/javascript/css 等,當然javascript是把能夠在後台處理的邏輯移到前台了。

至於用什麼web後台語言真的不重要。重要的是你知道web是怎麼乾的,

我看到好多人說精通一門技術,這太寬泛。如果技術是一門編程語言, 你不需要精通任何一門語言。我覺得計算機體系結構是最好的入門點,向後可以研究硬體,向前可以研究軟體。如果非要一門語言作為工具。c語言最好。 比如web開發。 如果你搞懂了web是怎麼回事,用c開發web程序也是很容易的事。

總之,如果你真想編程,最好做長期打算。從頭開始。這樣會事半功倍。實際上,學計算機的人,到最後真的懂計算機1/10, 精通我猜1/100.

至於初學者為了開發web用哪個,一定要用php,只有一個原因,她最流行且已是主導地位了。


首先從程序原理上來說

PHP才是腳本語言,也就是說,是被觸發解釋執行的。

.Net和JSP,都是在虛擬機里跑的應用程序,可以操作內存及線程 。本質上和PHP並不一樣。

舉例:

如果讓PHP做計劃任務,那就必須依賴於系統本身的計劃任務觸發。而.Net和JSP只需要起一個線程就可以了。

但是PHP最大的優勢就在於,免費、開放!

免費的好處就不用去說了,誰都不會向微軟卑躬屈膝。

至於開放,還可以舉例讓你明白:FaceBook就是用PHP寫的,但是PHP執行效率讓扎克伯格很傷腦經,於是FaceBook提出了另一個思路:

就是把底層的資料庫業務邏輯用C++進行封裝再轉而提供給上層API。

PHP可以做到,因為它是開源的。

明白了么?


原文鏈接:

Usage Statistics and Market Share of Server-side Programming Languages for Websites, August 2015

Server-side Programming Languages ( 8月)

1. PHP 81.2%

2. http://ASP.NET 16.7%

3. Java 3.0%

Popular sites using PHP

  • Facebook.com
  • Baidu.com
  • Wikipedia.org
  • Qq.com
  • Twitter.com
  • Taobao.com
  • Sina.com.cn
  • Tmall.com
  • Vk.com
  • Sohu.com


PHP、JSP和.NET都是好的編程技術和工具。

PHP容易上手;JSP是JAVA的高級應用,意味著你要有較紮實的JAVA基礎;.NET只能應用於微軟平台。

不知道這個話題背後的問題是什麼?是想選擇一種技術來規劃自己的職業方向,還是來確定一套業務系統的技術方向?其實,它們都只是工具,是用於軟體系統中來解決現實業務問題的。很多人按系統的大小、功能的複雜程度的實現來對三者打分,其實沒有必要。如果你只是要掌握編程能力來找工作,學習一種到兩種都可以。況且南方和北方對技術人才需求的方向也是不均衡的,(個人感覺,南方偏.NET多一些,北方偏JAVA多一些)。工具畢竟是工具,用好用壞是個人的能力,但最終都是要歸根於行業和業務,所以重視行業業務才是發展的主線。


據我所知,PHP的需求量還是挺大的,很多公司都招不來可用的PHP人才


三者各有個的優勢 , Net開發速度快 , 底層類很多 ,能快速開發出性能不錯的程序 。但問題是很多人只懂皮毛開發出來的不盡人意 。


從運行效率來講,php是比後兩者慢。但實際上對於對大多數應用,其影響是微不足道的。運行效率很重要,但快和更快一點的區別對應用體驗來說,價值不會很大。在現今瞬息萬變的信息時代,一個好的系統,其實最重要的是擴展性好,穩定性高,就足夠了。在這些點上,各種開發平台各有優勢。

php開發效率高,交付成本低

java流行(網上解決方案信息最多),成熟,靈活,穩定性好

.NET不清楚

so,精通一種技術就好,不用管是什麼語言。不用的應用不同的場景有不一樣的選擇和取捨。語言不重要,重要的是用對地方。


一樓的回答已經完美了。web的性能瓶頸根本就不在開發語言上,而PHP的這些優點又是極其符合web開發需要的,自然就成了主流。至於PHP和其他語言的性能對比,有幾個產品能真正產生優化語言這個層面的需求?即使有,伺服器端耗時僅僅佔用整個請求時間的20%,而PHP的內存佔用和吃CPU的情況基本無關痛癢,優化實在是勞民傷財之舉,還不如擴展個廉價硬體來的實在。web應用真正在乎的是開發效率,部署效率以及擴展性和維護性方面,PHP佔盡優勢。


IT這塊,總是有很多人在不同的時間段來爭論糾結要選擇什麼平台。這裡我作為親自使用過PHP的wordpress ,discuz,ecshop,並且有多年推廣,建站經驗。之前我沒有了解過jsp。沒有了解過.net. 但是目前正在用C#依託.net作為職業發展方向,同時也有很多朋友是做JAVA開發的。我這裡重點告訴的一句是,什麼語言都可以拿到很高的工資。靠譜的PHP,.net, jsp程序員,在每個公司都非常緊缺。唯一的問題在於,你是否學得足夠牛逼?你評什麼去學得比別人牛逼?你要思考的是這個問題。所以,問題不是選擇什麼語言,而是你手上的資源,你自己的知識背景情況。你能夠接觸到的最好的老師,有沒有厲害的師傅,通過花錢或者其他手段能夠交給你這門語言足夠牛叉的技術給你。你再怎麼愛java,沒有絕對把握能夠學到足夠好有什麼用,php都說簡單,但是你去搜一下,月薪過萬的PHP要求是如何的,你覺得能夠通過學習,具備那麼多技能要求沒。自己也用PHP ,wordpress建過站,用過discuz。我本身不是學計算機出身的。學的電氣工程。歷經幾年的時間,也糾結過什麼語言最牛逼。問題是,語言都牛逼啊,人不牛逼有毛用啊。整天問東問西。除非你身邊有牛逼的程序員,或者老師。不然,再牛逼的語言,跟了個差勁的培訓老師,學校。學出來的也不行啊。就拿我這個電氣自動化專業來說,牛逼嗎? 清華大學自動化專業牛逼不?如果是一個三流學校的老師來教你,你牛逼得起來才怪。而我們三流院校的自動化學生能夠跟清華的比嗎,出來工資有他們高嗎,同樣是學一個專業啊。就跟語言一樣,同樣是PHP,為何有人拿3K/月,有人拿2萬/月。我們考慮學東西,學技能的動機無非就是能不能賺錢。所以回歸到根本問題上,所有的語言之爭,其實還是學習成績,學習效果的爭奪。別人的牛逼,別人年薪百萬程序員,你能複製嗎。就好像選擇一個你喜歡的專業,這些專業你可以儘管的選擇。但是選完之後,你還不是一樣要去選擇如何學習。選老師,選機構,選學校,選什麼資料自學習。後者決定高低,而不是語言平台決定你的高低跟收入。作為一個轉行了的跨專業的人,給你的建議就是,我們是為了生存發展來學習技能的。用得多的語言,火爆的語言,反而競爭大,騙子也多。所以不要等到年紀大了,才有辨別能力。人要現實一點,不要人云亦云。


在企業應用領域,只有Java和.NET。


推薦閱讀:

Lua 5.3為何很慢?該不該升級?
怎樣編寫一個自動登陸校園網的腳本?
想拍攝一個視頻,該如何寫腳本?腳本中需要包括哪些內容?
腳本是什麼,如何寫腳本?
有沒有公司會為自己的主打產品設計專用的腳本語言用於實現自動化測試?

TAG:網頁設計 | PHP | NET | JSP | 腳本語言 | 發展形勢 |