為什麼那麼多公司不用 .NET,而選擇 PHP、JSP,是 .NET 有什麼缺點嗎?
為什麼那麼多公司不用 .NET,而選擇 PHP、JSP,是 .NET 有什麼缺點嗎?
蘇莉安
程式設計師 話題的優秀回答者
375 人贊同了該回答
看了一大圈,只有@翁偉一個答案是靠譜的。.net在網際網路圈使用率低是事實,而且原因基本和技術本身優劣無關,就是生態環境和人才的問題。
單從語言特性上講,C#早就把風格近似的Java遠遠拋在了身後(我從03年開始兩者交替用,C#進步極其明顯),與各種現代程式語言比一圈的話都絕對不輸。相反,很多看低.net的人其實對它並不瞭解,拿出來說的很多缺點根本就是七八年甚至十幾年前的成見,都不值一駁。
問題就出在人才結構上。據我所瞭解,國內政府、傳統企業、銀行、工廠等.net應用最廣泛的領域中,存在大量水平低劣、不思進取、恨不得只會拖拽控制元件和百度搜程式碼就自稱程式設計師的人。他們對計算機原本就沒興趣,程式設計的目標是儘快不再程式設計,想在三年內轉管理或售前,可惜失敗了。高不成低不就,又幹不了別的,只好迷茫地繼續不思進取,編寫bug叢生的程式碼。
這種人想跳到工資較高的網際網路圈都困難。除了加班強度之外,根本就跟不上需要快速學習新知識、新語言和框架的節奏,自己還恨不得學一次吃一輩子呢。
我在十幾年的工作生涯裡這種人見得太多了。有的2013年仍然在維護Windows Server 2003;有的時至今日都只熟悉 .net Framework 1.1那一套,連反射和泛型都不知道怎麼用;演算法更是像聽天書一樣,不提二叉樹、有向圖了,拿氣泡排序都能掃倒一大片。一點都不誇張。
至於為什麼只有.net而不是其他語言變成了這樣?無他,門檻太低而已。Java只比它難一點,就濾掉了一大堆垃圾程式設計師。而且.net是能在Windows下部署的,要知道這些人根本連linux命令列都懶得學,能省一點是一點……
其實過去幾年的App熱潮導致大批零基礎培訓三五個月就上崗的iOS和安卓「程式設計師」湧入業界,那個程式碼質量之慘不忍睹,跟早年這批.net程式設計師剛入行時有一拼。但他們之所以有人肯要是因為沒有代替品。而.net在Web端要跟一百多種伺服器語言競爭,這幫人的下場可想而知。也只有在慢節奏、靠市場關係不靠技術吃飯的企業有活路了。
當然,並不是所有.net程式設計師都水平低下到這程度,有很多也是有熱情、肯學習的,但越往上升發現方向越窄,很多就乾脆去了微軟。如果不去的話,發現可去的地方越來越少,既然都是要學習,學別的語言也沒問題啊,就這麼換到別的平臺去了。
整個.net生態圈(特指國內)的情況是,高水平的大神不少,越往下,良品率越以驚人的速度下降。如果你打算打造一支開發.net的團隊,那不好意思了,可能會招到一個不錯的Leader,但招底下幹活的人時,篩選成本一下子就變成了其他語言平臺的好幾倍。時間和人力都是錢啊。
這種惡劣環境不知道什麼時候會有轉機。我倒覺得.net core現在正處於一個很好的節點上:根據微軟的東西第三個版本才能用的原則,配合VS2017的.net core已經足夠可用和完善了,既能發揮出C#的優秀特性、又有開放的平臺。最重要的是,如果有人正在研究它的話,說明肯定是個有足夠熱情和動力吸收新知識的程式設計師啊,比很多傍著熱門平臺吃老本的強多了。
編輯於 2017-03-14
相關文章
- 為什麼有那麼多人選擇“人工智慧”,真的有那麼好嗎?人工智慧
- 為什麼選擇用weblogic而不用tomcat?WebTomcat
- 為什麼選擇.NETCore?NetCore
- 為什麼選擇ASP.NET CoreASP.NET
- 為什麼會有那麼多的人選擇Java?學Java到底好不好?Java
- 為什麼選擇PostgreSQL而不是MySQLMySql
- 免費框架那麼多,為什麼選擇付費的框架框架
- PHP - 什麼是 PHP? 為什麼用 PHP? 有誰在用 PHP?PHP
- 企業為什麼選擇伺服器呢?有什麼優勢嗎?伺服器
- 什麼是.NET平臺、什麼是c#、什麼是ASP.NET。C#ASP.NET
- TF簽名是什麼?穩定性怎麼?有什麼優缺點?
- 什麼是Asp.net Core?和 .net core有什麼區別?ASP.NET
- 什麼是閉包?有哪些使用場景?優缺點是什麼?
- 為什麼我們要選用 Elasticsearch 而不用 SolrElasticsearchSolr
- 什麼是CDN邊緣伺服器,有什麼優缺點?伺服器
- 為什麼要前後端分離?有什麼優缺點後端
- 那麼多人選擇Python,它的優缺點有哪些?Python
- 公共代理有什麼缺點?
- Python有什麼缺點?Python
- 這樣實現行嗎,有什麼缺點
- 伺服器虛擬化部署是什麼有什麼優缺點伺服器
- Netty是什麼,Netty為什麼速度這麼快,執行緒模型分析Netty執行緒模型
- 什麼是 NettyNetty
- 為什麼你應當選擇 PostgreSQL 而不是 Oracle?SQLOracle
- heredoc是什麼?它能為PHP做什麼?PHP
- 同是容器管理系統,Kubernetes為什麼那麼火?
- 公司為什麼要使用OKR,目的是什麼?OKR
- Elasticsearch 中為什麼選擇倒排索引而不選擇 B 樹索引Elasticsearch索引
- Java夜校班好嗎?為什麼選擇他Java
- #.net在技術上遠超Java,可是為什麼大多數公司還是選擇使用JavaJava
- NuGet是什麼?為什麼.NET專案中會有NuGet?如何使用NuGet程式包?
- Veritas NetBackup是什麼?
- 為什麼程式設計那麼難?是我腦子不行嗎?程式設計
- 為什麼選擇Guice框架GUI框架
- Aembit為什麼選擇 Rust?Rust
- 為什麼選擇使用Rust?Rust
- 為什麼要選擇SQL?SQL
- 為什麼那麼多人要學習go語言?go語言有什麼特點?Go