Ruby 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Ruby 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Ruby 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 GPL
操作系统 跨平台
软件类型 开源软件
开源组织
地区 不详
投 递 者 不详
适用人群 未知
收录时间 2008-09-15

软件简介

Ruby是一种跨平台、面向对象的动态类型编程语言。Ruby 体现了表达的一致性和简单性,它不仅是一门编程语言,更是表达想法的一种简练方式。

Ruby的作者于1993年2月24日开始编辑Ruby,直至1995年12月才正式公开发布于fj(新聞群組)。之所以称为Ruby,是因为Perl的发音与6月的诞生石pearl(珍珠)相同,因此Ruby以7月的诞生石ruby(红宝石)命名。

Ruby明显比其他类似的编程語言(如Perl或Python)年轻,又因为Ruby是日本人发明的,所以早期的非日文资料和程式都比较貧乏,所以现在在网上仍然可以找到Ruby的资料太少之类的批评。约于2000年,Ruby开始进入美国,英文的资料开始发展。

下面是一个在标准输出设备上输出 Hello World 的简单程序,这种程序通常作为开始学习编程语言时的第一个程序:

#!/usr/bin/env ruby
puts "Hello, world!"

或者是在 irb 交互式命令行的模式下:

>>puts "Hello, world!"
Hello, world!
=> nil
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(28)
发表了资讯
03/10 08:35

Ruby 引入新 JIT 编译器 RJIT,替代 MJIT

Ruby 代码仓库近期新增了一个关于合并 RJIT 的 PR。 据介绍,RJIT 是新的 JIT 编译器,用作 MJIT 的替代实现。主要特性如下: RJIT 使用纯 Ruby 汇编程序生成原生代码 MJIT 在运行时需要 C 编译器,YJIT 在构建时需要 Rust 编译器。RJIT 不需要它们 这意味着 RJIT 的预热可能比 YJIT 慢,但仍然比 MJIT 快得多 RJIT 生成的代码看起来与 YJIT 非常相似 事实上,很多方法都是将 Rust 代码直接翻译成 Ruby 因此能够通过删除特定于 ...

15
1
发表了资讯
2022/12/26 07:53

Ruby 3.2.0 正式发布

Ruby 3.2.0 现已发布,该版本添加了许多功能和性能改进。具体更新内容如下: 基于 WASI 的 WebAssembly 支持 这是基于 WASI 的 WebAssembly 支持的初始移植。此项特性使得 CRuby 二进制文件可在 Web 浏览器、Serverless Edge 环境和其他 WebAssembly/WASI 嵌入器上使用。目前,此移植可在不使用 Thread API 的前提下通过基本和引导测试套件的测试。 生产就绪的 YJIT YJIT 不再是实验性的 已经在生产工作负载上进行了一年多的测试...

4
3
发表了资讯
2022/12/08 07:27

Ruby 3.2.0 RC 1 发布,引入针对 ReDoS 的正则表达式改进

Ruby 3.2.0 RC 1 发布了,3.2.0 预览版引入基于 WASI 的 WebAssembly 支持和正则表达式超时退出机制,3.2.0 RC 1 则引入两项可显著缓解 ReDoS 攻击的改进,以及一些语言功能和性能改进。 改进的正则表达式匹配算法 从 Ruby 3.2 开始,Regexp 的匹配算法通过使用记忆技术得到了极大的改进。 # This match takes 10 sec. in Ruby 3.1, and 0.003 sec. in Ruby 3.2 /^a*b?a*$/ =~ "a" * 50000 + "x" 改进后的匹配算法使得大多数 ...

0
0
发表了资讯
2022/11/25 07:39

Ruby 3.1.3、3.0.5、2.1.7 发布,修复高危漏洞

Ruby 3.1.3、3.0.5、2.1.7 发布了,这几个版本都只包含一个安全修复程序,修复了同一个漏洞: CVE-2021-33621:CGI 中的 HTTP 响应拆分 如果应用程序使用带有不受信任的用户输入的 cgi gem 生成 HTTP 响应,则攻击者可以利用它来注入恶意的 HTTP 响应标头和/或正文。 此外,CGI::Cookie未正确检查对象的内容。如果应用程序CGI::Cookie根据用户输入创建对象,攻击者可能会利用它在Set-Cookie标头中注入无效属性。 受影响的版本 ...

0
1
发表了资讯
2022/04/21 08:47

Ruby 的新 YJIT 编译器已完成,使用 Rust 重新实现

去年 12 月,Ruby JIT 团队的成员提出,希望将 YJIT 代码库从 C99 移植到 Rust。虽然有不少开发者对此持保留意见,但这个项目最终得到了 Ruby 核心开发者以及创始人 Matz 的批准。 昨日,负责此项目的开发者表示已完成了使用 Rust 实现的 Ruby YJIT 编译器,可有效取代现有的 C 版本,目前正在等待上游合并。 据介绍,Rust 版本的 YJIT 编译器与 C 版本具有相同的水平,因为它通过了所有的 CRuby 测试,也能够运行所有 YJIT 基准...

13
3
发表了资讯
2022/04/06 07:11

Ruby 3.2.0 Preview 1 发布,引入正则表达式超时退出机制

Ruby 3.2.0 Preview 1 已发布。此版本增加了许多新特性,以及优化性能。 基于 WASI 的 WebAssembly 支持 这是基于 WASI 的 WebAssembly 支持的初始移植。此项特性使得 CRuby 二进制文件可在 Web 浏览器、Serverless Edge 环境和其他 WebAssembly/WASI 嵌入器上使用。目前,此移植可在不使用 Thread API 的前提下通过基本和引导测试套件的测试。 正则表达式超时退出机制 此版本引入了正则表达式超时退出机制。 Regexp.timeout...

5
2
发表了资讯
2021/12/26 00:08

Ruby 3.1.0 发布

我们很高兴地宣布 Ruby 3.1.0 的发布。Ruby 3.1 保持与 Ruby 3.0 的兼容性,并添加了许多功能。 YJIT:新的实验性进程内 JIT 编译器 Ruby 3.1 合并了 YJIT,这是 Shopify 开发的一种新的进程内 JIT 编译器。 自从2018年Ruby 2.6 引入了 MJIT 后,它的性能有了很大的提升,最终我们在去年实现了 Ruby3x3。但是,尽管 Optcarrot 已经显示出令人印象深刻的加速,但 JIT 并没有使现实世界的业务应用程序受益。 最近 Shopify 贡献了许...

4
3
2021/11/13 07:02

Ruby 3.1.0 Preview 1 发布,合并 YJIT

Ruby 3.1.0 Preview 1 现已发布。Ruby 3.1 合并了 YJIT,一个由 Shopify 开发的新的进程内 JIT 编译器。根据介绍,YJIT 既实现了快速的 warmup time,又在大多数软件上实现了性能改进;在 railsbench 上可达 22%,在 liquid-render 上可达 39%。 目前,YJIT 仍然是一个实验性的功能,因此它默认是禁用的;需要通过--yjit命令行选项来进行启用。它目前也只限于 x86-64 平台的 macOS 和 Linux。 其他的一些版本更新内容包括有: ...

1
1
发表了资讯
2021/10/26 08:58

Ruby 将引入新 JIT 编译器:YJIT

Ruby 代码仓库近期新增了一个关于合并 YJIT 的 PR。 据介绍,YJIT 是用于 Ruby 的 JIT 编译器,它采用了惰性基础块版本管理 (lazy Basic Block Versioning, LBBV) 架构。与当前的 CRuby 解释器相比,在进行实际基准测试时,YJIT 的平均速度大约提升了 23%。 Headlining Benchmarks MicroBenchmarks 其他基准测试 Ruby 开发团队计划在 Ruby 3.1 预览版中引入 YJIT,让更多用户可以帮助他们对其进行测试,以及获得性能提升。目前 ...

10
2
发表了资讯
2021/04/13 07:37

Ruby 3.0.1 等多个版本发布,2.5 正式 EOL

Ruby 发布了四个版本更新,分别是 3.0.1, 2.7.3, 2.6.7 和 2.5.9,更新内容主要是修复安全问题。 Ruby 3.0.1 此版本包括以下安全修复: CVE-2021-28965:REXML 中的 XML 往返漏洞 (round-trip vulnerability) CVE-2021-28966:Windows 上的 Tempfile 存在 Path traversal 问题 更多细节查看 commit logs。 Ruby 2.7.3 此版本包括以下安全修复: CVE-2021-28965:REXML 中的 XML 往返漏洞 (round-trip vulnerability) CVE-2021-...

3
0
发表于开发技能专区
2020/12/26 09:32

Ruby 3.0 发布,比 Ruby 2 快 3 倍

几个月前 Ruby 编程语言的创建者和首席设计师 Yukihiro Matsumoto(松本行弘)表示 Ruby 3.0 将在圣诞这天发布,现在根据官方信息,该版本如约而至。 松本表示,Ruby 3 比 Ruby 2 快 3 倍。 此版本主要目标包括: 性能 MJIT 并发 Ractor Fiber Scheduler 类型(静态分析) RBS TypeProf RBS RBS 是一种描述 Ruby 程序类型的语言。类型检查器(包括类型分析器和其他支持 RBS 的工具)将通过 RBS 定义更好地理解 Ruby 程序。开发者...

44
9
发表于信息安全专区
2020/10/05 21:34

Ruby 2.7.2 发布

Ruby 2.7.2 已经发布。 此版本除了弃用提醒相关的更改,主要修复了一个安全问题 CVE-2020-25613。该漏洞是 WEBrick 中潜在的 HTTP 请求过滤问题,WEBrick 对无效的 Transfer-Encoding 标头太过宽容,这可能导致 WEBrick 与某些 HTTP 代理服务器之间的解析不一致,从而使攻击者绕过。 影响情况: webrick gem 1.6.0 或更早版本 Ruby 2.7.1 或更早版本中绑定的 Webrick 版本 Ruby 2.6.6 或更早版本中绑定的 Webrick 版本 Ruby 2.5...

0
1
发表于行业趋势专区
2020/09/30 07:35

Ruby 3.0.0 Preview 1 发布

Ruby 3.0.0 Preview 1 已经发布了,此版本引入了几个新特性。 RBS RBS 是一种描述 Ruby 程序类型的语言。类型检查器(包括类型分析器和其他支持 RBS 的工具)将通过 RBS 定义更好地理解 Ruby 程序。开发者可以写下类和模块的定义:类中定义的方法、实例变量及其类型以及继承/混合关系。RBS 的目标是支持 Ruby 程序中常见的模式,它允许编写高级类型,包括联合类型、方法重载和泛型。它还支持带有接口类型的 duck typing。 Ruby...

8
2
发表于开源治理专区
2020/09/06 08:49

Ruby 3 将于圣诞节发布,松本行弘分享编程语言的困境

Ruby 编程语言的创建者和首席设计师 Yukihiro Matsumoto(松本行弘)近期在某演讲中分享了 Ruby 3 的一些情况。 原本 Ruby 3 计划在东京奥运会前夜发布,但奥运会被推迟到 2021 年,所以一些核心开发者想知道 Ruby 3 是否也会顺理成章地推迟一年发布。讨论后最终还是决定今年发布,并且现在定于 12 月 25 日。 “我们决定今年发布 Ruby 3,因为作为开源社区,我们必须前进。我们必须继续前进,开源社区通常不能停止发展,否则就...

58
4
发表于开发技能专区
2020/09/01 08:27

Ruby 计划跳过 2.8.0 直接发布 3.0.0 版本

Ruby 创始人 Matz 最近提交的 commit 显示,他计划今年跳过 2.8.0 直接发布 3.0.0 版本。 Matz 没有解释做出这个决定的原因,两年前他曾透露 Ruby 3 将会朝三个方向进行推动,即快速、分布式可伸缩,以及精确分析,最终有望实现 3 倍提速。Ruby 3 会在每年的版本发布中添加一些新功能,当达到制定的目标时,就是 Ruby 3,从而避免带来不兼容的更改。 从 Hacker News 对这个话题的讨论来看,有人指出 Ruby 3 有望引入新的并发原语...

16
2
发表于开发技能专区
2020/04/30 07:20

Ruby 2.4 结束支持

官方宣布,对 Ruby 2.4 系列的支持全部结束。 自去年 3 月底开始,Ruby 2.4 系列进入安全维护阶段。一年过去了,这个阶段告一段落。因此,自 2020 年 3 月 31 日起,对 Ruby 2.4 系列的支持全部结束。来自 Ruby 较新版本的缺陷和安全修正不再移植到 2.4 系列,也不再发布 2.4 的补丁版本。Ruby 开发团队于 2020 年 3 月 31 日发布了 Ruby 2.4.10,但这是出于给用户一点时间来迁移到更新的版本。强烈建议尽快升级到更新的版本。 ...

0
0
发表于服务端专区
2020/04/01 07:32

Ruby 2.7.1 发布

Ruby 2.7.1 发布了,这是一个 bug 修复版本,带来了一些安全修复程序: CVE-2020-16255:JSON 中的不安全对象创建漏洞 CVE-2020-10933:套接字库中的堆暴露漏洞 Ruby 2.6.6 版本、2.5.8 版本,及 2.4.10 版本都同步修复了这些漏洞。 详情可见发布公告: https://www.ruby-lang.org/en/news/2020/03/31/ruby-2-7-1-released/...

1
0
发表于AI & 大数据专区
2019/12/26 07:27

Ruby 2.7.0 稳定版发布:引入模式匹配、紧凑 GC,改进 REPL

Ruby 2.7.0 稳定版在圣诞节当天发布了,此版本引入了许多新特性和性能改进,最值得注意的包括: 模式匹配(Pattern Matching) REPL 改进 紧凑 GC(Compaction GC) 位置参数和关键字参数的分离 模式匹配(实验性功能) 模式匹配是函数式编程语言中广泛使用的特性,如果匹配某一个模式,它可以遍历给定的对象并分配其值,目前尚处于实验阶段 [Feature #14912]: require "json" json = <<END { "name": "Alice", "...

3
1
发表于开发技能专区
2019/12/22 07:46

Ruby 2.7.0-rc2 发布,引入模式匹配、紧凑 GC,改进 REPL

Ruby 2.7.0-rc2 发布了,最终版本计划于 12 月 25 日发布。 此版本引入了许多新特性和性能改进,最值得注意的包括: 模式匹配 模式匹配是函数式编程语言中广泛使用的特性,如果匹配某一个模式,它可以遍历给定的对象并分配其值: require "json" json = <<END { "name": "Alice", "age": 30, "children": [{ "name": "Bob", "age": 2 }] } END case JSON.parse(json, symbolize_names: true) in {name: "A...

1
3
发表于软件架构专区
2019/10/27 07:35

Ruby 2.7.0 preview 2 发布

Ruby 2.7.0 preview 2 已经发布了,最终版本计划在 12 月发布。该版本引入了一些新特性和性能改进,主要是: Compaction GC Pattern Matching REPL improvement Separation of positional and keyword arguments Compaction GC 这个版本引入了 Compaction GC,以碎片化内存空间。GC.Compact 方法对堆进行压缩,这个函数压缩堆中的活动对象,以使用更少的页,并且堆会更友好。 Pattern Matching(实验性) 模式匹配是函数式程序设...

3
2
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
28 评论
92 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部