January 31, 2020

412 words 2 mins read

Children of Ruby: The different worlds of Elixir and Crystal

Children of Ruby: The different worlds of Elixir and Crystal

You program in Ruby but long for greater concurrency. You dream of programs that run instantly when called. You wish everything had clearly defined types. Join Simon St.Laurent to learn how Elixir and Crystal refine the diverse approaches built into Ruby, modifying the syntax and structures of this commonly understood language to address their very different priorities.

Talk Title Children of Ruby: The different worlds of Elixir and Crystal
Speakers Simon St.Laurent (LinkedIn)
Conference O’Reilly Open Source Software Conference
Conf Tag Fueling innovative software
Location Portland, Oregon
Date July 15-18, 2019
URL Talk Page
Slides Talk Slides
Video

You program in Ruby but long for greater concurrency. You dream of programs that run instantly when called. You wish everything had clearly defined types. You prefer functional approaches to organizing logic. Ruby is proving to be not just a great programming language, but a great foundation for new programming languages. Elixir and Crystal in particular demonstrate very different ways to build specific approaches based on a classic generalist language. Ssince its beginning, Ruby has harmonized many different programming approaches into a single language context. Developers arriving from a variety of contexts—object-oriented programming, functional programming, and more—could pick up Ruby and find familiar tools. As Yukihiro “Matz” Matsumoto, Ruby’s creator, put it, “I want to make Ruby users free. I want to give them the freedom to choose.” Over the years, idiomatic Ruby styles emerged that delivered maintainability and performance, but Ruby has always been a language that can speak in multiple voices. Some of those voices are now stepping out on their own, bringing Ruby syntax and sensibilities to specific contexts. Where Ruby emphasized flexibility and harmony, these new languages target specific uses. Two of the most successful, Elixir and Crystal, have taken starkly different paths. The Ruby DNA of both languages is clear. Rubyists should feel comfortable reading both languages. However, Elixir aims for concurrency by building on Erlang’s extremely functional and dynamically typed approach, and while Crystal supports basic functional programming, it’s much fonder of classical object-oriented approaches and sternly typed. Join Simon St.Laurent to explore the overlaps between the two languages and Ruby and see how different priorities have created languages with very different best practices. He compares code doing the same simple tasks and provides some explorations of capabilities specific to each language. Along the way, you’ll learn how to choose tools that fit specific tasks and gain a broader sense of how architectural choices percolate through language syntax.

comments powered by Disqus