.NET 和 Java 是当今社会最受欢迎的两种编程语言, 长期的发展和强大的功能使他们足以在编程界立足。 十余年的争论也没得到结果的一个话题就是——他们哪个更好一些?
今天, 我们不再去讨论JAVA和.NET的利弊因为在项目实施过程中,需要分析项目的具体要求,进而选择合适的平台和技术。相反,我们将探讨Java的优势和特点进而去理解为什么世界的各大公司 ,尤其是搞银行和保险领域的更偏好JAVA而不是.NET的原因。
# 1. 开放源代码
2006年,Oracle把Java开源了——这意味着可以不用交给Oracle授权费就能开发任何软件。相反,.NET是一个需要从微软获得许可的产品,必须支付许可证费用才能使用这个框架去开发软件。
公司使用Java得到的优势是,他们可以通过使用一个开源的软件开发框架来削减开发成本。对于预算吃紧的企业,Java是自然的选择。
另外,作为一个开源的平台,它允许开发者去做任何事情,他们可以通过使用各种可用的支持Java的开发工具来构建他们想要的东西和创建他们喜欢的解决方案。这是目前你不能用.NET做到的一些事情,因为(它不开源,所以)使用.NET你只能使用微软提供的工具内容,并在Visual Basic(应该是VS)里玩。
# 2. 平台无关性
你想开发一个可以无缝运行在不同的操作系统的软件吗?想象这样一个软件,它允许您编写一段代码可以跨越设备和平台进行工作。使用Java,所有这一切都是可能。Java就是出于这个单一目的——“编写一次,到处运行”——而创建的,而且忠于愿景,Java代码只需一次书写就可在不同的平台上执行和运转。使其成为可能的是对于几乎所有主要平台都有可用的具体JVM实现。
这是.NET没有做得很好的地方,也是Java和.NET编程语言的不同。(出于商业竞争和保护).NET被聚焦在单一操作系统上,可以让微软和它的开发者更方便地构建和开发能无缝运行在windows上的工具。使用.NET你可以通过Mono建立能工作于一些操作系统的应用程序,但它没提供象Java开发那样的方便性。所以如果你创建的软件或应用程序需要运行在不同的平台上,Java对你来说是一个理想的开发平台。它将使开发过程更简单。
# 3. 物联网的首选平台
物联网指的是一个未来的憧憬,所有日常用品,如设备、房屋、城市、汽车和其他物品——被注入情报器并不断地连接到互联网。Java将是物联网的一个理想平台,因为设备将运行在不同的软件和硬件上,Java可以使所有这些不同的设备相互通信。
当然,还有其他一些语言也可以被使用,但Java已经是一个成熟的编程语言,在这方面已经有大量的开发和研究已经完成,使它成为开发人员的理想选择。
目前,这是.NET还不能提供的能力,因为(先天不足,)它的功能主要是只对windows平台实现完全兼容,.NET不太擅长连接各种在不同的软件和硬件上构建和运行的设备。
#4. 活跃的社区
最好的部分Java社区使你可以免费得到你所需的解决方案,相比而言,当你走近他们寻求解决方案时微软都要收费。甚至.NET的每一次更新都要你花钱。而另一方面,Java开发人员社区的活力不断改善着Java平台的功能和有效性。这意味着你的软件和应用程序可以继续得到最新的技术的优势,而无需支付额外的钱。
#5. 安全性
Java比大多数其他编程语言更安全。很多功能,比如对引用的自动null检查,字节码执行之前的验证,运行时安全检查和数十个类似的特性,使得它成为创建安全的应用程序方面的老大。这就是为什么银行和保险公司都使用Java创建他们的应用程序或软件的原因。
总结以上
Windows操作系统仍然是在世界各地最受欢迎的操作系统之一,因此,对于想开发应用(尤其是在Windows平台上)的组织和企业家来说,.NET可以是一个不错的选择。但是Java提供了一个安全、成本有效、平*立的方式来创建高质量的软件。并且结合从Java开发者社区产生的固定性的改进,使它对于大多数企业来说都是一个极佳选择。
Boni Satani是工作于一家IT解决方案提供者Cygnet Infotech公司的Java技术爱好者。他照管着不同的一些Java项目,包括web应用程序开发,Web服务开发和Java报告工具。他有颗技术极客的心,爱在他的空闲时间写作。随时在twitter上@bonirulzz可与他取得联系。