工作有些年头的.net 老油条路过,来分析一下楼主的疑惑,
为何.net 不受待见
其一,历史原因:
早期的微软其实并不喜欢开源社区,
而且那时候的.net 和 windows 几乎绑死了,
想用.net 开发就必须得在 windows 上,web 服务器也只有 IIS 可用,相当于把所有的非 windows 开发者都拒之门外。
其二,易学:
有 VS 这个 IDE 的加持,一个小菜鸟想来个 hello world 简直是毫无门槛,甚至是 web 开发这种事情也可以拖拖控件就能搞起来。因此从而衍生出了一大批的“入门级”人才,一定程度上拉低了整个生态环境的水平。
这种类似的情况实际上太多太多了,举个例子:现在大家生活水平都提高不少,所以很多人在假期会考虑选择出国去玩,但是出国玩吧,又可能因为不懂得当地风俗或者不讲礼貌,进而让一部分的老外产生了“中国人都好可怕”的感觉。
其三,部分开发者的思想产生了问题:
这个世界上存在着这么一部分的人,他们思考问题过于主观,甚至有时候会动用自己的权威去把那些仰慕自己的人往一个错误的方向引导
我就见过不少老师甚至是教授这样跟自己学生说:想挣钱就别学 c#。然后列举出一大堆 c#的毛病。在这样的潜移默化下,这些学生自然也会这么想。
也有不少的那种“大神”,他们可能的确已经学得比较深入了,所以会开始挑框架的毛病了,比如“微软这个 GC 算法不合理”、“微软这个 sb 怎么会用这么低级的代码来实现某某算法”,有些不明真相的初学者当然也会被那些高深词汇给深深折服,进而对此深信不疑。
那些整天黑微软的人,其实仔细观察一下,你就会发觉他们的逻辑其实是相当可笑的,比如拿 IE6 或者 7 来跟 Chrome 比,或者拿 Win2003 上面的 IIS 来跟 Nginx 作比较,亦或者是拿 java 的社区来跟 C#对比。也许他们根本不知道 Edge 是什么,也没用过 WindowsServer 的新版本,甚至他们可能连自己最自豪的 jvm 生态圈里新出现的语言都没见识过。
总结一下:
从.Net 1.1
用到现在的.Net Core,我能够感受到微软的进步,包括现在他们在开源社区做出的努力,推出 VS 的社区版本(这个和早期的 Express 版是有很大区别的),拥抱 Linux 等等,我找不出非得去黑它的理由。
所以在这里也建议那些还在十字路口迷惘的哥们,不要轻信“大神”的话,很大部分的“问题”其实都是代码写得有问题导致的,哪怕是用 C 也写得一手烂代码的也大有人在。
也别去把自己局限在同一个技术甚至是同一个语言上面,大部分情况下,我们是要去解决问题而不是去制造问题,什么技术能更好的解决问题,那就是个好技术。在去公共场合鄙视一门技术之前,先思考一下,自己到底有没有那个资格去鄙视。