我觉得这篇文章很不错,想和大家分享一下,虽然是旧了点___不过我觉得比今天的“JAVA和程序员的职业发展”好很多

Topchen 2004-03-10 11:03:14
Java 2 企业版 与.NET

程序员之家版权所有 加入时间 2002-4-14 1:46:00

MDR-EdO:欢迎大家来到JavaLive!今天的主题是JavaTM 2 平台企业版(J2EETM)与.NET。这两个工作平台的功能都能够覆盖很多相同的领域,比如web服务,所以,把二者进行比较是很自然的。许多人对把J2EE™同.Net进行比较有何意义存在疑问,为了回答这些问题,我们很荣幸的请到了《Distributed and enterprise computing》的知名作者及顾问Jim Farley。Jim是哈佛大学IT中心的主要软件设计师,它可以回答大家的问题,那我们现在就开始吧-谁来提第一个问题?

MrWeb:很多人认为.NET在对WEB的设计理念上要优于J2EE™,因为.NET是专为WEB服务设计开发的。而J2EE只是一个翻版(也就是把APIs 象 JAXP 和 JAXR加入到了平台中),您认为这个观点有价值吗?

Jim Farley:这是个很好的问题,而且经常有人会问这样的问题。这里有很多实际的例子,微软花了很大力气来重新设计它的基础架构,就是为了使其适用于WEB服务。作为一个公开的标准,J2EE很自然的也会长期跟踪、升级它的一些协议、规范。但是如果你把商家和商家相比较(比如说微软和BEA,IBM),那么,你就会发现,在Java的领域里,存在很多模糊的WEB服务解决方式。对于Java团体来说,如果把这些模糊概念变成规范,那么,Java的发展必将会更好。

Al-Bandy: 在今后的几年里,您认为J2EE和.NET的竞争,最终会出现一个胜利者还是二者共存?

Jim Farley:我无法预测谁会是最后的赢家。微软有其自己独特的市场运作方式,同时,J2EE也有其强大的惯性和实力。我想它们会有效利用企业空间,在中短期内按某些方式同时存在。

Bob Rodes:在我看来,二者的主要区别好象在于标准的公开程度上,.NET更保守一些,J2EE更公开一些。有没有横向或纵向的交易额的比较?.NET要快一些但要受限于微软平台,J2EE慢一些但不受平台限制。是不是由于过于简化而是性能降低了?

Jim Farley:快慢只是一个相对概念,在衡量交易量上有很多这样的因素需要考虑。但是无可非议的是,.NET对于Wintel环境而言是最佳的选择。但是,在J2EE架构了也没有什么因素妨碍商家开发类似于"Wintel-optimized"的J2EE运行环境(当然,这里面也有许多恶意诽谤者)。

nigelk:现在在WEB服务上使用XML已经使平台或技术的概念逐渐独立了,因此,J2EE 或.NET能否提供更好的工具或平台不应该成为主要的问题。

Jim Farley:非常正确。在理想环境下,这两种平台在WEB服务规范和支持基础架构上应该毫无关联的,与"SOAP/WSDL/UDDI"相互融合应该是一个很好的机会。但是,一般商家的"value-add"问题会仍然存在(微软就是一个最大的商家,但却不是唯一的一家具有保守心理的商家)。不公开化这一附加因素将会使WEB的集成会象使市场成熟那样困难。

Fogus:就微软认为C#即是Java这一概念,您是怎么理解的?为什么我们只能选其一?

Jim Farley:如果你能够忽略平台问题,那么严格上说你就要做一个人为选择:你最喜欢用哪种语法/编程模型/对象模型?就我个人观点来讲,这几种模型都是没有明确界限的,但是,平台会对此作一个硬性规定,Java是J2EE的基础,C#和一般运行环境是.NET单一平台的基础。因此,C#同java的比较实际上又回到了J2EE 同 .NET进行比较这一问题上。

Joe:针对Java Pet Shop的应用,微软对.NET及其性能、代码缩减等问题作了很多改进,针对这一点您有何评价?.NET的速度真的是更快吗?

Jim Farley:我想,很明显这只是一种推销手段而已。我认为所谓的代码缩减只是一个幌子,如果我单纯只是为了易于管理而缩减代码,这并不是明智之举,更谈不上其对基础架构有何真正意义。如果你要对不同商家的产品进行比较的话,只能比较它们的性能,而不能把.NET的某一方面的突出特点同J2EE的整体基础架构进行比较。

Al-Bandy:有什么功能是.NET能够实现而J2EE不能实现的?同时,有什么功能是J2EE能够实现而.NET不能实现的?这两者之间有什么明显的差别吗?

Jim Farley:如果要完整的回答这个问题可能要占用很多时间!如果想要更多了解这些,可以看看我写过的一篇文章Software Development里面提到了这些。在这里,我只能简单地说.NET在XML和Wintel集成方面比较擅长而J2EE则在方便性和可选择性上存在优势。

David from BofA:根据您所说的在J2EE 和 .NET之间不可能存在明显的区分界限,那么,对于一个初学者来说,哪一个更适合初学者来学习(假设必须选其一的话)。

Jim Farley:如果从内容以外来对两者进行比较是很困难的,这要看你为哪种类型企业工作、你的客户喜欢什么、你将来的技术/市场策划是什么等等许多因素。如果你打算只在微软这种只使用Wintel的环境下做一些前瞻性的工作(无论是为个人还是为企业),那么显而易见,.NET是首选之举。如果你认为自己不是唯一的商家,而是要考虑到来自于其他平台的竞争,或者你想把你自己的产品和客户发展到其他平台上,那么J2EE将是你最佳选择。

Joe:J2EE和.NET的工具好像都是遵循W3C标准(SOAP, WSDL),那么您认为哪一个是不标准的、自我封闭的?

Jim Farley:事实上,他们的确遵循这些标准,但是,商家也会"包含和扩展"它们的工具(例如,为封装协议增加"value-added"的扩展,或者是定义硬盘备份的有效载荷等等)。因此,如果他们完全100%遵循SOAP/WSDL/,那么,你就无需担心。但是正确与否就要看微软和J2EE了。

MrWeb:据我了解,.NET基础架构并不支持持续性管理,如果真是这样的话,这将是一个很大的缺陷


Jim Farley:从一定程度上来讲这是事实,COM+(.NET的一个组成模型)并不支持自动持续管理。同时EJB也需要CMP,在一定意义上来说,这确实是.NET的一个缺陷(有利必有弊)。但是,也有很多人认为,利用有效的"delivered value",利用EJB进行持续性管理和促使商家在J2EE平台上运行远不如把精力集中在其他领域上,象WEB服务。我个人比较同意这种观点。但是,从另一个方面讲,我认为积极的与Java进行沟通,相互取长补短,最后必将会取得突破性的成就,因此,对于J2EE我们应该两种态度并存。

greg: 如果这样与微软的CRL竞争发展下去,Java将会怎样发展?因为对于微软来讲,CRL是一个强大的开发工具,它能够让开发人员不需做额外的工作即可把时间代码应用到系统中,针对这一点,Java做何反应?

Jim Farley:我不同意在多语言环境下使用CRL来达到"不增加开发人员额外工作量"的这一观点。你应该学习一下CRL的结构模型和".NET-ified"语言的可变语法。但是,关于Java对于这一问题的反应,我们已经看到和听到了象ForteTM软件等以Java为核心的多语言支持的反响。过去,尽管这些成绩并不表示它已经成功了,但是已经有很多为JavaTM虚拟应用的交叉编译器了。但是到现在为止,我还没有看到Sun和Java团体想要在这一领域的详细计划,当然我没有任何指责的意思。


...全文
70 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧