03.03 為什麼那麼多公司不用 .NET,而選擇PHP、JSP,是 .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的東西,那就一統天下了。


自由踐行


做了7年的c#開發,4年多的java,c/c++,說說我的看法,主要有的區別:

一是開源和閉源的區別,.net早期完全閉源,開發也是完全傻瓜式的,微軟的思想就是讓開發更容易,所以無法看到底層實現,給人的感覺就是走一條衚衕,很快到達目的地卻無法知道牆內的東西,接觸過java和c之後,感覺就像掉進了大海,原來海底也這麼漂亮,有太多開源的軟件和框架,你可以看到更深層的東西,比如我們看dubbo,看進去後看netty,netty看進去後看到Linux,select,epoll,看到epoll,看Linux相關的,感覺就是掉進了大海,太多東西需要學習,做這麼多年開發依然在不斷的學習,但也給了我更多興趣和探知未知世界的樂趣,以前做.net的時候有種感覺就是,別讓我做非.net的東西,我不會,對陌生的的東西很害怕,現在的感覺就是你讓我寫個控制原子彈的程序我也敢去寫(比方)。

二是免費和收費的區別,所有的公司產品的成本是公司發展的最關鍵因素之一,.net全家桶成本太高,vs的版權+windows版權+sql server版權再加上其它支持類軟件版權,成本非常高,相反linux完全免費開源,給你選你會選哪一個?同時linux或從Unix而來,但天生具有輕量級性能可以發揮到極致而且穩定的系統,而windows為個人和辦公而設計,界面和系統其它資源就讓系統佔用一部分,感覺很笨重,上天做一個長連接測試,單臺Linux輕鬆上幾十萬,當然由於內存原因,否則可以上百萬,而windows就很難做到,而且Linux哪裡不行你可以去改的,windows就不行了,所以一個穩定高效免費的還有一大堆開源支持的,和一個收費性能相比沒有那麼高效的,好多公司自然選擇前者

三是開發效率,上面說兩點都說.net處於下風,但.net不是一無是處,.net有自身的優點,那就是開發效率,.net在java之上做了改進,讓開發人員更容易開發,語言優美,做企業應用開發是很好的工具,可以快速出結果,你用其它開發要麼大炮打蚊子,要麼不穩定,在工廠和企業就要求很快做出來,這是.net優勢,所以有他的市場份額,說這麼多發現沒個圖,有評論的傳一張


清風飛雪326


7年,net開發,不請自來。我認為在國內誤解是其中一個原因,搜搜國外幾大編程語言排行 c#一直排4 5 拋開解釋性語言 和函數式語言不說, c#是java的直接對手 ,按比例基本3:1 ,其中英國 德國接近2比1 2019年12月份的數據 ,足可以說明.net挺優秀,為啥在國內就被說得不堪呢? 因為網上有鋪天蓋地的對.net陳舊觀念的文章,誤導很多新人。證明下 ,net core是誇平臺的全棧平臺 基於mit協議的全開源 開發工具社區辦夠用 免費 asp.net core做web服務端 wpf winform做pc客戶端 xamarin做android和ios unity做遊戲,對於企業來說這樣一個全功能 完全免得開源的平臺 值得嘗試。 另外.net是一個完全從底層重寫的 拋棄了歷史的包袱 那個說跟java一樣重的是胡說的 最大的問題是生態 既然.net framework那麼多年都不死,國外還這麼火, 現在這麼開放 肯定會越來越好的 。一個全新的平臺 未來很有希望。其實國內也不見得那麼不堪 以北上廣 51job搜索 跟java的崗位基本4比1 ,薪資java好些, 不過.net.找工作競爭小很多 看看培訓機構就曉得了


變形精怪


本人5年自由職業程序員一枚,我來回答一下這個問題

.NET 和 PHP、JSP的區別

.NET是微軟公司的一個平臺,它的內容非常豐富,有豐富的框架,常用的C#語言語法糖非常的多,無論是編寫大型平臺和是小型網站都完全沒有問題。PHP是一門後端語言,用於網站開發,無論從語言本身還是框架資源都沒有 .NET豐富。JSP是一種網頁技術,基於JAVA語言,JAVA語言語法糖也沒有C#多,但是框架特別特別多。國內的情況是JAVA程序員是最多的,國外是C#程序員是最多的。

為什麼那麼多公司不用 .NET

.NET其實是一個非常好的平臺,但是國內程序員數量沒有JAVA多,招聘的難度要比JAVA大一些,如果是招聘JAVA很容易招人。其次就是很多小型網站根本用不到那麼複雜的技術,萬能軍刀雖好,但是我只需要一把普通菜刀就能解決的問題就不需要軍刀了。很多小型網站使用的都是PHP語言,因為有現成的CMS系統搭建網站只需要幾個小時,而且不需要很深的技術。從經濟效用上來講,公司哪個能節約成本就用哪個。


低吟淺笑


這個答案有幾點:

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)發佈就更好了。


魔碼雲


國內公司的慣用套路:國外的開源軟件,改吧改吧,湊合著自己用了,或者當產品賣了。所以用某一套東西,取決於github或者說sourceforge下相關技術的開源的項目多不多。

微軟.net、C#無疑在這些開源平臺上相對java,node要少很多。為什麼少呢?因為微軟沒有看清楚軟件開發技術的發展趨勢。這個趨勢就是devops。

可能有很多人沒有往這個方面考慮。其實devops從很早就在影響這個行業的。開發人員需要讓他們寫的程序更容易編譯,bug更少,上線風險更低,就必然需要更為智能的依賴包管理機制、自動化測試機制,產品發佈流程化機制。這些東西的先驅者是——java,其次新近崛起的nodejs,golang都一上來就提供了相關的解決方案。反觀微軟,可能在微軟內部這些東西很健全,但是在外面,你要想搭建起一整套東西,這可不是一兩個錢可以搞定的。

雖然國內早期都在肆無忌憚的使用微軟盜版,但貧窮有固執的獨立外國開發者們已經因為這些開始放棄微軟了。所以微軟的開發生態圈一直在縮小,甚至那個最大的微軟開源社區——codeplex都被關閉了。這你讓我們這些抄抄抄的程序員情何以堪呢?所以很多公司也就果斷棄坑了。


信息扭曲力場


歸根到底就是沒錢,微軟的vs吊打一切野路子開發工具,雖然現在MyEclipse也收費了,但vs比它會幾十倍,當然我也不相信有幾個人真正為MyEclipse付費了。微軟出的vs code免費的也吊打所有前端開發包括webstorm。vs從圖形c/s到b/s通殺,.net core編譯的exe自帶運行環境可以跑API拖網站,不需要裝tomcat,iis,apache,nginx,也可以掛在Linux上。高併發都是需要做集群,負載均衡和專門優化的,沒有哪個語言可以讓程序員不帶腦子就可以寫出好用的程序。


錢塘百曉生


我自己當初學過.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。


歲七夸父


倒奶的弱點很明顯,一開始對開源社區的忽視是對商業化授權的強制導致了現在沒有足夠多和足夠好的開源項目,windows環境下太貴,一般企業用不起,特別是現在對版權要求越來越嚴格,成都高新區甚至有了特警維權的案例以來,windows環境下價格不友好對開源項目不友好的短板越發嚴重。而倒奶core出來太晚,雖然能在Linux跑,但是開源項目稀少,沒得選,而同平臺下的java,PHP,python都是開源組件多如牛毛,互相還有競爭,自然質量數量均有保障,所以選擇PHP而避開倒奶是很自然的選擇毫不稀奇。


壓力很大同志


說了這麼多,其實最根本的原因是,在服務器操作系統方面,Linux佔據了絕對的統治地位(90%以上)。而. net只能在Windows下運行,不能在Linux下運行(mono是一個開源平臺,和微軟的.net並不兼容。據我所知,沒有哪個商業系統才用了mono),所以怎麼會有公司選擇. net呢?

那些還在使用. net的公司和系統,基本上都是因歷史原因而遺留下來的。如果有一個好的契機,他們也會改用JAVA、php、Python…。


分享到:


相關文章: