I was an OOP in an OO world. The ideological lens of object orientation, through which I looked upon the nature of reality itself was beginning to unfold for me and reveal it’s cosmic configuration. “It’s all just objects… All of it!” I revelled, as I ascended to a godlike conceptual understanding of how information is abstracted, packaged, encapsulated.

Then I started at 8th Light, and they said, “Go forth apprentice, and learn you some Erlang.” and quickly I realized I was at most only viewing half of the grand design.

Welcome to the ethereal realm of Functional Programming. Now’s probably a good time for you to have an existential crisis and question everything you know because when I began to learn Erlang, I found that my object oriented headspace, was often wrong, mostly problematic, and initially ironically incongruant with Erlang in practice.

If you’re an OOP you might be saying, “I object!”

You object; we know, and in the Erlang ecosystem that’s abject and dare I say, objectionable.

So let’s say, like me, you’ve had to forego some type of middle ground language (Elixir) for the time being and jump straight into the deepend with the highly functional Erlang. These post should get you started and give you a good idea of some of the major differences you’ll quickly need to understand to begin translating Ruby-isms into Er-lingo.


I better make a quick public announcement before I launch into the following attempt at clarifying Erlang through Ruby concepts: These blog post represent one way of comparing and contrasting differences between Erlang and Ruby, they are by no means a guide to understanding the fundamental differences inside the languages. We are focusing on small similarities between small bits of working code. This is not a guide to theory, this is a guide to quick implementation so that you can get up and running quicker through some pragmatic comparisons. Try to implement these comparative strategies or find your own analogies, but understand that we are just scratching at the surface.

Erlang vs. Ruby Overview

Erlang Pattern Matching vs. Ruby Conditionals

Erlang Guards vs. Ruby Ternary Operator