InfoQ

新闻

Ruby x 敏捷: Matz探究Ruby与敏捷开发的关系

作者 Sam Aaron 译者 高昂 发布于 2007年6月18日 上午12时0分

社区
Ruby,
Agile
主题
敏捷技术
标签
LISP,
Python

Ruby语言的创始人松本行弘(Yukihiro Matsumoto/Matz)最近在一个六集视频短片中的第一集中出镜,在短片中讨论了Ruby语言和敏捷方法论之间的关系。与Matz同时出现在视频短片中的还有平锅健儿(Kenji Hiranabe)和角谷信太郎(Shintaro Kakutani)。平锅健儿是一位极富热情的敏捷方法鼓动者,并且也是许多极限编程和敏捷开发相关书籍的日文版译者。角谷信太郎则是一位Ruby语言的忠实的拥护者。

在视频短片的第一集中,着重分析了Java语言、Ruby和敏捷之间的关系。谈论的焦点集中在他们为何确信Ruby与敏捷方法可以很好的进行结合,以及这两者如何为软件开发提供了更为人性化并且限制较少的实现方式。短片以每人各自描述在五年中对于上述技术相互关系的体会作为结束,他们一致认为Ruby将在实际业务中得到大量的应用:

“我起初使用C++语言编程,并且怀疑Java是否可以真正在商业应用中得到推广,因为Java语言运行在虚拟机之上而并非与系统直接交互,但随着CPU性能提升与网络带宽的增加,这使得虚拟机超越了性能方面的限制,最终使Java在实际应用中得到普及。我确信同样的情况也将发生在Ruby语言之上,使Ruby将很快在商业应用中得到普及和推广。”

短片是以对照Java、Ruby和敏捷方法的发展年表来展开内容,并在Java固有特性和非敏捷的开发方法论之间进行了一些有趣的对比。其中一个例子就是Java的实体Bean:

“在某种意义上说,EJB是在旧的关系数据库封装之下的庞大产物,其配置是复杂和冗余的。”

发展年表比较了技术发展之间的联系,并且提供了探究Ruby语言与敏捷方法相互关系的平台。他们还讨论了Dave Thomas和Kent Beck这样的关键人物所担任的角色,例如2000年镐头书的引入,2001和2002年敏捷方法的初始“泡沫时期”等。之后他们谈论了在Ruby语言和敏捷方法领域内显而易见的“共同繁荣”现象,正是Ruby语言使用率、在社区中的宣传和相关书籍文献这三个方面的大幅度增长,昭示了这个繁荣现象。

当被问及短片标题的含义时,平锅健儿这样解释道:

“原先定义的标题是Ruby + Agile,但是最近在日本,“x”(乘号)是一个非常酷的用法,代表“versus”的含义,常被用在讨论之中,当然其所代表的含义要比符号 + 更为广泛。”

像这样的对比并非是第一次出现。在近期的RailsConf大会上,Alan Francis就Rails框架与极限编程思想也做出了同样的对比。就像Rails的创始人DHH所说的那样,Alan站在了更高的方法层面和高度探索了这些相似性。

视频短片系列的第二和第三部分的大致内容如下:

  • Part 2:业务处理框架语言(Business-Process-Framework-Language)的反响及原因
    • 2-1:从CPU性能到个人能力的转化的关注
    • 2-2:敏捷方法和市场的契合
  • Part 3:具有Ruby特色的(Rubyishness)
    • 3-1:是什么使得Ruby具有Ruby的特色(Rubyish)?
    • 3-2:Ruby从Lisp中继承了哪些特性,摒弃了哪些特性?
    • 3-3:Lisp、Python和Ruby语言

目前他们正在录制短片的4至6部分。第一集的视频可以在这里在线收看。

查看英文原文:Ruby x Agile: Matz explores the relationships between Ruby and Agile

深度内容

模块化Java:声明式模块化

本文是模块化Java系列文章的第4篇,介绍的是声明式模块化。文中描述了组件如何以声明的方式来定义并组织在一起,而无需让代码依赖于OSGI API。

Ian Robinson和Jim Webber谈论基于Web的整合

本采访是在伦敦举行的QCon2009上记录的,Ian Robinson和Jim Webber探讨了如何将Web作为整合平台以及REST在理论上和实践中的好处。

项目管理修炼之道(精选版)

项目管理对于项目成败至关重要,但实践中每个项目都有自己的独特性,没有现成的解决方案可以套用。书中从应对实际风险的角度出发,讲述了从项目启动、项目规划到项目结束的整个管理流程,展示了作者的思考过程。本迷你书从原书中精选出5个章节。

那是鸟,还是飞机?不,那是超人!

在这个演讲中,Fred将会揭示敏捷的一些外在因素,并会重点关注敏捷获得成功的内在原因。从案例研究和真实的项目经验来看,Fred认为:工具、管理体系都不能让你变得敏捷。敏捷的成功,植根于士气高涨、充分授权的工作者身上,他们能够以不同以往的方式思考问题。

访谈和书摘:Eben Hewitt的新书《Java SOA Cookbook》

Java SOA Cookbook

Eben Hewitt的新书《Java SOA Cookbook》从Java实现的角度讨论了面向服务架构。Eben在书中讨论了SOA基础、工具、最佳实践和SOA治理等主题。

Mark Richard的《Java消息服务》第二版

Mark Richards的新书《Java消息服务》第二版覆盖了JMS的许多主题, 包括发布和订阅模式以及点对点模式,消息过滤和事务等。InfoQ与Mark谈论了跟他的新作。

模块化Java:动态模块化

本文是“模块化Java”系列文章的第三篇,讨论动态模块化,内容涉及如何解析bundle类、bundle如何变化、以及bundle之间如何通信。

让测试也敏捷起来

对于测试组织来说,敏捷方法带来的快速迭代却让测试本身变得困难起来:缺乏“足够详细的文档”,缺乏“仔细设计用例的时间”等等。在本演讲中,段念将与大家探讨如何在敏捷过程中进行测试。