为什么那么多公司不用 .NET，而选择 PHP、JSP，是 .NET 有什么缺点吗？
看了一大圈，只有@翁伟一个答案是靠谱的。.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#的优秀特性、又有开放的平台。最重要的是，如果有人正在研究它的话，说明肯定是个有足够热情和动力吸收新知识的程序员啊，比很多傍着热门平台吃老本的强多了。