写点什么

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:55988
用户头像

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

关注

评论

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

第83期 | GPTSecurity周报

云起无垠

阿里云通义实验室自然语言处理方向负责人黄非:通义灵码2.0,迈入 Agentic AI

阿里云云效

阿里云 云原生

3D打印市场爆火,纵维立方新品S1C一分钟售罄

新消费日报

HarmonyOS Next 端云一体化(3)

万少

HarmonyOS NEXT 端云一体

AI智能口语练习APP的开发

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

软件外包公司 AI口语练习 AI英语学习

AI口语纠正的技术框架

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

软件外包公司 AI口语练习 AI口语纠正

AI技术在语法讲解APP开发中的应用

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

软件外包公司 AI英语学习 AI语法练习

阿里云 Serverless 助力盟主直播:高并发下的稳定性和成本优化

阿里巴巴云原生

阿里云 Serverless 云原生

阿里云通义实验室自然语言处理方向负责人黄非:通义灵码2.0,迈入 Agentic AI

阿里巴巴云原生

阿里云 云原生

【YashanDB知识库】YFS_修改AU_SIZE参数

YashanDB

数据库 yashandb

项目变更的范围包括哪些方面

易成研发中心

项目管理 项目管理工具 项目变更

京东店铺所有商品接口系列(京东API)

tbapi

京东API接口 京东店铺所有商品接口

【YashanDB知识库】YashanDB到YashanDB手工元数据迁移

YashanDB

数据库 yashandb

【YashanDB知识库】YashanDB备份恢复的两种渠道

YashanDB

数据库 yashandb

用友畅捷通在Flink上构建实时数仓、挑战与最佳实践

Apache Flink

大数据 flink 实时计算 实时处理

项目管理工具推荐:8款替代Trello的热门选项

易成研发中心

项目管理 项目管理工具

《CPython Internals》阅读笔记:p221-p231

codists

超越 RAG:Memobase 为 AI 应用注入长期记忆丨社区来稿

声网

世界500强魏桥集团携手用友共探数据智能新未来

用友BIP

企业数智化 用友BIP 用友软件 魏桥集团 世界500强

云、数、AI融合下低代码技术对建筑企业数字化转型的赋能

不在线第一只蜗牛

人工智能 云计算 数字化

【YashanDB知识库】YashanDB 单机一主一备自动切换

YashanDB

数据库 yashandb

【YashanDB知识库】YashanDB获取统计信息

YashanDB

数据库 yashandb

行业分享|AI+仿真,重塑前端设计研发价值(一)

Altair RapidMiner

机器学习 AI 智能制造 仿真设计

拥抱创新科技,探寻体育变革之路—— 第二届LALIGA EXTRATIME体育行业论坛在京成功举办

新消费日报

Univer go 无需搭建环境,一键部署私有化的表格系统

梦数技术团队

Python JavaScript 数据库 AI spreadsheet

国有资本经营预算走向硬约束,国企预算体系升级正当时

用友智能财务

企业 数智化 会计 财会

Ruby 1.9发布_Ruby_Rick DeNatale_InfoQ精选文章