该提问本来就有问题。我以前是主要做.net的,现在搞python居多。但不可否认java的生态要比.net的生态强很多,技术跟工程师的水平有关,基本上与语言无关。
大公司使用java主要是有各种现成成熟的库,框架和架构案例,遇到的坑别人都几乎给你填过了。二是可以部署在稳定的linux服务器上,.net以前也可以通过mongo部署在linux上,但毕竟是非官方支持,遇着问题也不好解决,效率上也得打些折扣,so,我为什么不直接用java,还要这样折腾一翻?虽然现在.net core出到2了,而且是原生支持夸平台,但毕竟java系已经先入为主好久了,.net core能否翻身我不敢评价,因为我并没有多少的使用经验。
当然windows平台的昂贵服务器费用也是一个采用java平台的主要原因。
回到生态系统那问题上,一个系统几乎或多或少地与使用其他的组件,如rabbitmq,redis,mongodb,apache等,这些成熟的组件几乎都系天生linux系的,接口方面从来都是不可能没有java,python而先有.net的。而且在安装支持方面,这些东西都是非常容易安装的,一个apt-get命令就可以了。windows下有可能遇到奇葩的错误。还有就是有大部分这样的组件是java开发的,进行二次开发就肯定用回java了。
小吐槽一下.net后,再来谈谈.net的优势。
再说说.net方面的,大部分人对.net的印象只停留在拖控件上,这些人大部人要么是完全不懂.net的或者只懂个语法的,别人踩时他就跟着踩,瞎起哄。.net最大的优势其实在于单一平台的完整性,微软不仅给.net提供了语言和类库C#和.net framework,在UI框架方面则提供了winform和wpf,工作流方面则有wf,web 框架方面和webform(现在的项目比较少用了,缺点自查),asp.net mvc和asp.net api等。数据库和服务方面则天生偏爱sql server和windows sever了,你要的东西,微软都给齐你了。这样的大统一的好处是,你的学习是一气呵成的,因为你在学习这个框架的东西,其他框架的东西也是十分类似的,无论从方法命名还是类型组件设计上,例如asp.net mvc和asp.net web api这两个东西。
再者不是所有系统都跑着过亿订单,并发量多大多大的啊(看到有些人老拿这个说事,说.net做大型系统不行,我心里就问,你们每次都只做开发这么牛逼的系统?)其实绝大部分的项目都是中小型的项目,还在那里jb地高谈阔论.net这个语言带来性能瓶颈了。能不能反省一下是不是自己水平问题呢?
上一篇:电脑里net怎么启用?