HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

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

关注

评论

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

基于CSS mask和clip-path实现切角的技巧

南城FE

CSS css3 前端

vue数据代理

我搬去水星了

vue cli 11月日更 11月月更

开发者新手指南:一文汇总 Web3 开发工具

TinTinLand

区块链 开发者工具 代码 开发者, web3

2022前端笔试题总结

loveX001

JavaScript

VUE3+TS学习-项目搭建

肥晨

Vue3 脚手架 11月月更

Web 实时通信技术WebRTC

devpoint

WebRTC 11月月更

推特引入支付:马斯克的野心,Web3 的机遇

One Block Community

#区块链# 推特 web3 波卡生态

vue2双向绑定原理:深入响应式原理defineProperty、watcher、get、set

肥晨

11月月更 vue响应式 响应式开发

2022-11-10:写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率。 为了简单起见,你可以假设: words.txt只包括小写字母和 ‘ ‘ 。 每个单词只由小写

福大大架构师每日一题

bash Shell 福大大

谈谈企业级前端应用中通过 CSS 达到布局定制化的话题

汪子熙

angular web开发 SAP Fiori 11月月更

数据预处理和特征工程-数据预处理-编码与哑变量 & 二值化与分段

烧灯续昼2002

Python 机器学习 算法 sklearn 11月月更

谈谈企业级前端应用 UI 界面增强实现的一些实际案例

汪子熙

angular web开发 SAP Hybris 11月月更

Dive into TensorFlow系列(1)-静态图运行原理

京东科技开发者

人工智能 机器学习 tensorflow 动态图 静态图

算法题学习---判断链表中是否有环

桑榆

算法题 11月月更

简单概述理解vue的MVVM模型

张三丰无极

vue cli 11月日更 11月月更

自动化工具如何助力企业落地DevOps?

SoFlu软件机器人

Java 函数式编程

Ayue、

函数式编程

网课爆破是网络暴力的缩影,如何有效打击网曝行为

石头IT视角

服务网格:管理对外部服务的访问

Flomesh

微服务 Service Mesh 服务网格 程序员、

跟着卷卷龙一起学Camera--低延迟04

卷卷龙

ISP camera 11月月更

C++语言基础篇

叶秋学长

c++ 程序员 面经 11月月更

大数据技术&面试 资料分享

大数据阶梯之路

大数据 面试 数据仓库 资料整理 资料分享

kubespray2.11安装kubernetes1.15

程序员欣宸

Kubernetes 11月月更 安装k8s

【LeetCode】交替合并字符串Java题解

Albert

算法 LeetCode 11月月更

深入理解JS作用域链与执行上下文

loveX001

JavaScript

前端面试指南之JS面试题总结

loveX001

JavaScript

世界杯叠加购物节日,预计用户消费和品牌营销将迎来大幅增长

易观分析

泛内容

跟着卷卷龙一起学Camera--低延迟03

卷卷龙

ISP camera 11月月更

如何使用netlify部署vue应用程序

肥晨

11月月更 网站托管 netlift

深入理解Metrics(五):Timers

冰心的小屋

Java metrics Timers

Java中的ArrayList类基础使用

共饮一杯无

Java ArrayList 11月月更

Ruby 1.9发布_Ruby_Rick DeNatale_InfoQ精选文章