科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Ruby,Java的劲敌?2

Ruby,Java的劲敌?2

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

是否Ruby将横扫Java?不仅仅是虔诚的Ruby狂热者在预言这个场景。开发人员的需要观点, 就像Venners提出的“手上对工作最优的工具”。 至关重要的是,开发人员必须对正确理解和使用这些工具负责。

来源:IT专家网 2008年6月2日

关键字: 劲敌 RUBY java

  • 评论
  • 分享微博
  • 分享邮件
Robert Cooper:带上利器

  ONJava的博客Robert Cooper最近在他的blog上撰写了

  “It's the End of the World as We Know It."”来回应一些“Java时代末日”的言论。Cooper是亚特兰大地区致力于企业集成和web/web服务应用的J2EE开发人员,同时也是资讯和娱乐站点screaming-penguin.com的经营者。

  1,你曾经说过“长期以来‘企业级’Java一直未能逃脱的一个很悲哀的事实是500个应用才需要‘企业级’的功能。”为什么Java开发人员采用了比他们实际需要更加复杂的框架?

  好的,有一些因素导致了这样现象。一个是“buzzword compliance”. 你想使用你“应该”要使用的东西。我记得在99年一些大项目采用了entity bean作为数据模型,但是我们很快发现了性能是如此的恐怖以致于我们最终又转到了手写的DAO层。

  最近对javax.persistence的修改,一定程度也表明了,EJB的失败一直都是缺乏不同级别的支持。理想的情况是,如果我仅需要基本的,简单的ORM-类型功能,我就能够很快的得到。如果我想深入真正复杂的东西,给我一个“更深层”的有分布式事务的视图。然而,尽管在那样高的层次上,在EJB1.1/1.2的世界里,看看你需要多少行代码1)从JNDI获得Home存根,2)做一个find by,3)做改变,4)提交事务。对于一般的应用,答案没有理由只应独一无‘二’。然而更新颖的Java框架(阅读:Spring + Hibernate)使你获得了那一个‘二’,但是你也要做一大堆的配置。那样,很多方面, 混淆了你的代码。大量的因素促成我我的演说“拥有一个有效的默认配置/操作”,但是那是不同的故事了。

  2,你一向不屑把Ruby on Rails看作是technorati中的后起之秀。你是根本就不想接受还是只是厌恶这种夸夸其谈呢?

  并不是我真的这样不屑。Rails在很多重要的方面来说非常优秀。事实上,如果PHP是那要死的飞行意粉怪,并且要给Ruby替代,我想那将是一个大进步。然而,尽管Ruby确实扫除了过去的错误,它仍然缺乏Java那么多的功能,但是Ruby为快速开发提供了一个引人注目新的开发模型。你可能反对,这仅仅是时间问题,假以时日,它一定可以的。然而,我对Ruby/Rails有一些敌意, 是因为我一些一直都在希望java能够拥有的特性,一直长期希望J2EE能够拥有简单性。

  3,那么是什么促使你继续留在Java阵营,你看中它的什么呢?

  按照我日常的工作,在400上没有必要使用Ruby调用PCML/RPG程序。同样,那些大量的java拥有的 “企业级”特性很重要,更不用说它是一个统一的打包和部署的框架。

  4,你说“然而,Java像是变成了无所不包的了,它不是‘web的语言’,也不是桌面应用的‘一等公民’。”Java是否应该放弃一些野心,专注在一个更小应用空间集合里?如果那样,放弃哪个?

  你也知道,我在我的站点上和一个绅士有很长的讨论。他指出了Java在J2ME世界的成功,TME/TiVo,置顶盒--或许是下一代DVD的混战。这些对于开发来说都是有效的领域,但是我认为如果Java变成了这样的一个系统,那将是一个损失。

  使我恼怒的是Java发明的“applet”,你看看Flash(加上Flex/Laszlo),它的“Cool”(快速的用户体验)和“强大的”(我免费的得到数据绑定/SOAP/XML-RPC等等)使applets无地自容。“强大的”缺不需要JRE的事实立马扼杀了applet的生存空间,如果有人能以接近数目的代码行数向我展示Laszlo Dashboard demo,我可能已经在那个方面得到了一个核心发展。Cool是需要很大的代价的.

  5,Java越来越多的复杂性,越来越多的竞争框架,这是你之前批评很多次的。我们用JDK 1.2的语义编码,手工编写servlet是不是更好呢?

  我认为的复杂性是很难管理。例如,如果你从一个VB背景开始关注使用Swing,那是非常令人难受的。当你需要做一些技巧性的东西,没有一个“简单”接口可以Cast成更加“高级”的接口。坦白的说,最近出现的一个有用的东西就是JAX-P了。在我头脑中,还有一些东西jre没有的,但是却是必须存在的。Swing存在有多久了?然而还没有东西可以给你像VB5的数据绑定表格控制的功能。

  我想JDK 1.5的提升是非常显著的。当我谈到“降低复杂性”,我真正指的是A)对于一件事情, 给予更多标准的途径来完成,因此如果我真正需要一些不同的特性,我仅仅需要一个外部的框架。B)设计更加友好的API――认真的说,看看JavaMail的JavaDoc,看看研究出如何发送一个HTML格式的email要花费你多长时间。C)增加更加通用的功能到核心运行环境,提供一个可以分别与基于Flash,RIA和桌面领域的Avalon/Sparkle相比拟的风格和性能。同样的,我记得以前天真地从VB/VC++转到Java世界,想道“天哪,本来一直就应该是这样的。”几年前,我不能说我看到任何增加到Java的东西都是和我有同样的想法(除了将要来临的JAX-WS API)。看看Rails,你会有同样的感觉。看看Flex你也有同样的感觉。看看Avalon你也有同样的感觉。不是我不喜欢Ruby,只是看上去Java不再可以与时俱进让我很沮丧。

Bill Venners:发行人的观点

  Artima是很多Java开发人员高度关注的站点。长久以来它的发行人Bill Venners是一个Java著作者和顾问。同时也是一个JavaWorld的专栏作家,Inside the Java Virtual Machine的作者。所以,当我们注意到Artima上的Ruby内容,我们必须找出背后的故事。

  1,Artima在很多人眼中一直都是作为一个Java站点,但是你刚创建一个一个新的Ruby版面, Artima当今很多的特色文章都是关于Ruby的,是什么促使了这种改变?

  没有改变。Artima曾经是一个清一色的Java站点,但是几年前我们扩展了更一般开发焦点,开始涵盖其他语言。例如,我们开始在“Python Buzz”集成Python Blogs,在“The C++ Source”刊发C++文章。我们创建了Ruby Code & Style简报来作为Ruby社区通过高质量,编辑的文章分享信息的地方。

  2,你是否认为你的Ruby报道是作为一种趋势,或者服务已作出改变的开发人员?

  我们创建Ruby简报仅仅是为了服务Ruby社区。我不知道是不是有一个趋势,我也没有看到很多Java开发人员转到Ruby。人们并不只是仅仅需要用一种语言编程。我想掌握一种系统语言是有好处的,例如Java或者C++,和一种脚本语言,例如Ruby或者Python,而且能够用两者工作。那样的话你就可以使用你手中最好的工具来工作了。

  3,你的最初少数Ruby文章几乎没有涉及Rails。你是否认为Rails背后有一个大的Ruby故事?你还知道有什么东西使用了Ruby?

  除了知道Rails在市场上很有卖点,我对Rails了解的不多。Rails商人一遍又一遍传递了这样的一个信息,就是Rails能够助你很快的创建web应用。每个人都很清楚的收到了这个信息。我认为这是一个非常好营销工作。我也相信这个信息,但是快速的创建一个web应用不仅仅是人们所关心的。有时人们也关系与数据库的集成,应用服务器的集群,在这种情形,其他工具可能比Rails更有效率。就Ruby而言,我认为它是一种适合脚本和创建系统的多用途的编程语言,与Python同种类别。

  4,即使在Rails以前,对比于其他“敏捷”语言,人们都谈论到Ruby独特的吸引Java开发人员。你认为Ruby有什么特别之处呢?为什么它对于Java移民这么好?

  我不相信将会有很多Java移民或者Ruby尤其适合Java程序员。现在大肆宣称围绕着Ruby,或许是因为Rails的买卖,所以或许你印象中的移民就是来自于那些宣称的印象。Ruby是一种好的语言,但是Java也是,Python也是。

  5,你是否认为我们将会看到很多Java开发人员开始学习Ruby或者转到Ruby,或者我们将看到一个新一代直接跳过Java而用Ruby代之?

  Java不会离我们而去。在Artima,我们选择了Java作为新的体系架构,而不是Ruby,或者Python,就是因为它是一个成熟的拥有免费和商用的大量工具和API的生态系统。相对于Java,是的,当使用Ruby或者Python编程的时候是有一些速度的提升,但是有了现代的像IntelliJ,Eclipse和NetBeans的 Java IDE,你可以在Java里走的更快。但是用Ruby编程是很惬意的,同时,如果有人可以从Ruby中找到他们的职业生涯,那么请全力以赴去实现。

  结语

  是否Ruby将横扫Java?不仅仅是虔诚的Ruby狂热者在预言这个场景。开发人员的需要观点, 就像Venners提出的“手上对工作最优的工具”。 至关重要的是,开发人员必须对正确理解和使用这些工具负责。也就不难看出Coopper对于EJB 1.0的大肆宣称的记忆和Davidson的预言“如今很有可能有很多垃圾的Ruby on Rails应用在编写中”的联系了。无视技术,让市场的浪潮冲走是很危险的。不仅如此,很多人正在告诉我们使用Ruby会有相当大的效率提升,它确实是一个理想的工具,因此我们应该给予一定的关注。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章