首页 | 互联网 | IT动态 | 网络设备 | 服务器 | IDC | 安全 | Cisco | Windows | Linux | Java | .Net | Oracle | CIW | 华为 | 专题
IT技术 | 网页设计 | 平面设计 | 电子书下载 | 教学视频 | 方案 | 数字网校 | 直播室 | 虚拟考场 | 面授培训 | 搜索 | 博客 | 沙龙 | 论坛
it400热线 思科认证考试中心查询系统
您现在的位置: 中国IT实验室 >> 培训 >> 认证动态 >> SUN认证 >> 正文

争论:Java是否应该停止增加新特性
来源:ChinaItLab 时间:2008-1-23 作者:佚名 保存本文




·达内外企IT培训,先就业后付款 
·教你如何成为高薪IT白领 
·亚威高端CCIE集训营 

  最近,关于Java平台的未来有许多辩论,有些人认为Java应该加入更多的特征,这样才能与C#、Ruby这样的语言竞争,另一些人认为应该保持Java的稳定,以免变的过于复杂以至于难以使用。Bruce Eckel认为应该彻底停止往Java中增加新特性,这引起了一场新的辩论。

  在Bruce Eckel 的博文中,他说如果Java要保持主流地位,那么就需要停止进化。作为一种语言,Java已经“过于嘈杂”了,代码有些过分啰嗦(例如System.out.println())。Eckel认为Java泛型增加了复杂性,这已经引起了人们的关注,他还说明了他看到的Java的一个关键问题:

  我们对于复杂性的唯一控制手段是抽象:隐藏不需要暴露的部分(分治法("divide and conquer")是一个变种)。在Java中的悖论是,复杂性问题的一个关键方面被忽略了:没有认识到代码可读性是重要的问题。好像IDE会为你写代 码,如果那样的话即使代码过分复杂也不是问题了。

  [Joshua Bloch] 将关于复杂性的思想提升了一步。他说复杂 性不仅仅是指一个孤立的特定特征的复杂性,这种情况下复杂性通常是一目了然的。复杂性是指组合复杂性,这是当你将一个新特性与其他语言特性以任意可能的方式进行组合时所带来的复杂性。如果你没有从一开始就小心的设计,那么当你将一个新特性加入一种现存的语言中时,你无法控制该特性是怎样与其他现存特性进行 组合的。组合复杂性会产生恐怖的后果,特别是在加入了特性之后,这时再做任何事情都为时已晚。早餐结束后Josh说这类复杂性为Java的答疑解惑者提供 了丰富的素材,但是对于整个Java社区是有害的。

  Eckel认为他自己是一个“特性上瘾者”,总是思考语言在新特性方面的进化,但是现在他质疑如果一个特性不能被正确的实现,该特性是否应该被去掉 (例如Java的泛型)。Eckel认为C和C++都非常稳定,Java也应该稳定而不是追逐新的语言特性或者试图跟随所有的市场冲动。有些人提出了打破 向后兼容性的想法,他们认为那些希望使用老特性的人们可以使用老版本的Java而不要升级到新版本。Eckel对于不惜一切代价维护向后兼容性的风险做了 警告:

  如果由于向后不兼容而不能正确的插入特性,我们在语言变化的时候会受到很大束缚,Java现在的情形与C++相同。C++经常因 为它的设计受到批评,从C++标准委员会刚开始运转我就在其中工作,已经工作了8年,我看到了所有关于语言特性的辩论。这些语言特性不是变化无常的,而是 经过非常谨慎的而且深思熟虑的考量的结果。是向后兼容C语言产生了语言复杂性和困难性。一旦你在所有事情上都把自己与向后兼容绑定在一起,那么当你向语言 加入特性的时候必须做好语言被破坏的准备。如果Java不愿意打破向后兼容性,那么它就无法避免不打粮食的复杂性以及不完整的新特性实现。

  Eckel认为新的语言是放置主要新特性的正确场所,Scala是“当前Java最好的退出策略”。他还认为Java唯一的出路是成为象C那样的工具语言,将来只应该清理并丰富现在不完整的库,把主要的语言变化(例如闭包)留给其他语言,而不是加入Java中。

  Kevin Dangoor同意Eckel的观点,他说在需要向后兼容性的语言中加入新的特性也是笨拙的,他还指出在这一领域ECMAScript与Java有同样的问题。Dangoor还对于开发者始终要寻求新的、炫的特性来帮助项目的批判声音提出了质疑:

  软件是思考的成果。其可锻性很强且新的思想很容易测试。通过互联网,新的思想和代码传播的很快很远,这是好事情。对于我来说,现 在开发软件比5、10、15、20年前要好的多。我看到许多闪光的事物飞过,而没有真正的使用过它们。但是我认为这些闪光的事物是非常重要的,其中包含了各种各样的思想,可以使用不同的工具将其应用于不同的场景。一些出自这些思想的实现成为了主流。

  一般来说,人们不会转而使用所有从其身边 飞过的闪光的事物。有些人会认真的尝试这些事物,他们可能会成为成功的拓荒者或者遭受失败的痛苦而转向其他解决方案。如果有足够的人喜欢该思想并且推动它 的发展,那么该思想会成为主流。Rails是2004年闪光的新事物。毫无疑问,有一些早期的使用者遭受了痛苦,但是在那些岁月里,相对于使用其他工具的 人而言,更多的人因为使用Rails获得了非常高的生产率。不管最终有多少人接受了Rails,事实是自Rails出现以后,它的很多思想对工作产生了显 著的影响。

  Cay Horstmann 同样认为应该减少对Java语法的关注,增加对Java中痛苦之处的关注。Horstmann援引了C++,指出Java解决了C++碰到的两个主要痛苦之处,内存管理和GUI/数据库的访问。

  然而,Java现在需要解决它自己的痛苦之处:

  臃肿的代码 —— getter和setter方法,匿名类形式的事件监听器,可以由编译器推断出来的长的类型声明。

  Web应用开发 —— 这很难,用复杂的而且动力不足的技术,例如JSP和JSF来开发web应用“就像用叉子来喝汤”。

  并发 —— “我不够聪明,不能满怀信心的说我编写的重要并发程序不会有死锁,不会有竞争条件。这就象我不够聪明,不能满怀信心的说我编写的重要C++程序不会有内存泄露或内存破坏”

  其他观点:

  Phillip Cal?ado认为Java应该固定而不是继续扩展,但是不同意关于Java本身难以阅读的说法,他说在创建Java的时候,它比当时的语言,例如C++易于阅读

  Richard Relos认为 大多数Java代码不使用新的语言特性,增加新的特性仅仅分散了开发者的注意力,破坏了逻辑形式。

  Ian Cooper探讨了C#的问题,他质疑C#是否已经到达了收益递减的点,他同意主要新特性的去处应该是一个新语言

  Giovani Salvador担心如果Java不再增加新特性,它会过时,那么Java开发者会变成“恐龙”

【责编:Stephen】

IT咨询热线
相关文章
推荐文章
网络工程师:你是否真的已经倒下了?
一位高级网络工程师的成长经历之三专业
一位高级网络工程师的成长经历之二大展
一位高级网络工程师的成长经历之一储备
今天你“充电”了没
职场“烫手山芋”你敢接吗?
 
· Broland公司在中国设立教育授权管
· 领军全国嵌入式,ARM11重装上阵
· 解密美军集训营IT培训新模式
· 在职转行 不能打无准备之仗
· 软件人才需求引发培训市场火爆
· 专家支招应届生如何应对月薪不足
   IT专业技术认证是进入IT行业的“敲门砖”。前1T业界顶尖的认证证书往往与业界技术领先的科技企业直接挂钩,具体可以分成网络工程、软件研发、数据库、应用软件和多媒体等几大系列......
·[博客] 亚威高级Cisco培训
·[博客] 深圳信狮-北大青鸟全国十佳
·[博客] 沃尔夫Cisco培训
·[博客] 选择天盈隆,考试一步到位
· 全面解读IT行业人才选拔标准
· 做IT精英还是IT民工?
· IT认证与职场生存 那些经历过的人们
· 利剑出鞘 2008年九大最新热门IT技术

文章评论


频道热点TOP10
  • 此栏目下没有文章
  • 频道推荐

    2008全国IT人士外语有奖调查
    07思科新版CCNP认证体系攻略
    新版CCNA要来了 你准备好了吗
    红旗Linux(RCE)认证专题
    零距离接触MCSE认证专题
    Sun认证Java程序员考试专题
    计算机等级考试二级C语言
    计算机软件资格考试专题
    计算机软件水平考试程序员
     
    今日十大话题
     
    推荐圈子
     
    [Cisco圈] Cisco认证题库、中英文精选资料
    [Java圈] Java精选技术电子书下载
    [黑客攻防] 黑客攻防-电子书、视频免费专辑
    [网络管理] 由浅入深-网络管理电子书下载
    [网络安全] 网络安全电子书、视频下载专辑
    [Oracle圈] Oracle资料大奉送:笨鸟先飞
    [linux圈] 轻松学会linux-电子书下载专辑
    [win圈] 菜鸟进阶-windows电子书精品典藏
    [认证题库] Microsoft认证题库-精选电子书
    [SQL圈] SQL Server视频、电子书下载专辑
    IT认证专题

    本站提供国内外经典初中高级3DMAX专业教程.随着以计算机为主要工具进行视觉设计和生产...
    ·Oracle RMAN物理备份技术
    ·Windiws 系统备份与还原
    ·07思科新版CCNP认证体系攻略
    ·RedHat Linux认证(RHCE)专题
    ·全面剖析Linux文件系统
    10-18
    10-18
    10-18
    10-18
    10-18
    试题教程

    · Cisco官方模拟器中文教程
    · 局域网组建与维护实用教程
    · PC升级和维修大全(第四版)
    · Cisco官方CCIE R&S系列教材
    · CCNP/CCDP/CCSP题库
    · 用TCP_IP进行网际互联全集(第四版)
    · 网络与通信技术译丛 远程接入网络
    · 十二款操作系统安装全程图解
    · Ubuntu Linux实用学习教程
    认证动态

    · 计算机热催生IT认证热
    · ICDL呼吁提高IT认证含金量
    · IT认证黑幕:证书成"鸡肋"?
    · 获得IT认证后薪水可涨多少
    · 最有"钱途"的IT认证是什么
    · 专家指导:热门IT认证解析
    · IT培训:考证不能一劳永逸