Java对战.NET,战争与和平的游戏

简介:
在软件世界里,Java与.NET无疑是两个旗鼓相当的对手,一再上演着一出又一出你来我往、拼力争夺的好戏。在这种争夺的过程中,有受益者,也有牺牲者。平心静气地想一想,微软和Sun公司都是兵器的制造者,软件人员才是斗士,用户们只好去做受益者或是牺牲品。
 
真的有那么凄惨吗?事实上,和平的曙光已经出现了。
 
战争与和平
 
很多人认为,Java和.NET不是殊途同归吗!为什么又会烽烟缭绕呢?当然是世界级企业之间的商业竞争使然。这场战争常使软件开发人员陷于进退维谷的境地—Java还是.NET,应该选择哪一种开发平台?
 
事实上,不管选择哪一种平台作为基础,今后都必须面对Java和.NET共存和互操作的环境。这显然不是一件容易的事情,不过和平的曙光已经出现了。
Sun与微软在法律上的大和解算是一道曙光,只是光靠两家公司之间的一纸法律文书究竟能够解决多少问题,需要多少时间,这些都很难说。
 
不过,还有另外一道曙光!一些软件公司推出的开发工具可以在二者之间架起桥梁。
 
在这方面,可以留意一下Compuware公司。这家公司的应用开发解决方案倡导应用软件的完整生命周期管理,以往主要依靠Java技术。
 
最近,他们特别强调,把与Java竞争的.NET技术融入到其原有的产品框架之中。在技术上,Compuware的产品可同时支持Java和.NET两种平台。因此,在Coupuware看来,选择Java平台还是.NET平台已经不重要了,重要的是你要有一套完善、高效的软件代码管理工具。
 
从.NET入门,用Java提高
 
新的技术、工具和环境可以让你免除选择Java还是.NET的困扰。不过,即便还没有这些新工具,对于大多数软件人员来说,仍然可以走出高明的妙棋。
 
其实,Java和.NET两者各有所长。作为软件开发者,完全可以抛开两个厂商之间的矛盾与冲突,让自己成为两种技术融汇贯通的软件高手。
 
开放性是Java生命力的源泉,它不属于一个单独的公司,尽管Sun在其中起着关键性的作用。众多世界级的公司,例如IBM、甲骨文、BEA等等,都对Java都给予完全的支持。
 
出自微软的.NET最大的特点就是容易上手。花上两三个月时间,你就可以像模像样地当软件工程师了。相比之下,Java就不那么容易。可是,从软件技术的深度来看,.NET之中有没有分布式事务处理,这个问题仍然被许多资深的软件人员所质疑。
 
从个人职业发展需求来看,.NET入门那么容易,很快就会满大街都是.NET程序员,你还能期望有多高的薪水呢?
 
企业选择有不同
 
从软件人员个人的角度来看,以.NET入门、以Java提高也许是一种循序渐进的最佳路线。但是从企业的角度来看,选择Java平台还是.NET平台,却要用不同的思路来考虑。
 
从成本效益方面来衡量,.NET平台很容易在短期内以较低的成本开通运行,而且开发、管理人才比较容易找到,费用同样也比较低。但是随着经营规模的扩大,业务种类的多样化,.NET可能就无法胜任了。不过,无论在什么时候,中小企业毕竟占据多数,经营规模、业务种类很可能永远都不会扩大到.NET不可承担的程度。
 
对于大型企业来说,情况就复杂多了。在整个企业来看,由于现有规模和业务种类已经十分复杂,而且有多年遗留下来的应用系统,Java平台可能是最适当的选择。
 
但是,大型企业中新成立的部门,单独来看又很可能选择.NET比较合适。因此,两种平台并存将是永久的局面,这也就给Compuware、IONA等公司创造了很大的市场空间,也称为Java和.NET两大阵营之间的“和事佬”。 












本文转自周金桥51CTO博客,原文链接: http://blog.51cto.com/zhoufoxcn/167209 ,如需转载请自行联系原作者



相关文章
|
4月前
|
Java 索引
Java实现扑克牌游戏 | 随机发牌 ( 过程拆分详解+完整代码 )
Java实现扑克牌游戏 | 随机发牌 ( 过程拆分详解+完整代码 )
|
26天前
|
开发框架 IDE Java
java制作游戏,如何使用libgdx,入门级别教学
本文是一篇入门级教程,介绍了如何使用libgdx游戏开发框架创建一个简单的游戏项目,包括访问libgdx官网、设置项目、下载项目生成工具,并在IDE中运行生成的项目。
40 1
java制作游戏,如何使用libgdx,入门级别教学
|
4月前
|
网络协议 Java Apache
【Java】已解决java.net.HttpRetryException异常
【Java】已解决java.net.HttpRetryException异常
86 0
|
4月前
|
网络协议 Java
【Java】已解决java.net.UnknownHostException异常
【Java】已解决java.net.UnknownHostException异常
698 0
|
3月前
|
jenkins 测试技术 持续交付
解锁.NET项目高效秘籍:从理论迷雾到实践巅峰,持续集成与自动化测试如何悄然改变游戏规则?
【8月更文挑战第28天】在软件开发领域,持续集成(CI)与自动化测试已成为提升效率和质量的关键工具。尤其在.NET项目中,二者的结合能显著提高开发速度并保证软件稳定性。本文将从理论到实践,详细介绍CI与自动化测试的重要性,并以ASP.NET Core Web API项目为例,演示如何使用Jenkins和NUnit实现自动化构建与测试。每次代码提交后,Jenkins自动触发构建流程,通过编译和运行NUnit测试确保代码质量。这种方式不仅节省了时间,还能快速发现并解决问题,推动.NET项目开发迈向更高水平。
45 8
|
3月前
|
算法 Java 测试技术
java 访问ingress https报错javax.net.ssl.SSLHandshakeException: Received fatal alert: protocol_version
java 访问ingress https报错javax.net.ssl.SSLHandshakeException: Received fatal alert: protocol_version
|
3月前
|
人工智能 前端开发 开发工具
NET在企业级应用、Web开发、移动应用、云服务及游戏领域的创新实践
.NET技术自2000年推出以来,在软件开发领域扮演着关键角色。本文从核心优势出发,探讨其统一多语言平台、强大工具集、跨平台能力及丰富生态系统的价值;随后介绍.NET在企业级应用、Web开发、移动应用、云服务及游戏领域的创新实践;最后分析性能优化、容器化、AI集成等方面的挑战与机遇,展望.NET技术的未来发展与潜力。
57 2
|
3月前
|
人工智能 算法 Java
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
47 1
|
3月前
|
Java Spring UED
Spring框架的异常处理秘籍:打造不败之身的应用!
【8月更文挑战第31天】在软件开发中,异常处理对应用的稳定性和健壮性至关重要。Spring框架提供了一套完善的异常处理机制,包括使用`@ExceptionHandler`注解和配置`@ControllerAdvice`。本文将详细介绍这两种方式,并通过示例代码展示其具体应用。`@ExceptionHandler`可用于控制器类中的方法,处理特定异常;而`@ControllerAdvice`则允许定义全局异常处理器,捕获多个控制器中的异常。
46 0
|
3月前
|
Java 开发工具 Spring
【Azure Spring Cloud】使用azure-spring-boot-starter-storage来上传文件报错: java.net.UnknownHostException: xxxxxxxx.blob.core.windows.net: Name or service not known
【Azure Spring Cloud】使用azure-spring-boot-starter-storage来上传文件报错: java.net.UnknownHostException: xxxxxxxx.blob.core.windows.net: Name or service not known