Concurrency

ErRuby: Ruby on Erlang/OTP

ErRuby: Ruby on Erlang/OTP

by Lin Yu Hsiang

The video titled 'ErRuby: Ruby on Erlang/OTP', presented by Lin Yu Hsiang at RubyKaigi 2016, explores the integration of Ruby with Erlang's concurrency capabilities through the experimental interpreter, ErRuby. It highlights the importance of concurrency in the evolution of Ruby and introduces how Erlang's features, such as the Actor model and lightweight processes, can enhance Ruby's performance in concurrent environments.

Key points discussed in the video include:

  • Method Definition and Invocation: The presentation begins with an explanation of how methods in Ruby are designed to update the object's state via message passing, akin to actor-based interactions in Erlang. This demonstrates the parallels between Ruby's object-oriented approach and Erlang's functional paradigms.
  • ErRuby Overview: The speaker introduces ErRuby as an interpreter that allows Ruby's implementation within the Erlang/OTP framework, showcasing the potential for enhanced fault tolerance and distributed system capabilities.
  • Functional Implementations of Ruby Features: Lin Yu Hsiang describes methods for implementing essential Ruby features functionally. He aims to demonstrate that key Ruby characteristics can be translated into the Erlang environment, preserving the language's expressiveness while embracing concurrency.
  • Future Implementations: The speaker concludes by discussing the ambitious road ahead for ErRuby, emphasizing ongoing efforts to implement more Ruby functionalities using Erlang’s strengths. The objective is to create a robust platform that leverages the efficiency of Erlang while retaining Ruby's appealing syntax and programming constructs.

In summary, ErRuby serves as a bridge between Ruby and Erlang, aiming to enhance Ruby's concurrency capabilities through an experimental interpreter. The main takeaway is the potential for combining Ruby's developer-friendly features with Erlang's superior concurrent and distributed system functionalities, paving the way for innovative advancements in Ruby programming for the future.

00:05:03 メソッドの定義と呼び出しについてですが、各メソッドはオブジェクトの状態を更新するように設計されています。例えば、メッセージを送受信することで状態が更新され、それに基づいてメソッドの戻り値を取得します。Rubyでは、クラスとインスタンスの概念がありますが、実装はErlangにおけるアクターと同様です。
00:05:28 私の話の結論として、RubyはErlangで実装された実験的なRubyインタプリタです。これにより、Rubyをどう実現するかを模索しています。今後もRubyの様々な機能を続けて実装していこうと考えています。