其实,我本人很喜欢.NET技术。工作经历中,大部分时间也在使用.NET开发。 这几年,由于工作的原因,开始进入Java+Linux世界。 今年,开始学习Python和Scala。 使用.NET时,有种什么都准备好了的感觉。而使用Java,什么都需要自己找。 C#的语言特性比Java,可以说是先进多了。而且,我觉得微软的SDK的质量更好。 Java似乎发展的比较慢。(不知道是不是内部政治斗争的原因。看来,大教堂也有比集市跑得快的时候。) 微软CEO纳德拉上任后,拥抱Linux的策略,并开源许多微软的项目。我觉得微软终于走到了正确的道路上了。虽然晚了点。
但是,现在.NET比起Java,感觉上还是差一些。
被更多人使用的语言:
这个比较容易让人理解,什么地方都可以用,自然更好。谁知道过几年会干什么,学习通用性更强的语言,适应能力也会更高。 C#在这方面,其实稍微差一下。主要原因是微软以前总是只考虑Windows系统。 Java在OS上的适应能力,明显更强。
这是python成功的主要原因之一。社区支持不尽可以降低学习门槛,而且开发大量的类库,可以增强其通用性。
尽管.NET一直鼓吹自己比Java更开放。(按照License来说,似乎是实事。Oracle告Google也让人心寒。) 但是,问题不在License上,而是在文化上。 微软以前,总有种,自己是大哥,带一群小弟的样子。就像梵蒂冈的教会。 Java的文化,更接近于自由软件的文化。 所以,Java上,有各种各样的技术从各个角落里冒出来,比如Struts, Spring, hadoop, Spark, Scala等等。 而微软方面,就很难想象,她会允许别的公司在.NET上,拥有比她更高的地位。
新公司崛起的一个主要原因,是技术上突破,满足了未来市场的需求,领导了发展方向。 这本身具有很大的随机性。 大公司一个手段是通过收购来追赶潮流。 收购有个局限性是:最好和公司有一定的融合性。 微软的问题在于:用微软技术的公司不够强大(微软压迫的?),强大的公司又不用微软的技术。
反正不负责任,就随便说吧。