如何 0 成本启动全员 AI 技能提升?戳> 了解详情
写点什么

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

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

关注

评论

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

微信视频号强制置顶朋友圈:盈利不可牺牲用户体验

石头IT视角

Dubbo-go Client端调用服务过程

apache/dubbo-go

dubbo dubbo-go dubbogo

文科妹子都会用 GitHub,你这个工科生还等什么

沉默王二

GitHub

当人脸识别对准执法者,AI的应用边界博弈

脑极体

数据结构与算法系列之递归(GO)

书旅

数据结构与算法 Go 语言

一个技术总监的忠告:精通那么多技术,你为何还是受不到重用?

四猿外

程序人生 技术管理 加薪 职场成长 源码阅读

架构师训练营第 1 期第 8 周学习总结

好吃不贵

极客大学架构师训练营

甲方日常 47

句子

工作 随笔杂谈 日常

Spring bean 加载顺序导致的 bug 问题

AI乔治

Java 架构 Spring Boot

甲方日常 48

句子

工作 随笔杂谈 日常

2020双11:每秒58.3万笔!阿里云又扛住了!

云计算 互联网 运维 云原生 科技

如何预防工业物联网中的恶意攻击?

VoltDB

大数据 数据分析 5G 工业互联网

当我们在讨论实时性的时候,我们在讨论什么?

VoltDB

数据分析 5G 工业互联网

低代码开发平台核心功能设计——组件自定义交互实现

徐小夕

大前端 编辑器 H5 大屏可视化 lowcode

祝贺 StreamNative 团队成员 Jennifer 当选 Apache Pulsar PMC 成员

Apache Pulsar

大数据 开源 Apache Pulsar

代码简易调试方法.md

Albert

Java LeetCode 调试

这份笔记我必啃完!美团T9首发内部JVM高级特性笔记,差距不止一点点

Java架构追梦

Java 源码 架构 面试 JVM

Rethink:多版本文件的命名细节

小匚

团队 随笔杂谈

Reactor中的Thread和Scheduler

程序那些事

响应式编程 reactor 多线程 程序那些事 reactivex

如何应对大促流量洪峰?揭秘京东技术人的备战手册

京东科技开发者

云计算 大数据 亿级流量

接口文档生成详细教程

测试人生路

接口文档

记不住Spring中Scheduled中的Cron语法?让我们看看源码吧

AI乔治

Java spring 编程 架构

靠脑机接口“隔空探物”,大脑植入芯片可实现“心灵感应”

脑极体

什么?美团T9首发内部JVM高级特性笔记,看完差距不止一点

小Q

Java 学习 程序员 架构 面试

双11购物节国外剁手党同狂欢 阿里云视频云电商直播实时字幕

阿里云CloudImagine

云直播 直播 直播带货 语音识别

O'Reilly出版社又一经典之作——Python设计模式

计算机与AI

Python

架构师训练营第八周

我是谁

极客大学架构师训练营

HTTPDNS开源 Android SDK,赋能更多开发者参与共建

移动研发平台EMAS

android 阿里云 开源 httpdns 移动研发平台

实时指挥调度的发展和优势

anyRTC开发者

ios android 音视频 WebRTC RTC

Pulsar Summit Asia 2020 | 主题演讲:大咖呈现,紧扣社区

Apache Pulsar

大数据 开源

2 w字长文带你深入理解线程池

Java架构师迁哥

Ruby 1.9发布_Ruby_Rick DeNatale_InfoQ精选文章