写点什么

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

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

关注

评论

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

week 13 学习总结

Geek_2e7dd7

19.解决 Flink 升级1.11 报错 No ExecutorFactory found to execute the application

小知识点

scala 大数据 flink

USDT承兑商币支付系统搭建,USDT跑分承兑商app

第4周总结

Vincent

极客时间 极客大学

新基建夯实粤港澳大湾区高质量发展基础

CECBC

区块链 人工智能 大数据

第三周作业

Vincent

极客大学

用 Python 实现一个简易版的 Pong 游戏 (二)

Matrix Chan

Python Python Turtle Python 游戏编程

甲方日常 9

句子

Java 运维 工作 随笔杂谈 日常

解Bug之路-串包Bug

无毁的湖光

redis socket Java 分布式

媒体电视台跟进,船长梁晓玲平台拉人头卖课引起多方报道!

成周

敏捷教练的软技能

研发管理Jojo

软技能 敏捷教练 引导者

java安全编码指南之:表达式规则

程序那些事

java安全编码 java安全 安全编码规则

为什么我的缓存设置在chrome中不生效

书虫

chrome 缓存 浏览器 HTTP

深度解析!--阿里开源分布式事务框架Seata

攀岩飞鱼

分布式 分布式事务 微服务 分布式锁 Seate

万字长文 | 23 个问题 TCP 疑难杂症全解析

yes

TCP 计算机网络

就靠这几段代码,带你玩转rpc通信协议,不信你学不明白

小Q

Java 架构 面试 RPC 网络

oeasy 教您玩转 linux 010207 黑客帝国 matrix

o

干货!如何平稳用户无感知的完成系统重构升级

X先生

架构 运维 后台

通证与通证经济你真的理解吗

CECBC

区块链 通证经济

Spring 5 中文解析测试篇-集成测试之概要和注解

青年IT男

单元测试 Spring5

JavaScript七大语言类型你知多少?

Walker

Java 大前端 编程语言

面试不会微服务没关系,跟着我4天学会微服务!

小Q

Java spring 架构 分布式 微服务

第4周作业

Vincent

极客时间 极客大学

数据质量管理工具的意义和定位

苏槐

数据治理 数据质量管理 数据质量平台

Docker 容器编排利器 Docker Compose

哈喽沃德先生

Docker 容器 微服务 Docker-compose

week13 作业

Geek_2e7dd7

第三周学习总结

Vincent

极客大学

架构师训练营-week13-作业

晓-Michelle

极客大学架构师训练营

面试官:TCP/IP 协议到底在讲什么?想彻底搞懂TCP协议:还得从 TCP 三次握手四次挥手说起

编程 程序员 互联网 面试 计算机网络

嘿,我想要寄一封挂号信,收件时间是 6 年后,标题是: 让 6 年后的我,加倍奉还。

叶小鍵

学习 成功学 心理学 李笑来

【原创】经验分享:一个Content-Length引发的血案(almost....)

一枝花算不算浪漫

Ruby 1.9发布_Ruby_Rick DeNatale_InfoQ精选文章