2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Ruby 1.9 发布

  • 2007-12-29
  • 本文字数:1194 字

    阅读完需:约 4 分钟

2007 年圣诞节刚刚过去,Ruby1.9如约而至

在以往的Ruby 版本中,如果版本号的最后一位为奇数,通常都表示该Ruby 版本为实验版本。所以Ruby1.7 就是一个实验版本,而Ruby1.8 则是一个正式版本。Ruby 核心团队遵循这一规则,将Ruby 的新发布版命名为1.9.0。这意味着Ruby 1.9 不再被认为是实验性版本,虽然其实现到达产品应用的要求尚需一些时日。Matz 表示仍会继续改进 1.9 版本的稳定性。不过 Ruby1.9 的语言定义现在已经稳定下来了,今后也不会再向其加入实验性的特性。包括 Rails 在内的主要 Ruby 项目,已经着手进行 Ruby1.9 的兼容工作。更多这方面的信息可以在下面看到。

Ruby1.9 引入了大量变化和新特性,其中许多都非常自然。例如在向方法传递 hash 参数时,新的 hash 语法格式可以使您不再需要书写“=>”。所以一个像下面这样的调用:

link_to :controller => 'People', :action => "list"现在可以写为:

link_to controller: fred, action: "list"关于 Ruby1.9 版本相对于 1.8 版本的变化信息,最佳的资源一直是 list kept by Mauricio Fernandez 。Mauricio 已经通过人工方式追踪这些变化有近两年的时间。最近他还宣布他将在稍后发布一个通过自动分析版本变更日志生成的新列表

另一个有趣的变化是,一些诸如 Ruby Gems这样的重要 ruby“外部”工具现在也成为了标准库的一部分。

也许最大的变化的还是在内部。Ruby1.9 实现于一个新的 Ruby 虚拟机之上。比起 Matz 团队在之前版本实现中所使用的旧式抽象语法树 (abstract syntax tree,简称 AST) 解释器,这一新的虚拟机要高效的多。YARV 同时在并发方面进行了调整:Ruby 现在使用内核线程(即便由于全局解释器锁的存在,Ruby 代码不会并行执行);此外, Fibers 对延续机制(Continuations)进行了更新并将协同程序(Coroutines)引入到了 Ruby 中

另一方面,Ruby1.9并不向后兼容 Ruby 1.8。一些语义已经发生了变化。例如,块(block)中的参数现在的作用域被限制为块内部,块的语义也有了一些微调。这些变化意味着现有 Ruby 程序需要做出一定的改写后才能使用 Ruby1.9。

Ruby 图书出版商们正在加紧工作。Pragmatic Programmers 最近宣布《Programming Ruby》的第三版(著名的“镐头书”)正在写作过程中。和Pragmatics 的惯例一样,这本书已经以beta 项目方式发布出来,供读者们试读。O’Reilly 也宣布说由 David Flanigan 和 Yukihiro Matsumoto 撰写的《The Ruby Programming Language》一书有望在 2008 年 1 月发布。这本书将对 Matz 的《Ruby in a Nutshell》进行扩展,使其包含 Ruby1.9 的相关内容。

查看英文原文: Ruby 1.9 released - - - - - -

译者简介:马家宽,北京大学软件工程实验室博士研究生,研究方向为过程管理(Process Management)。专业方面的目标是领悟一点软件开发中理论、技术、实践和人这些关键要素的结合之道。参与 InfoQ 中文站内容建设,请邮件至 china-editorial[at]infoq.com

2007-12-29 00:551217
用户头像

发布了 24 篇内容, 共 43832 次阅读, 收获喜欢 0 次。

关注

评论

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

分布式锁—Curator的分布式锁

不在线第一只蜗牛

分布式

以认证VMO实践者身份引领企业敏捷性新时代

ShineScrum

项目管理 敏捷、

SD-WAN方案可以解决哪些企业网络问题?

Ogcloud

SD-WAN SD-WAN组网 SD-WAN服务商 SD-WAN厂商 SD-WAN厂家

vArmor:云原生容器安全的多场景应用实践

字节跳动开源

容器安全架构 零信任隔离 运行时防护 漏洞缓解实践 轻量级沙箱

1688商品列表API接口全面解析

代码忍者

1688API接口

谷云科技iPaaS产品3月更新速递|API计费、AI助手功能持续升级

谷云科技RestCloud

AI API 数据集成平台 ipaas

通过Func实现告警多通道发送权重管理

观测云

监控告警

Manus哪有那么神秘,Jeecg的AI流程编排都可以实现

JEECG低代码

AIGC JeecgBoot AI流程 Manus

网易邮箱如何用大数据任务调度实现海量邮件数据处理?Apache DolphinScheduler用户交流会上来揭秘!

白鲸开源

开源 Apache DolphinScheduler Meetup

如何挑选项目管理工具:15款系统的全面对比分析

易成研发中心

项目管理工具

伟世通×火山引擎:端云协同让座舱更智能

极客天地

BI 工具响应慢?可能是 OLAP 层拖了后腿

镜舟科技

OLAP BI StarRocks 湖仓一体 镜舟数据库

深度测评国产 AI 程序员,在 QwQ 和满血版 DeepSeek 助力下,哪些能力让你眼前一亮?

阿里巴巴云原生

阿里云 AI 云原生

深度测评国产 AI 程序员,在 QwQ 和满血版 DeepSeek 助力下,哪些能力让你眼前一亮?

阿里云云效

阿里云 云原生 通义灵码 AI程序员

万字长文手把手教你实现MicroPython/Python发布第三方库

不在线第一只蜗牛

Python

DApp开发全解析:构建去中心化应用的流程与实践指南

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

Apache DolphinScheduler项目2月份进展总结

白鲸开源

Apache DolphinScheduler Open Source

同行:我所认识的女性AI从业者

脑极体

AI

如何基于LLM及NL2SQL打造对话式智能BI助手

行云创新

AI智能体 NL2SQL 自动生成SQL

数据分析与AI丨AI Fabric:数据和人工智能架构的未来

Altair RapidMiner

人工智能 AI 数据分析 知识图谱 RapidMiner

Go 语言常见错误——字符串

FunTester

如何高效爬取淘宝天猫商品数据?【官方API与非官方接口全解析】

Geek_9dbf95

批量获取企业数据 开放 API 电商api接口 免费测试 淘宝天猫

SD-WAN是种怎样的网络技术?可以在哪些行业应用?

Ogcloud

SD-WAN SD-WAN组网 SDWAN SD-WAN厂商 SD-WAN厂家

未来交易,触手可及:全新交易所开发蓝图

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

Ruby 1.9发布_Ruby_Rick DeNatale_InfoQ精选文章