中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > 综合其它
探讨Java与Ruby语言迁移时的安全性(2)
作者:佚名 时间:2007-09-28 16:34 出处:yesky 责编:月夜寒箫
              摘要:探讨Java与Ruby语言迁移时的安全性(2)

到目前为止,我已经开始关注于新生技术的市场风险。在Java诞生十周年之际,另一种形式的风险评估成为必须。就像《人月神话》、《死亡之旅》和《人件》等许多有影响力的书籍中鼓吹的那些风险一样:

◆低下的生产力将导致更庞大的团队规模和更长的时间周期

◆风险随着项目的规模而增加

◆风险随着团队规模的扩张而增加

◆质量风险,以Bug的数量来衡量,随着代码行数的增加而增长

◆成本的增长导致风险的增加

◆综合成本随着复杂性的提高而增加

随着程序设计语言或者编程范例的使用有了积累,相对于技术发展水平,语言将会与生产力相关联。项目团队需要增加规模,开发者需要编写更多的代码来解决相同的问题。所有这些因素本身就会增加风险。所有的因素将会导致必然的结论。

由于市场主宰地位的终止,相对于技术发展水平来说,生产力风险与开发语言相关性将会增加。

在Java语言的范畴中,这些情况是否以及如何发生是一个将会引起激烈争论的话题。当然,Java仍然是解决整个一系列企业问题的最佳语言,比方说非常大型的项目,或是比如双相提交或核心对象关系映射等具备特定需求的问题。针对于Java的商业投资从来没有这么强过,并且Java社区一直是保持持续高涨。但是根基中的缺陷逐渐开始显现出来。

Java的企业级JavaBean框架,WS-*风格的网络服务,以及JavaEE的复杂性和宽松度已受到越来越多的批评。James Duncan Davidson,servlet的创始人之一,曾表示Java不再像从前那样方便易用。目前很难给一个普通的Java开发者,讲明白如何解决最一般的编程问题:比如有后台数据库支撑的网络应用。出现的相关证据是,已经出现了很多使用其他语言的开发框架,最为出名的就是Ruby on Rails,在处理小规模问题时具备极高的生产力。资深Java开发者James Duncan Davidson,Mike Clark,Justin Gehtland,Stuart Halloway以及其他许多开发者都证明,在关键的小型项目中使用了Rails之后,获得了非常高的生产效率:具备后台数据库支撑的绿色网络应用。当然,我的个人经验也是可以轻松地使用Ruby on Rails构造、部署并维护这样的应用。

这些报告将会引起广泛的争论,就像是早期关于Java生产力的那些报告一样。还记得,在Java开发广泛普及之前,Java首次出现在各式的小型应用中。开发人员的生产力是驱动Java早先增长期的重要标准。请谨记Moore关于新技术出现的理论。跨越鸿沟最好的方式不是通过一次大的跳跃,而是每次只前进一个小的阶段。

我坚信复杂性和松散的开发效率是使得Java目前正在经历风险的原因。

Ruby与生俱来的风险

比起其他新生的开发语言来,Ruby并没有什么特别之处。缺少商业投资,有限的开发资源,还缺少开发经验,这都为新生的程序设计语言带来了风险。下面是一些我遭遇到的较大的风险。

人才的缺乏

很难找到熟练的Ruby开发人员。根据Java的发展情况来看,这样的现状将会很快有所改观,但是就目前来说,如果你计划在很短的时间内组织一个人数较多的Ruby开发团队,其困难程度远比组建相同的Java团队要大得多。

缺少经验

许多LAMP相关的语言已经建立了记录跟踪机制。Google使用Python;许多主流的.COM公司使用Perl或C语言。目前仍没有使用Ruby打造的旗舰级应用,来展示Ruby语言强健的可拓展性,或是复杂的企业级集成。我们只是不知道Ruby是否可以解决某些特定类型的问题。

部署和配置策略

Ruby on Rails已经出现将近一年的时间,所以在部署和配置方面的经验还不如竞争语言那样丰富。

缺少类库支持

Ruby远不如Java语言拥有这么多丰富的类库支持。

缺少商业投资

你需要花费很大的力气才能找到Ruby的咨询、培训或承包的机会,并且这些大多数还并不存在。

还有其他许多类似的风险。然而,你可以有效地降低使用Ruby语言的风险,比如采取绩效挂钩的风险预测。虽然开发和部署大型Ruby应用的相关知识积累仍然十分有限,但是你可以在适当的着眼点不断学习新的知识。对于PHP、Perl和Python等LAMP相关语言,业界有着非常丰富的知识积累。在应用部署机制、Web服务器以及非共享可拓展策略等方面都是一致的。

在考虑参与开发的人手时,不要低估你通过对员工进行内部培训来建立高效团队的能力。对于使用Spring、Eclipse、Hibernate和WebWork进行Java开发的新手,我的训练计划常常是为Ruby on Rails开发者指定培训计划的五倍。如果你开始使用具有类似于Ruby特性的开发语言,比方说Perl,Python或Smalltalk,它们可以帮助你很好地起步。如果你打算从零开始培养一个程序员的话,培养一个使用Ruby的开发者,远比培训Java开发者使用最新的一大堆各种框架要合算的多。

想一想那些众多的函数类库,有多少是你真正需要的?如果你需要分布式处理,双相提交,那么就使用Java编程。如果您需要与Microsoft Office的宏完美地整合,那么就使用.NET。但如果你想编写操作系统整合脚本,或编写基于数据库的绿色Web应用,那么Ruby则正是你所需要的。并且你可以经常编写要用到但手边没有的任何程序。我曾协助一家公司工作,他们在两个星期内编写了自己的数据库驱动程序,但仍然比完成项目其他工作所用的时间要多。我还认识一个使用Ruby在四小时内修补现有代码,为程序拓展Oracle支持的开发者。Thoughtworks在很短的开发周期内就发布了RBatis,即Ruby版本的实体关系映射工具iBATIS。

所以当你站在全局考虑时,会感觉到使用Ruby的风险往往被夸大了,尤其是在Java并没有带给你一切所需资源的时候。自己真正去尝试使用Ruby语言,是把这些风险纳入控制范围之内的最好方法。使用Rails开发一些实际的应用,并站在实践的角度上发言。而不要盲目迷信别人的说法。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有