Java和.NET继续争斗的四大相关问题-阿里云开发者社区

开发者社区> 文艺小青年> 正文

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

简介:
+关注继续查看

【51CTO精选译文】在本篇文章中,著名程序员Justin James讨论了Java的未来,以及Java与.NET的开发成本对比,和Java是否能够取代.NET。Justin在文中总结了四大要点,重点关注了两个运行时在性能和成本上的异同之处。

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似乎不久也将实现它们(51CTO编者注:Sun在Devoxx大会上宣布了这个消息),当然,这是一个语言功能,而非运行时功能。

Java 7将要有闭包了 
.NET闭包大受好评,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组合(51CTO编者注:对于SpringSource服务器组合,有人却是表示不满的,可以参考这篇文章),在开发者的计算机上使用Eclipse或NetBeans。但是需要指出的是,无论出于什么原因,你都不会是开源替代产品的狂热支持者,我并非说替代产品就不好;如果是那样的话,与.NET工具相比,Java工具的价格相当,在很多情况下甚至更贵。而且从甲骨文和IBM等公司正在进行的业务来看,很明显许多公司认为有必要付费购买专有Java工具。就价格而言,在任一指定市场领域,微软几乎总是价格最低的企业类厂商。

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

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

 

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

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

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

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


本文转自Aicken(李鸣)博客园博客,原文链接:http://www.cnblogs.com/isline/articles/1631841.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【智能合约】Solidity 进阶编程 | 注意一下合约中的细节
目录 1. 内置的全局变量 2. 错误处理 3. 访问函数 4. 创建合约 5. 合约继承 6. 修饰器modifier 最后
3 0
网易有道词典一个小更新,消除了你和全球一半人类的沟通障碍
完全不懂外语的你也可以拿起手机,和老外直接对话了:甚至不需要选择彼此说着的是什么语言。
6 0
【期末复习】计算机网络 谢希仁版(六)应用层
目录 应用层 1. 网络应用程序的体系结构: 1.1 C/S 1.2 P2P 2. 域名结构 3. 域名解析过程 4. 万维网 4.1 URL 4.2 HTTP 4.3 静态页面 4.4 动态页面 4.5 活动页面 4.6 搜索引擎 5. 电子邮件系统主要协议,内容传送编码 5.1 SMTP 6. 各种网络应用相关协议及其端口号 7. socket 编程接口
4 0
透视鹏程.盘古:首个2000亿参数中文大模型是怎样炼成的?
给足算力和数据,就能训练出千亿参数的大模型?事实没有那么简单。
4 0
Transformer作者创建,Hinton、李飞飞、Goodfellow等大佬投资,这家新公司要做什么?
这家公司的早期投资人包括 Geoffrey Hinton、Ian Goodfellow、李飞飞等一众大佬。
7 0
计算机架构的新黄金时代,为什么到了2021年还没有开始?
一面是客观的技术差距,一面是无法忽视的机会。
7 0
【小白视角】大数据基础实践(七) Spark的基本操作
目录 1. Spark概述 1.1 背景 1.2 特点 1.3 使用趋势 2. Spark生态系统 2.1 Spark与Hadoop的对比。 2.2 Job 2.3 容错率 2.4 通用性 2.5 实际应用 2.6 Spark生态系统组件的应用场景 2.7 Spark组件 2.7.1 Spark Core 2.7.2 Spark SQL 2.7.3 Spark Streaming 2.7.4 MLlib 2.7.5 Graphx 2.7.6 Cluster Managers 3. Spark运行架构 3.1 基本概念 3.2 架构设计 3.3 Spark 运行基本流程 3.4 Spark 运行
8 0
瞄准GPT-3落地难题,首个千亿中文大模型「盘古」问世,专攻企业级应用
中文预训练语言模型,参数量也上了千亿,还是为业界定制的。
5 0
【智能合约】Solidity 基础知识 | 以太坊智能合约编程语言
目录 注意事项 编译器选择 一些说明 1. 变量 1.1 状态变量 1.2 局部变量 2. 数据类型 2.1 值类型 2.1.1 布尔类型(Booleans): 2.1.2 整型(Integers): 2.1.3 定长浮点型(Fixed Point Numbers): 2.1.4 定长字节数组(Fixed-size byte arrays) 2.1.5 有理数和整型常量(Rational and Integer Literals) 2.1.6 枚举(Enums) 2.1.7 函数类型(Function Types) 修饰符 函数定义 函数返回值 构造函数 2.1.8 地址类型(Address)
3 0
3452
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载