As our materials about ‘Elixir vs Ruby – where to use?‘ and recent ‘Pros and cons of functional programming‘ resonated with many of you we decided to share the next interesting article today! We found Sihui Huang thoughts on the first impressions of Elixir from a Rubyist’s Perspective quite reasonable and highlighted some key points for you!
The author was playing with Elixir for about a month and decided to summarize what she had found out. Here are the points:
Why she didn’t try Elixir earlier
Being in the object-oriented world for so long, she simply couldn’t imagine building web applications without objects. She was skeptical about Elixir that has made a lot of noise in the Ruby community and had the impression that functional programming wasn’t for web development. She thought that the biggest selling point for Elixir was concurrency, and she didn’t care about that.
Nitpicking at object-oriented programming and Rails
There were some things in object-oriented programming that the author hated. For example, first of all, as an application’s domain complexity grows, determining the responsibility of each object becomes more difficult. Also, embracing the single responsibility principle (SRP) makes me think that perhaps functions should be first-class citizens. Rails is great for getting an app up and running in no time. But as the app grows, domain knowledge gets complicated. A codebase without good domain boundaries makes scaling an engineering team difficult. All these issues are solvable, but requires efforts and discipline.
What changed her mind and made her give Elixir a try
At Taiwan Ruby X Elixir Conf she chatted with many Elixir developers and decided to acquire a different way of thinking. She wanted to learn to think from a higher level of abstraction that could even help to write better Ruby code. Secondly, some developers said after getting up to speed with Elixir, they were more productive in using Elixir than in any other languages.
Materials she used to learn Elixir:
- Micropatterns by Cameron Price – a forty minute talk about learning elixir by doing small exercises. It also covers patterns that are common in Elixir.
- The Little Schemer (first five chapters) – a fun little book about recursion. Sihui can’t think of any materials that teach recursion better than this.
- Elixir for Programmers by Dave Thomas – a great course that helps you hit the ground and running in no time.
- Small exercises from Exercism. – practicing small exercises is the best way to build a solid foundation.
- Programming Elixir 1.6 by Dave Thomas – a great book packed with insights and Elixir knowledge. Here are some of Sihui Huang notes about this book.
Her thoughts after a month
- After a month of playing with Elixir, she was excited about the future of the language. Instead of blindly adopting standards from the past, the Elixir community challenges current assumptions and tries to find better ways to do things.
- The new requirements we now have for web applications, such as scalability, resilience, near-zero downtime, observability, and performance, are nothing new to telecom. Erlang is a battle-tested 30-year-old technology designed by Ericson specifically to solve these challenges. Being a language on top of Erlang, Elixir inherits all the goodness from Erlang.
- Elixir’s lightweight processes change the way the author thinks about servers and programming. And programming became more about transforming data, not allocating responsibilities.
- José Valim runs an Elixir consultancy working with companies that use Elixir, that results in hearing the feedback from Elixir developers and incorporate them into the design of the language.
- And, finally, the Elixir’s style of programming is similar to how I like to write Ruby.
These insights might make you want to try Elixir too!
Read the original article by Sihui Huang with the details and explanations here.