Baklib KB 知识库系统构建 Baklib KB 知识库系统构建
Baklib
正在阅读:
为什么Ruby在2021年仍然是一个不错的选择?
分享:

为什么Ruby在2021年仍然是一个不错的选择?

  • Baklib
创建者:Baklib
大约 4 年前

每年年初,技术文章似乎只关注一个主题 - 试图回答以下问题:“在这里*插入技术*是否仍然有意义?Ruby on Rails 没什么不同。您可能会感到惊讶,尽管它已经使用了 15 年以上,但并没有减慢速度,仍然有大量的支持者和新来者。

2020 年给 Ruby 社区带来了很多变化。Ruby 3.0 是在 12 月底推出的,带来了性能和并发性方面的变化。想更多地了解这些变化吗?它与前任有何不同?本文将总结有关最新 Ruby 更新的所有信息。

您是否知道有些人可能不了解 Ruby 和 Ruby on Rails 之间的区别?让我简要说明一下,让大家都在同一页面上。

Ruby 是一种面向对象的脚本语言。它是开源的,免费且容易获得。它的语法非常清晰,易于编写和理解。Ruby 以其强大和简单之间的平衡而著称,这意味着用它编写的程序通常是可伸缩的并且易于维护。而且,Ruby 具有动态类型和鸭子类型,灵活的语法,异常处理,变量作用域,重载等功能。

另一方面,我们有 Ruby on Rails。它是一个基于模型视图控制器(MVC)架构的 Web 应用程序框架。这意味着数据与用户界面是分开的。为了更容易地区分,Ruby on Rails 简称为 Rails。

Ruby on Rails 遵循诸如 “不要重复自己”(DRY)和 “约定优于配置”(COC)之类的概念。

在谈论 Ruby 编程语言时,几乎不可能不提及 Ruby on Rails。很有可能,如果不是 Rails,人们将不会意识到 Ruby 的好处。但是,我们应该记住,即使没有 RoR,Ruby 也具有很多优势,例如多功能性,自由性,用户友好性,可读性和合规性。当与 Rails 结合使用时,它会变得更好。让我们来谈谈一些优点:

  • 富有表现力-Rails 团队在 DSL 方面取得了很好的平衡,使其易于理解
  • 实用主义-在谈论 Rails 时经常提到,并且与 Rails 的联系尽可能地低
  • 成熟度-RoR 自 2005 年以来一直存在,并已被 Github 或 Shopify 等公司使用
  • 简便性– Rails 旨在构建可被实际企业使用的 Web 软件
  • 社区-维护人员仍在关心并希望人们使用 RoR,因此随时可以获得帮助
  • 上市时间— Rails 支持快速编码,因此是 MVP 开发的绝佳选择
  • 安全性— RoR 和 Ruby 非常适合医疗保健,金融或电子商务行业中对数据敏感的应用程序
  • 跨平台-用 Ruby 编写的代码可以在各种设备和操作系统上运行
  • 成本效益—由于有许多可用的免费工具和库,您需要为开发付出更少的

在确定 Ruby 仍然很重要并解释了它的优点之后,我们可以继续讨论 Ruby 3.0 引入的更改。

Ruby 3.0 比 Ruby 2 快 3 倍!Optcarrot 基准测试基于 NES 的游戏仿真工作负载来测量线程性能,并且与该语言的早期版本相比,得分非常高。

MJIT 中引入了许多改进。Ruby 3.0 在诸如Optcarrot或 AI Rubykon 之类的有限工作负载中以及在多次调用几种方法的应用程序中提高了性能。尽管 Ruby 3.0 减小了 JIT 版本的代码的大小,但仍未完全准备好优化工作负载 - Ruby 3.1 发行版有望实现进一步的改进。

act 子

在多核时代,并发非常重要。多亏了 Ractor(类似于并发抽象的 Actor 模型)以及 Async Fiber,Ruby 才成为真正的并发语言。Ractor 可以共享正常对象,因此无需担心安全性就可以并行执行。通过交换消息来支持 Ractor 之间的通信。

注意:为了限制对象的共享,Ractor 对 Ruby 的语法引入了一些限制。

光纤调度器

引入用于拦截操作,允许轻量级并发而无需更改现有代码。

支持的类 / 方法:

  • Mutex#lock,Mutex#unlock,Mutex#sleep
  • ConditionVariable#wait
  • Queue#pop,SizedQueue#push
  • 线程 #join
  • 内核#睡眠
  • Process.wait
  • IO#wait,IO#read,IO#write 和相关方法(例如,#wait_可读,#gets,#puts 等)。

注意:_不支持_IO#select 。

Ruby 通过使用静态解释进行静态类型检查,而不使用抽象声明来声明类型。RBS 和 TypeProf 是未来的第一步。

苏格兰皇家银行

RBS 是一种用于描述 Ruby 程序类型的语言。借助 RBS 定义,支持 RBS 的类型检查器和工具将更好地理解 Ruby 程序。RBS 的主要目标是支持 Ruby 程序中的通用模式,并允许编写高级类型,包括联合类型,方法重载和泛型。它还支持带有_接口类型的_鸭子输入_。_

Ruby 3.0 附带了rbsgem,它可以解析和处理用 RBS 编写的类型定义。

TypeProf

TypeProf 是捆绑在 Ruby 包中的类型分析工具,可作为一种类型推断。它读取简单的 Ruby 代码,分析定义了哪些方法以及以后如何使用它们来生成 RBS 格式的类型签名的原型。

您可能会以为这就是全部,但是我想提一下其他随 Ruby 3.0 改变的事情。

重新设计了单行模式匹配

  • \=> 已添加。它可以像向右分配一样使用

  • in 更改为返回 true 或 false

查找添加的图案

添加了无尽的方法定义

def square(x) = x \* x

性能提升

  • 将长代码粘贴到 IRB 的速度比 Ruby 2.7.0 捆绑的版本快 53 倍

  • 测量命令已添加到 IRB。它允许简单的执行时间测量

  • 关键字参数与其他参数分开

  • 模式匹配(大小写 / 输入)不再是实验性的

  • 回溯的顺序在 Ruby 2.5 中已经颠倒了。此更改已恢复。现在回溯的行为类似于 Ruby 2.4

  • 更新了一些标准库(RubyGems,Bundler,IRB,JSON,CSV 等)

好的老 Ruby 和 Ruby on Rails 肯定还没有死。对于许多项目来说,它们仍然是必不可少的,包括那些由亚马逊,Slideshare 或 Airbnb 之类的巨头拥有的项目。Rails 仍然是 GitHub 上最受欢迎的社区,贡献者超过 4k。它保持功能,可靠,同时相对容易学习和理解。

Ruby 非常适合开发 SaaS 解决方案,MVP 和跨平台应用程序。这是一种适用于解决特定业务任务的实用语言。此外,Ruby on Rails 也正在蓬勃发展,因为它仍然是最流行的 Web 开发框架之一,可快速,高效地用于 Web 和移动解决方案。

如果您正在寻找经验丰富的 Ruby 和 Ruby on Rails 团队来处理您的开发,请填写联系表格以安排与我们的专家联系。我们可以为您提供一个由设计师和质量检查工程师组成的完整团队,以使您的项目达到最佳状态。

最初发表于2021 年为什么 Ruby 仍然是一个不错的选择?Ruby 3.0 简介
https://medium.com/selleo/why-is-ruby-still-a-good-choice-in-2021-an-introduction-to-ruby-3-0-cc8a3d588bbc

 

 

分享: