10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

当 Ruby 比 Java 构建还快:Buildr

  • 2007-05-21
  • 本文字数:1422 字

    阅读完需:约 5 分钟

Java 构建系统 Maven 1.0 于三年前发布,并且已经在开源世界和行业内得到广泛采用;其后,2.0 新的发布却并没有得到同等的赞誉。与此同时,Ruby 变得越来越流行,而且通过像 Rake 这样的工具证明,内部 DSL 的概念是非常有效的。

另一方面,用通用语言编写的 DSL 即可运行。通过计算机所能达到的计算限度的扩展能力,你还能获得高级语言的简便性。

随着时间的过去,完全新的构建系统已由 Ruby 写成,比如 Bake Rant 。还有些构件系统扩展了 Rake,比如 Raven ,像 Maven 一样它也支持外部存储。在这些系统中有个新的加入者, Buildr ,尤其致力于简化 Java 构建。作者 Assaf Arkin 提倡建立能精简 XML 化和过度工程化的解决方案,你可以在他的blog 或者他收集的 tumblr 引证中找到相关证据。这就是为什么他试图从他的项目中,比如 Apache Ode ,去掉 Maven2 的原因。

我们很快给它起了个绰号叫“Maven 不可靠原则”,虽然公平一点说,我们知道它并没有什么不可靠,或者只是怀疑这个构建是否会运行:它不会。但最终,也许有一天我们获得了足够多的理由。测试案例停止运行。(……)总之,我们不得不做出选择。是敏捷还是 Maven,必须使用它们其中的一个。

Assaf 曾想到回到 Ant:

于是我们开始想像没有 Maven 的幸福生活。也许我们应该转回到 Ant?即使它有那么多缺点,但至少 Ant 构建可以运行。当然,Ant 是不可声明的,而这是所有软件开发者的圣杯所在。但错误地使用声明性比任何套管程序(注:结构非常复杂的程序)还要糟糕。

……最终还是选择了 Rake。

因此我们做到了,开始使用 Rake。让我给你说说我的遭遇。Rake 被证明是个非常棒的选择,它是个好的开始,但这并不是我们原本所期望的。我们运行的典型 Java 应用由一些模块组成,所有模块都有相同的普通生命周期任务:编译、测试、打包、部署。为每一个模块一遍又一遍地编写那些代码使得这并不比 Ant 好多少。我们有了一个更好的办法。

传奇(Saga)导致了 Buildr 的诞生,它具有容易实现的目标(也就是处理 XMLBeans),并允许你依据普通的 Ruby 代码来完成基本的任务。性能可能是阻止 Buildr 得到更广泛采用的最后障碍,但“快速而猛烈的”Buildr证明自己是能够和Maven 竞争的 。 > 我们正在构建相同的代码,运行相同的测试,编译相同的XMLBeans,创建相同的Hibernate schemas,共享相同的远程和本地数据存储。所有的这些是想说明,它们是功能相当的黑盒。给它们相同的项目,他们就能产生相同的JAR、WAR 和分发文件等。

它能构建相同的项目,但脚本从52 个泛滥的XML 文件缩减到只剩一个脚本,缩减率达91%。但这还不是全部,Buildr 设法把构建时间减少了50%!即使是部分构建,Buildr 执行也类似或好过Maven。 > 当然,我们不是在估测原生的Ruby 和纯Java。我们在比较一种实现和另外一种实现,它们完成的是相同的任务,黑盒是相当的。这是一个真实的基准对比。

Assaf 以一个非常好的总结结束了采访:

Ruby 可能会比较慢,但你通过它构建的应用可能非常非常快。

我们可以想像,看到 Maven 和 Buildr 短兵相接是多么有趣的事情。 这篇文档目前仅限于 RDoc 和一个 Apache Rakefile 示例,但有个完整的指南正在编写中。

查看英文原文: When Ruby Builds Faster Than Java: Buildr - - - - - -

译者简介:张凯峰,在 Java 和 Web 开发方面略有心得,现在 IBM 中国软件开发中心(CSDL) 从事 Lotus Forms 的 SVT、Automation 相关工作,曾参与译著《 Ajax 实战》。与 InfoQ 中文站分享内容,请邮件至 china-editorial@infoq.com

2007-05-21 21:092194
用户头像

发布了 127 篇内容, 共 47.8 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

外卖大战背后,天润融通AI客服系统让回应不再“裸奔”

天润融通

速看!最新学历厂名单曝光!

王磊

区块链Web3系统的开发方案

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

火山引擎 EIC 解析:构建以 KVCache 为中心的推理新基建

北京中暄互动广告传媒有限公司

通过最严时序标准,再登产业图谱榜首,TDengine 在可信数据库大会荣获双荣誉

TDengine

tdengine 时序数据库 tsdb

《BOE解忧实验室》第四季重磅回归:以创新科技点亮中国地标

爱极客侠

小白也能做OS运维:阿里云操作系统控制台助你轻松解决三大运维难题

阿里云基础软件

操作系统 系统运维 智能运维 运维痛点

基于跨话语重评分的包容性语音识别技术

qife122

语音识别 图神经网络

区块链Web3系统开发的技术框架

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

重塑AI算力底座!阿里云服务器操作系统V4正式发布

阿里云基础软件

AI 操作系统 Alibaba Cloud Linux 阿里云服务器操作系统V4

熔断器+重试机制,微服务容错的终极武器?一线设计实战全解析!

我爱娃哈哈😍

【信创小知识】信创产品是国产的吗?还是进口的?

行云管家

信创 信创国产化 信创化

捷途汽车全球总部新落子,彰显品牌势能 聚力跨越3.0时代

科技热闻

“大模型”技术专栏 | 和鲸 AI Infra 架构总监朱天琦:大模型微调与蒸馏技术的全景分析与实践指南(上)

ModelWhale

大模型 AI教育 和鲸

MyEMS开源能源管理系统核心代码解读024

开源能源管理系统

开源 开源能源管理系统

得物向量数据库落地实践

得物技术

数据库

看阿里云操作系统控制台如何一招擒拿网络丢包

阿里云基础软件

操作系统

Sentieon 项目文章 | 偏远社区原住民澳大利亚人的血型基因组图谱

INSVAST

基因数据分析 Sentieon 变异检测 基因变异检测 生信分析服务

MyEMS开源能源管理系统核心代码解读025

开源能源管理系统

开源 代码解读 能源管理系统

ARR 2.8 亿美元,AI 财务助手 Cleo 新增主动 AI 和语音交互;面向实时响应场景,混元开源四款小模型丨日报

声网

JetBrains TRAE 插件上线 cue 能力,立即体验

北京中暄互动广告传媒有限公司

CST软件2023版新功能介绍1:EMI接收机仿真

思茂信息

cst cst操作 cst电磁仿真 CST软件 CST Studio Suite

麻醉科主任为何不再深夜被叫醒?

斯科信息

斯科信息 RFID技术 RFID智能药柜

7 月热搜精选

KaiwuDB

HarmonyOS SDK使能美团高效开发,打造优质创新应用体验

HarmonyOS SDK

HarmonyOS NEXT HarmonyOS SDK应用服务

留资率翻倍、承接率达85%,天润融通让AI去接待客户,效果更好了

天润融通

可调量子神经网络在离子阱与超导硬件上的基准测试

qife122

机器学习 量子计算

TRAE + Milvus MCP,现在用自然语言就能搞定向量数据库部署了!

北京中暄互动广告传媒有限公司

等保服务定义以及流程详解-行云管家

行云管家

网络安全 等保 等保测评

强化学习在广告推荐中的技术应用

qife122

推荐系统 强化学习

哈尔滨工业大学教授苗东菁:AI Agent 与多模数据库

数新网络官方账号

当Ruby比Java构建还快:Buildr_Java_Sebastien Auvray_InfoQ精选文章