首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
首页 | JAVA | C# | VB | VB.NET | C/C++ | delphi | 工程管理 | 其他语言 | 论坛
各大城市软件开发培训、软件人才免费咨询热线:400-700-5807
 您现在的位置: 中国IT实验室 >> 桌面开发 >> JAVA >> 正文
探讨Java与Ruby语言迁移时的安全性
来源:ChinaItLab 作者:佚名 时间:2007-7-12

  在这篇文章中,我们将要探讨Java与Ruby语言迁移时风险预测方面的问题。

  通常来说,“使用Ruby具有风险”是一种普遍的看法,这存在一定的原因。因为使用新的语言天生是有风险的。随着Ruby on Rails逐步进入到主流的开发领域中,这样的风险将会随时间逐渐降低,因为有逐步增长的开发者群、组件(或称作gems和plug-ins)相关的书籍、以及业务合作伙伴与你沟通交流。但同时你也可以听到主流的观点指出“使用Java安全的”。对于这种的观点,我持有强烈的反对意见。随着语言的膨胀,这样的风险通常也会增长。为了便于理解在目前在这些观点上正发生什么变化,投入点精力去研究Java最初的应用情况是值得的。

  新技术采用概况

  许多分析家拥有技术应用所需的描述模型。其中最为流行的模型是定义在Ruby的Web开发框架Iowa中,用来描述农产品的应用,稍后在一本由Geoffrey A. Moore写作的名为《跨越鸿沟》(Crossing the Chasm)的书中,被用来描述技术内容。在书中,Moore分析了技术应用周期中存在着的五个截然不同的群体:

  技术专家。这个群体倾向于采用新的技术。任何一种有前途的技术都会引起这个群体的注意。

  先行采纳者。不管这项技术是否在主流技术中取得成功,这个群体都将会采用新的技术来提升竞争优势。

  实用主义者。一旦新的技术进入主流应用,或是有足够陡峭的增长曲线来保证技术将得到广泛采用,那么实用主义者就会积极采用新的技术。

  保守派。只有新技术成为必须的时候,他们才会考虑采用新的技术。

  怀疑论者。这个群体可能很晚才会采用新的技术,或者也可能永远只使用某一特定技术。

  Moore指出,技术应用的关键之处在于团队中是否存在实用主义者。因为实用主义者需要新技术大规模的应用,这个中间群体希望看到其他务实派在团队做出承诺之前就使用新的技术。这是一个类似于《第二十二条军规》书中所描述的现象,因为务实派们都会相互依赖的存在。出于这样的原因,在先行采纳者排列在技术专家之后和务实派之前,你会经常在市场接受度曲线中看到一种下降的趋势。Moore将这种下降称之为鸿沟倾向,并且这种想法应出于围绕任何新技术的风险讨论的中心。

  Moore解决方法是,把重点放在跨越鸿沟的过程中。通常来说,你很难通过一个巨大的飞跃跨过鸿沟。你需要有一个目标明确的细分市场。Java技术首先通过Applet程序进入网络客户端,之后转向服务端的计算、移动终端、以及其他类似于移动计算以及企业架构的应用,最终为网络带来强大冲击。

  在《超越Java》一书中,我认为存在于程序设计语言之间的鸿沟特别严重。我们大多数人都认识到在Lisp语言上投入精力将大幅提高生产率,但是同时也会导致更难找到合适的程序开发人员、教学资源、类库以及组件等。同时我们还将不得不付出更多的花费来进行一些必要的整合工作。出于这个原因,大众市场只会以大约每十年的时间周期更换主流的编程语言。在服务端编程语言方面,可以清晰看到这种趋势的存在。COBOL和Fortran语言出现于1954年到1961年之间。C语言则诞生在上世纪70年代初期,C++是出现在上世纪80年代中期,Java语言则出现在1996年。我应当把C#语言算做整合高效的Java语言克隆版本,虽然这样的说法可能会引发一些争辩。许多其他的语言在此阶段中诞生,但是上述语言仍旧没有一个能够占据统治地位。伴随的风险是阻碍新编程语言被广泛采用的最重要原因。

  使用Java语言曾经需要克服很大的风险。当时,大多数服务端的编程都在使用C++语言。C++是一门高效的操作系统语言,非常适用于应用程序开发。C语言家族在这方面的表现相当出色,因为客户机/服务器端编程以及用户界面开发需要程序性能与适应性良好地结合在一起,在当时其他的编程语言都无法符合这样的要求。为了克服伴随采用新编程语言而来的风险,Java需要以下的三个条件均成立:

  C++开发者不得不经历一番辛苦的学习过程。指针的存在(由于缺少编译时的安全性)导致各种各样难以消除的缺陷。内存管理使得内存泄漏成为家常便饭。C++对于大多数程序开发者来说,显得过于复杂。这些问题增加了针对于C++语言的风险评估。

  Java需要解决一些C++语言无法处理的工作。Java语言所具有简洁、灵活的特性以及众多C++所不包括的类库支持。这些要素减少了针对于Java语言的风险评估,并可以保持开发团队小型化最终从根本上提高生产力。

  Java需要一个催化剂。随着网络爆炸,Applet应用普遍被嵌入在NetScape浏览器中,使得C语言开发者不得不转向去开始使用Java语言。C++因为和Java语法的类似,可以简单地进行过渡。Java得以迅速获得数量庞大的用户群,并且在同微软的竞争中逐步提升这样的过渡。

[1] [2] [3] [4] 下一页

【责编:Youping】
中国IT教育热线咨询
相关文章
框架:J2EE WEB应用架构分析…
Java SE 6.0实现高质量桌面集成开发…
浅谈Java中利用JCOM实现仿Excel编程
基于Java的界面布局DSL的设计与实现
Java开发中的事件驱动模型实例详解
Java中消除实现继承和面向接口编程
实现Java平台的三种方式
JAVA中对象创建和初始化过程
Java Web层的下一个王者是谁?…
Java技术在多数据库系统中的应用研究
推荐文章

 精彩友情推荐
·Asp源码 PHP源码
·CGI源码 JSP源码
·建站书籍教程
·服务器软件 .net源码
·建站工具软件
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
最新更新 推荐文章
·框架:J2EE WEB应用架构分析…03-13
·几种VC++数据库开发技术的相对比…03-13
·利用C#实现标注式消息提示窗口03-13
·用C#创建COM对象03-13
·Visual C#多线程参数传递浅析…03-13
·Visual C#多线程参数传递浅析…03-13
·基于HOOK和MMF的Win密码渗透技术11-15
·Visual C++设计超强仿QQ自动伸缩…11-15
·Java SE 6.0实现高质量桌面集成开…11-15
·史玉柱东山再起幕后高人11-15
·用C#创建COM对象09-06
·IT管理十大失误及其对策08-30
·VC中利用MFC设计绘图程序初步08-23
·JAVA中对象创建和初始化过程08-23
·C语言中的位域的使用08-09
·浅谈Java桌面应用程序开发08-09
·C#的前途如何?08-02
·几种VC++数据库开发技术的相对比较07-12
·用Visual C#实现网络封包监视…07-12
·VB.NET中的TextBox控件详解07-12
·VB.NET实现PC与掌上电脑PPC的双向通信07-05