為什麼那麼多公司不用 .NET,而選擇PHP、JSP,是 .NET有什麼缺點嗎?

牟海峰


我自己當初學過.net,java,現在算是略有了解。

就我個人理解,許多公司不用.net語言的根本原因,就是.net在最初的時候不開源,教程少,入門較難,而且最後正式發行程序什麼,還要交錢,所以在許多公司中首選java這種開放語言,教程多,入門簡單,基本不收費(不收費是關鍵,劃重點)。這也算是開源與閉源軟件之爭吧,最終以java為首的開源軟件獲勝,得以普及。

後來,開源軟件已經是大勢所趨,這時候微軟.net陣營已經做了許多改變。我最熟悉.net中的c#語言,我就以c#為例說說吧。

微軟以前信奉閉環,所有語言都不支持跨平臺,也就沒有c#;後來java越來越發展壯大,.net感受到了巨大危險,於是就模仿java,.net提出了c#,藉以打擊java。c#很像java語言,而且和java一樣能夠跨平臺,windows、linx、android、ios都可以編程,這就是微軟做的改變。

如果大家用過c#或者vb,c++來編寫窗口程序,就會發現,這些語言寫出來的windows窗口太棒了,而用java寫出來的窗口程序,不敢恭維,太醜了,這也就是我後來學習c#的原因。(這也就是為什麼說跨平臺只是一個美夢而已)。


跨平臺、開源之後的.net,其實跟java的基礎結構並不差多少,但不具備數量優勢,也就是說:java由於之前用的人太多了,各個方面的創新、發展都比較完善,有著堅實的用戶群體、應用基礎;而

.net,由於是後發,已經失去了太多的應用環境,自然現在許多公司在不考慮是專為windows開發的情況下,是不會太主動使用.net。


歲七夸父


先以開發者的角度:

PHP跟.net根本就不是一個級別的,.net無論是應用場合、開發環境、幫助文檔、編寫風格、運行效率全部吊打PHP;PHP之所以流行就是因為很多開源框架都是現成的,剛好符合國人拿來主義的精神,修修改改就能拿來賣錢了。

JAVA各方面體量大致跟.net旗鼓相當,Windows系統下還是.net的天下,企業應用方面JAVA佔用率高些,移動開發方面因為安卓和蘋果的原因,.net失去了先機。微軟正在逐步趕超,unitiy、.net core都在表明微軟的態度。

以成本的角度:

微軟的產品哪都好,就是版權太貴,Windows系統要錢,office要錢,服務器要錢,sqlserver要錢,再高級點用用企業版、集群之類的,做一個項目下來才能掙多少錢,都給微軟了。PHP之所以能存活,就是linux免費,MySQL免費,Apache免費,PHP免費,就連框架都免費;JAVA跟PHP差不多。這種生態下導致了代碼資源非常豐富,天下一般抄,開發成本就更低了。所以不是微軟的東西不好,是JAVA和PHP開發成本太低了。用過對比你會發現,貴有貴的道理,所有開發幫助文檔中,沒有比微軟做的更詳盡的。

如果你是一個獨立開發者,首選.net,Windows桌面應用、Windows服務、Windows遊戲、網站、webservice、unity遊戲,除了安卓和蘋果原生應用,.net都能勝任。如果微軟可以在安卓下造出類似framework的東西,那就一統天下了。


自由踐行


這個答案有幾點:

1、運行環境成本問題,在.net core出來之前,.net

需要的運行環境搭設成本高,windows服務器正版上萬,用access做數據庫也需要幾千元的正版office,雖說sql express是免費的,但是閹割的太厲害。所以一般win虛擬主機或者服務器都基本上比linux的貴,尤其是海外注重版權地區,更是差至少一半,所以造成了php大行其道,因為他的運行環境幾乎零成本,而且服務器需要的配置可以很低,甚至128m內存就可以跑php程序。

2、開發環境成本問題,一樣的毛病,code出來之前,開發.net程序的工具首選visual studio,但是正版的也要幾千上萬,不是一般人承受的起的。而php和java的免費又好用的開發工具又很多,因此php又獲得了先機。

3、學習成本問題,.net之前,微軟平臺應用系列的開發需要太多,vb,c,c++,而網頁腳本語言是基於vbscript的asp,隨著系統的發展,這些需要和腳本逐步跟不上時代對敏捷開發、更復雜系統開發的需求,因此推出了asp.net和c#、f#,vb.net等語言,網頁方面使用asp.net開發又一直升級,.net 2.0,3.0,3.5,到現在的4.7.x,每次升級都帶來了新的概念,如今為了搶回份額,推出了.net core 也是升級了好幾個版本,所以.net的開發要不斷的學習,學習,升級,升級。而php就不一樣了,版本的升級基本上都是框架內的升級,學習成本明顯低於.net

4、資源豐富問題,如上所述,由於成本問題,很多人選擇了php開發,然後php的免費框架越來越多,程序員一般都懶,拿來修修改改就能上線,接著做下個項目就可以啦,而.net明顯沒那麼多免費框架,市面上分許多.net框架是要授權費的。

不過目前微軟的發力,也在著手改善這種問題,發佈了visual studio code,visual studio community免費開發工具開發成本明顯降低,.net code跨平臺語言只要版本符合要求linux系統也可以運行.net code開發的程序了。如果能夠有支持linux的文件型的數據庫軟件(例如office的access)發佈就更好了。


魔碼科技


如果用戶採用微軟全家桶解決方案, .Net 的開發效率和體驗是完全可以吊打 Java 和 PHP 的, 但昂貴的價格, 讓開發者和用戶又愛有恨.

其實 .Net + C# 現在雖說不如一票跨平臺框架語言用得人多, 但也遠遠談不上沒落.

在這個問題上, 個人認為 Microsoft 的原 CEO Steve Ballmer 難辭其咎, 在 Windows 霸主地位已經開始崩潰的時候 依然固執堅持封閉生態, 導致當時的 .Net 開發者 無不焦慮和彷徨.

不過 2014 年 Satya Nadella 接任 CEO 後, 微軟 逐漸採取了 務實 開放 的做法, 收購 Xamarin 整合進 IDE, 推出 Visual Studio 社區版, C# 開始免費和跨平臺, Microsoft 越來越像 Oracle, C# 越來越像 Java, 多多少少緩解了開發者的憂慮, 不少開發者開始迴歸, 畢竟 C# 優雅的語法 和 Visual Studio 卓越的開發體驗 確實讓人難以割捨.





宜賓智軌


.Net以前是不開源的,需要收費,有著各種版權問題,導致其語言生態發展不夠。有其語言優點,但是從公司發展成本上來考慮,就註定不能作為首選。

PHP未興起之前,很多公司使用.net來開發網站,因為相比較java的JSP,開發效率也還是要高一些,這對中小型企業的業務快速變更升級很重要。JSP運行速度會快一些,但其需要編譯的特點,開發速度會相對緩慢。而對中小型企業來說,時間就是金錢,開發速度太慢,跟不上業務發展是很致命的。



之後PHP應運而生,其語言設計的初衷就是為了快速開發web應用。完全的開源免費,開發效率非常高,甚至一個人就可以搞定一個項目。中小型公司,從發展之初的考慮,逐漸將PHP作為首選發展語言。

隨著PHP生態的逐漸強大,.net這種生態落後,開發速度比不上PHP,運行速度比不上JSP的語言也就逐漸沒落了。


現在也有很多發展好了的公司,做大了做強了,又開始將自己的PHP項目往JSP遷移,因為開始追求運行速度。

所以PHP基本佔領了中小型公司,而大公司則更多選擇JSP。這都是語言的特性和優勢決定的,將來如果出現一種語言能同時兼有開發速度和運行速度的免費開源的語言,那PHP和JSP也會逐漸走上.net這條路。一切都是企業成本和效率的問題。

+++++++++++++++++++++++++++++++++++++

第一次寫問答,沒想到有這麼高的閱讀量。

有些人說我對.net的認識太落後了,好吧,我開始學編程的時候,.net確實是比較封閉的狀態,這些年我也不再去關注.net,對它的進一步瞭解也都是通過身邊的同學朋友側面反映的。

然後,真實情況是,我身邊所有學.net的同學都轉行了。因為崗位少,薪資低,真的生存很艱難哩。

遙想當年,我們一個宿舍的同學(一群窮逼,只能住在學校破舊的8人大宿舍裡,因為住宿費真便宜啊😄),開始討論選某個語言作為今後學習方向。有人選擇了.net,有人選擇了PHP,有人選擇了JSP,然後各自努力。

現在,再來看彼此發展,.net的同學都轉行了,PHP的都在中小型公司,JSP的在平安保險這種大公司裡。薪資待遇對比,.net的同學和我們也有了差距。如果只看基本工資的話,還是PHP的高,哈哈。但是,加上年終獎就撲街了。我們同在深圳的經常一起出來聚聚,中小型公司的經常自嘲,辛辛苦苦一整年,比不上**一個年終獎。唉,大公司年終獎是真多啊,可以頂你大半年甚至一年的工資,人比人氣死人。

當然,學PHP也不是都好,有個同學受不了壓力轉行做SEO了。也不是所有學java都好,我現在公司的測試就是個學java找不到工作,轉而當測試的。

其實問題還是經驗,有多年工作經驗,就是你找工作最好的敲門磚了。

最後,沒有最好的語言,適應市場發展的語言就是好語言。

各位看官,不喜勿噴!


冥域梵音


php就是個入門簡單,開源框架多,上手快的這麼個語言,尤其是小項目不用開發簡單配置下東西就出來了,不屬於高級語言,java屬於高級語言,開源,框架解決方案滿天飛,生態鏈也好,跟mysql絕配,所以使用這倆組合成本會低很多。再說說這可愛可恨的.net,這個需要也屬於高級語言,語言本身的語法也要比java好不少(我是同時寫java也寫.net所以感受特別深),雖說相同的東西也不少,再加上微軟這個巨無霸在後面支撐,解決方案也不少,但是呢他的生態鏈基本脫離不了微軟,不開源,跨平臺也不是太舒服,還有就是成本太高,簡單說就是你弄啥事也摻和個微軟讓你噁心到死,.net還有個最牛逼的優勢那就是IDE,這個不用多說了,宇宙第一IDE沒有之一併且不接受反駁而且不提供任何解釋!


李旭陽379


為什麼PHP、Java在市面上比.NET要受歡迎?而且從各大招聘網站上看PHP、Java的崗位比.NET崗位要多很多。

其實.NET也是有不少的優點的:

  • 語法優美,比Java語法優美度還要高

  • 在Windows平臺上表現優異,能輕易調用Win平臺各類組件服務

但是,它的致命缺點是:

  • 它目前只能跑在Windows平臺上(雖然.NET Core可以跑在Linux上,但它畢竟推出不久,需要時間考驗)

  • Windows系統是收費系統(雖然平時在用時,沒感覺到它是收費的)

  • 與它配合使用的SQL Server同樣也是收費的

設想一下,一個企業,如果服務器眾多,那系統費用、數據庫的授權費用,是多麼龐大的一筆支出!

而PHP、Java則不同,它們都是跨平臺開源免費的,雖然Java開始收費了(但還有免費的OpenJDK),所以PHP、Java還是首選。


網絡圈


JAVA一路的開源生態環境適合做軟件開發,做為一個開發要知其然,知其所以然。

.Net個人感覺學後跟沒學一樣。

以下是兩者實際工作的感受

.NET WEB應用基於.net framwork基礎框架。window服務器自帶安裝的IIS WEB容器和最新版本的.net framwork。

JAVA WEB應用基於JDK基礎框架,安裝對應OS系統的JDK版本,可實現跨平臺,一次編譯處處運行,一般基於tomcat web容器。也可以jar方式直接運行。

.NET應用鏈接的數據庫一般我常使用sqlserver2012,一般基於window安裝,易操作,性能上也沒問題。可到官網下載服務端免費版。如果單獨購買雲數據庫,價格要比MySQL貴。

JAVA應用鏈接的數據庫一般我使用MySQL


用戶9689114505486


理由簡單的很,.net core印象中是2016年發佈的rc版,那在此之前呢?.net只能完美運行於win平臺下。一套正版授權多少錢可以自己去查。雖然很早就有mono之類的跨平臺方案,但坑太多,沒人喜歡一更新版本就出好多么蛾子。差不多的東西,有免費的為啥要用收費的?雖然.net現在開源了,也跨平臺了,但有點晚。拿c#來說,作為進化版的java,從各方面來說都很好,但它太大了,和java一樣的笨重,在go,elixir,swift,kotlin這些語言新貴面前,其實已失去最好的發展時機


偶爾來逛逛隨便來瞧瞧


主要成本和生態趨勢吧。java面相對象跨平臺語言剛推出來的時候大受歡迎,加上一開始就採取開源策略,獲得很多有領導力大公司(ibm,bea,oracle,google等)強力推崇。它的友好和開放,為他迎來爆發勢的野蠻生長,由此構建的各種開源工具框架如雨後春筍般遍地出現,整個生態的良性發展再加上大學校園的擁抱,為未來的發展培育了良好的土壤。生態壁壘一旦形成,如果不是出現一些致命缺陷或者策略事務,類似的後來者很難超越。就好比國內的聊天軟件,即便有類似替代者,可能某些功能再好用,也難把用戶吸引過去,因為微信已牢牢把握住的用戶的社交關係,你用其他的聊天軟件,對應社交關係沒遷移完全沒用,畢竟不可能自己和自己聊吧。.net一些功能特性即便再好,還是失了先機,就微軟一家領頭企業在推,其他大公司不跟著玩,無法形成趨勢,要讓已習慣的用戶轉移到並沒有絕對優勢的平臺,那簡直難於上青天!


分享到:


相關文章: