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 ,如需转载请自行联系原作者



相关文章
|
Java
Java实现贪吃蛇游戏
本文介绍了如何使用Java实现一个简单的贪吃蛇游戏。
774 4
|
12月前
|
数据采集 自然语言处理 Java
Playwright 多语言一体化——Python/Java/.NET 全栈采集实战
本文以反面教材形式,剖析了在使用 Playwright 爬取懂车帝车友圈问答数据时常见的配置错误(如未设置代理、Cookie 和 User-Agent),并提供了 Python、Java 和 .NET 三种语言的修复代码示例。通过错误示例 → 问题剖析 → 修复过程 → 总结教训的完整流程,帮助读者掌握如何正确配置爬虫代理及其它必要参数,避免 IP 封禁和反爬检测,实现高效数据采集与分析。
722 3
Playwright 多语言一体化——Python/Java/.NET 全栈采集实战
|
9月前
|
设计模式 人工智能 前端开发
现代 Java 实现数字华容道与石头迷阵游戏的项目实战及项目开发指南
本项目基于Java 17+,采用JavaFX与MVC架构,实战开发数字华容道/石头迷阵游戏。内容涵盖技术选型、核心逻辑、现代GUI设计、动画实现及项目打包发布,结合sealed class、record等新特性,打造简洁可维护的游戏代码结构。
330 0
|
10月前
|
机器学习/深度学习 存储 Java
Java 大视界 -- Java 大数据机器学习模型在游戏用户行为分析与游戏平衡优化中的应用(190)
本文探讨了Java大数据与机器学习模型在游戏用户行为分析及游戏平衡优化中的应用。通过数据采集、预处理与聚类分析,开发者可深入洞察玩家行为特征,构建个性化运营策略。同时,利用回归模型优化游戏数值与付费机制,提升游戏公平性与用户体验。
|
数据采集 自然语言处理 JavaScript
Playwright多语言生态:跨Python/Java/.NET的统一采集方案
随着数据采集需求的增加,传统爬虫工具如Selenium、Jsoup等因语言割裂、JS渲染困难及代理兼容性差等问题,难以满足现代网站抓取需求。微软推出的Playwright框架,凭借多语言支持(Python/Java/.NET/Node.js)、统一API接口和优异的JS兼容性,解决了跨语言协作、动态页面解析和身份伪装等痛点。其性能优于Selenium与Puppeteer,在学术数据库(如Scopus)抓取中表现出色。行业应用广泛,涵盖高校科研、大型数据公司及AI初创团队,助力构建高效稳定的爬虫系统。
786 2
Playwright多语言生态:跨Python/Java/.NET的统一采集方案
|
11月前
|
Java 开发者
【Java实例-英雄对战】Java战斗之旅,既分胜负也决生死
游戏规则:在“英雄对战”中,玩家和敌人轮流选择行动,目标是在对方生命值归零前将其击败。游戏开始时,玩家和敌人都有100生命值。每回合,玩家可以选择“攻击”,“追击”,“闪避反击”这三种行动之一。
145 0
|
IDE Java API
Java游戏开发基础:从零开始制作一个简单的2D游戏
本文介绍了使用Java开发一个简单的2D避障游戏的基础流程。
1474 10
|
开发框架 IDE Java
java制作游戏,如何使用libgdx,入门级别教学
本文是一篇入门级教程,介绍了如何使用libgdx游戏开发框架创建一个简单的游戏项目,包括访问libgdx官网、设置项目、下载项目生成工具,并在IDE中运行生成的项目。
949 1
java制作游戏,如何使用libgdx,入门级别教学
|
Java 网络安全 Maven
Exception in thread "main" java.lang.NoSuchMethodError: okhttp3.OkHttpClient$Builder.sslSocketFactory(Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/X509TrustManager;)Lokhttp3/OkHttpClient$Builder; 问题处理
【10月更文挑战第26天】Exception in thread "main" java.lang.NoSuchMethodError: okhttp3.OkHttpClient$Builder.sslSocketFactory(Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/X509TrustManager;)Lokhttp3/OkHttpClient$Builder; 问题处理
805 2
|
jenkins 测试技术 持续交付
解锁.NET项目高效秘籍:从理论迷雾到实践巅峰,持续集成与自动化测试如何悄然改变游戏规则?
【8月更文挑战第28天】在软件开发领域,持续集成(CI)与自动化测试已成为提升效率和质量的关键工具。尤其在.NET项目中,二者的结合能显著提高开发速度并保证软件稳定性。本文将从理论到实践,详细介绍CI与自动化测试的重要性,并以ASP.NET Core Web API项目为例,演示如何使用Jenkins和NUnit实现自动化构建与测试。每次代码提交后,Jenkins自动触发构建流程,通过编译和运行NUnit测试确保代码质量。这种方式不仅节省了时间,还能快速发现并解决问题,推动.NET项目开发迈向更高水平。
249 8