JAVA与C#是当下使用率很高的高级语言中,最为相近的两门语言,在语言特性上非常相似,其差别比起其它流行的高级编程语言,例如c++、object-c、swift,也是最小的。在版本演进中,也存在相互借签、取长补短。java 语言是1996 年发布,而C#是微软公司在2000年6月发布的编程语言,所以C#对于初始版本java的不足之处做了一些完善。

 

作为一个开发者,在决定选择哪个语言时,更多地应该从业务角度出发,选择更适合的语言和架构。所以,从学习和使用的角度,需要从以下主要几点考虑。

 

1.难易层度:对初学者而言,java比C#起步略微难一点点,特指刚开始学习编程的初期。这源于C#语法糖更简洁优雅,编译器更美观好用,同时C#的官方文档是有中文版的,而java没有官方中文文档。C#常用的winform开发PC软件,和webform开发网站,更是傻瓜式地直接拖动控件就可以完成开发,而java对应的swing和j2ee则不能做到。

 

2.跨平台方面:Java跨平台,而C#开发的软件差不多只能运行在Windows系统下,尽管这跟微软的商业战略有关。微软后面发布的Xmarain、mono和.net core等跨平台技术,相当于使用的C#语法而已,效率和稳定性不如平台自己原生支持的语言。

 

3.网站开发:java更适合开发网站和移动开发,现有的大型网站,例如淘宝、京东等等几乎全都是java开发的,这方面有成功案例值得信任,而C#开发的最知名案例,也就招商银行的网站。值得注意的是,京东是从C#技术栈中途转为java的。而C#更适合开发中小型网站,开发起来速度快,编译器也很好用,对提高效率帮助不小。

 

4.移动开发:java在移动开发的优势,体现在安卓系统手机APP开发,而C#的Windows phone已经被市场抛弃。

 

5.工业化软件:java在大数据方面碾压C#,在生产控制及系统管理软件却不及C#,这跟两个不同的生态系统渊源颇深。

 

6.开源方面:java一直走在前面,有很多java语言的开源框架,而C#现在微软也渐渐走开源之路了,但起步晚,大多仅限于微软自己产品的开源,而java有很多社区和个人的开源产品。

 

7.发展趋势:java就业岗位更多,普通岗位薪酬略微高一点点,未来发展现阶段有大数据这个方向作支撑。C#更易于学习,产品的开发成本也要低些,开发速度也略快一点。当然,个人技术水平比较高的话,基本上没有差别。另外,这两门语言都经受过市场的考验,占有率也很高,都是非常优秀的语言,没有谁好谁坏的差别,更多是适用场景的不同。

 

个人体验觉得:抛开学习成本,在大型网站开发和移动方面,以及当下流行的大数据方面,果断选择java。而在中小型网站,以及生产控制及系统管理PC软件方面,选择C#更合适。