java和c#的生态环境有啥差别

java是一种语言支撑起了无数的社区,c#是一种语言支撑起了无数的信仰
■网友
当你做特定项目或者找不到对Windows服务器足够熟的运维的时候才能意识到区别。普通情况下没啥区别。
■网友
java的涵义在不同层面是不同的,我写一下我的理解(我个人06-09年在微软技术中心工作,05、09-至今主要用的是java):
1、在语言层面上,它们是同级别的,java和C#相同,C#更加容易入手(体现在类库上,.net库毕竟是一家公司做的,java 的库则是你自己去找的)
2、在生态层面上,他们是不同级别的,java是社区型的技术,即为java提供智力支持的主要是开发者,他们同时是java的贡献者和使用者;而C#只是一种语言,能与java在生态层面上做对比的是.net,下辖庞大的.net库和多种语言,微软作为贡献者,开发者更多只是使用者(开发者如果提供了类库,很可能微软会提供相同功能的并在下一个版本里加入.net framework)。
至于经常有人提的跨平台,这个其实不是个核心要素(.net也有linux版本),真正的问题在于开放还是封闭,这里并没有对错,只有好坏,但是都同时有好处和坏处(你想,苹果手机的好处之一不就是闭合系统,安全性高吗)。我这里不谈好处和坏处了,毕竟大家都知道,我就说一下我理解 的原因:地位造成了取舍。
微软推出.net的时候,在软件业是一家独大的(当时有个说法,微软进入哪个领域,哪个领域就等着被吞并),所以他站在主导者的地位,他选择闭合生态。而sun推出java的时候甚至连地位都称不上有(java甚至是为烤面包机设计的语言,因此1.2之前简直不忍直视,直到用的人多了,才想起来改变,但是早期架构无法承载作为一门合格的语言存在,于是1.2的时候重构,年龄大点的人都知道,那时候我们买的书上,名字都是java2,意思是java语言第二版,其实什么语言本身都有更新,但从来不见C++2吧,你顶多说用的IDE是VSxx版本,不会说C++语言是xx版本,虽然它确实已经是xx版本了),它的地位完全是开源社区(不是某个具体的团队,所有贡献了开源代码的人都算)的功劳。
【java和c#的生态环境有啥差别】 以上。

■网友
java 各种库c# 移植各种java库
■网友
大跟小吧


    推荐阅读