注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

未来的大胖墩儿的地盘

努力工作的同时胖起来!

 
 
 

日志

 
 

Java和.NET继续争斗的四大相关问题  

2010-01-02 10:15:12|  分类: 软件网络 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1、Java SE 7遭遇.NET CLR会发生什么?

从Java SE 7的功能列表中可以看出,它相比以前版本有了长足提高。那么,它是一个游戏改变者吗?我认为不会是这样。在过去数年中,JVM和.NET CLR都发生了众多改进;过去那些只有技术非常高超的程序员才能完成的许多事情,现在借助于JVM和.NET CLR的增强功能,普通程序员也能够做得到。

尽管JVM和.NET CLR并非在同一个时间实现相同的想法,但是如果在一方出现了某个好的想法,另一方也会迅速跟进,这一点不仅仅体现在运行时层面上。举例来说,对于Java来说,Hibernate项目取得了巨大成功后,.NET也迅速推出了NHibernate。而.NET的闭包(closures)功能深受众多开发者的欢迎,Java似乎不久也将实现它们,当然,这是一个语言功能,而非运行时功能。

2、在可以预见的未来,一个运行时是否会彻底击败另一个?

尽管从技术层面上JVM和.NET CLR非常相似,但它们都有自己的市场,两者的灵活性都不是很强。如果一个人已经围绕.NET服务器和IIS创建了他们的基础架构,他不可能第二天醒来把所有这些迁移到Java,反过来也是这样。甚至如果一个公司决定切换自己的开发平台,那它可能需要替换整个开发团队,或者从头开始对他们进行培训。即使培训完成后,在技能上还是存在严重的不足;毕竟,一个高级.NET开发者不可能在经过3个月培训后突然变成一个高级Java开发者。

另外,公司需要保留现有技术人员来维护已有的代码。你认为这些员工会坐视他们的职位被取消,或者他们的技能将变得无用或贬值吗?当然不会。对一个公司来说,完全从Java转向.NET或完全从.NET转向Java,都是一种自杀行为。最多是通过一个多年期项目来对员工进行重新教育。自从.NET发布以来,从VB6到.NET的迁移都已经花了8年时间。

3、Java开发的成本是否比.NET开发更具经济性,如果是这样,人们是否会转向Java来节省投资?

如果你仅仅着眼于工具,我的答案是“既对也错。”的确,只要你愿意,你可以在一个完全开源的组合上运行Java。你可以采取Linux/Tomcat/MySQL/Java组合,或者在服务器方面使用SpringSource组合,在开发者的计算机上使用EclipseNetBeans。但是需要指出的是,无论出于什么原因,你都不会是开源替代产品的狂热支持者,我并非说替代产品就不好;如果是那样的话,与.NET工具相比,Java工具的价格相当,在很多情况下甚至更贵。而且从甲骨文和IBM等公司正在进行的业务来看,很明显许多公司认为有必要付费购买专有Java工具。就价格而言,在任一指定市场领域,微软几乎总是价格最低的企业类厂商。

另外,你必须考虑到如果没有切换成本公司将会省下多少钱。一个Visual Studio副本的成本要远低于一个中等收入开发者的周薪和保险金(注:作者Justin是美国人)。而且同一个开发者学会Java并且达到他擅长.NET的水平,所需要的时间要远远大于一周时间。

出于公平考虑,这种分析也同样适用于从Java转向.NET。相比于平台切换的痛苦,开发工具成本实在微不足道。当然也有两种例外情况。第一种情况是新建公司,那么不存在迁移成本的问题。在这种情况下,Java依然不具有成本优势,因为微软也已经推出了免费版本的Visual Studio(Express版),而且如果你的公司是新创公司的话,通过BizSpark计划,你可以免费获得三年MSDN和微软许可,它们还不错。另外一种例外情况是,一个公司具有非常高的服务器-开发者比例,例如谷歌或雅虎。此类公司可能有许多开发者研发运行在数千台服务器上的一个应用。在这种情况下,开发者工具并非节省成本的主要因素,但服务器空间是。对于面临这种情形的公司,Java(和其它开源技术)可以具有一个决定性的成本优势。

4、一个Java开发者需要了解多少脚本语言,才能实现.NET中的效率?

首先,你是否在进行Web开发工作?如果是这样,你可能需要了解一些JavaScript知识,并熟悉相应的框架。对于后端工作来说,知道一门动态语言或脚本语言不是强制性或必需的。尽管如此,在Java领域存在许多此种用途的不错选择。对于目前还不是一名Java开发者的人来说,我没有这方面的任何实际经验来介绍,但是我听到很多关于GroovyScala不错评价。如果你希望选择某些更主流的技术,JRuby和Jython是不错的选择。

在过去数年中,JVM已经开始大量支持非Java语言,开发者现在拥有众多选择。学会其中一种肯定有助于你成为一个更好的开发者(即便你并不在实际产品项目中使用它们),可以让你在项目陷入困境时提供另一种方向。

Java是否会取代.NET?言之尚早。同时.NET也不会消灭Java。两者都有自己的优势和劣势。我认为,你最终选择它们两个中的哪一个,这要取决于个人喜好和当地职业机遇。

原文:Why Java and .NET will continue to compete  作者:Justin James

  评论这张
 
阅读(94)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017