The first release candidate of the next version of the programming language Ruby is now available. Ruby 3.0.0 RC1 introduces a number of new features, such as RBS, TypeProf, Ractor, and Fiber Scheduler.
RBS is a language for describing types of Ruby programs, and it enables developers to document the definitions of classes and modules. According to the Ruby team, the goal is to help support commonly seen patterns in programs, as well as allowing developers to write advanced types such as union types, method overloading, and generics.
TypeProf is a type analysis tool that reads Ruby code, analyzes what methods are defined and their uses, and creates a prototype of type signature in RBS format. Currently this feature is still experimental, so it is only supported in a subset of the language and its error detection is limited. The team is currently working to expand coverage, improve analysis performance, and make it more usable.
Ractor is another experimental feature that provides parallel execution without any thread-safety concerns. The Ruby team explained that Ractor allows developers to create thread-safe parallel programs since ractors don’t share normal objects. To limit object sharing, Ractor puts several restrictions on Ruby’s syntax.
Another new feature planned for Ruby 3.0.0 is Fiber Scheduler, which is for intercepting blocking operations. Fiber Scheduler will enable lightweight concurrency without the need to change existing code.
Other new features coming in Ruby 3.0.0 are a redesign of one-line pattern matching, endless method definition, memory view, and more.
For more information, view the release notes here.