Any thoughts on how to introduce Elixir to Rubyists & Gophers?

Hello, Elixir Enthusiasts!

I’m in a bit of a unique position where I have the opportunity to shine a spotlight on Elixir for my team. We’re hosting a series of weekly technical sharings, and it’s my turn to present. Given that our company’s tech stack predominantly revolves around Ruby on Rails and Golang, I’m eager to introduce my colleagues to the wonders of Elixir.

I believe that Elixir’s unique features and its robust ecosystem could offer fresh perspectives and solutions to our current practices. However, I want to ensure that my presentation resonates well with Rubyists and Gophers alike. To do this, I’m seeking insights from you guys.

What do you think are the “killer features” of Elixir that would appeal most to developers experienced in Ruby and Go?

5 Likes

For golang developers you can tell them that you have the same lightweight concurrency without any deadlocks or other low-level problems that golang concurrency has at its API level.

You can always show them some intricate pattern matches (and their equivalent in other languages), don’t forget about binary pattern match, a killer feature in itself (also a good example of some binary parser section in elixir vs other languages might be welcome).

For rails developer, there is phoenix, you could show them some shiny new things that they don’t have (for example how heex can validate html at compile-time).

Another killer feature is runtime interaction and observability. This video by @sasajuric is an absolutely great demonstration of that.

I would skip fault-tolerance (maybe just mention it and if there are questions you can expand on that), as for people that never used erlang VM this is an unknown concept that needs a separate talk in itself. If you could come with a simple but effective demo to showcase that for a real-life problem, it might be well worth to display that too.

Distribution, livebook, nx, bumblebee are also a great topic. These things are beyond what those languages can achieve, however you could showcase them for example how easy is to connect to a remote machine and run a computational task with livebook.

5 Likes

You mentioned the community and I’m taking that as not just Elixir itself, so I’ll answer it within this context:

  • Ecto, the sql part
  • Ecto, the non-sql part (@gregvaughn’s talk is one of my favorites :heart:)
  • Pattern Matching
  • Liveviews that update themselves periodically
  • GenServers that update themselves periodicaly

That’s what I’d try to squeeze in a work intro session.

3 Likes

+1 for LiveBook, particularly some of its demos that overlap with OTP features like Kino.Process.render_seq_trace. See also the demo from that release announcement

1 Like

Thank you so much for the reply!
I will definitely mention livebook since its such a powerful tool.

thanks again for the feedbacks, have a nice day.

Thanks for sharing your thoughts.
Even though Ecto is a great tool, I don’t think its going to impress a Rubyist as much as other features IMO. I would want their impression to Elixir be SHOCKING :rofl:

Please feel free to share more thoughts if you got any more!

Livebook has so much features that even myself havent touched them all :sweat_smile:
I will definitely include it in my sharing though. In fact, I might give presentation using Livebook itself!
Thx for replying!

Mention and demonstrate pipes. Many newcomers fall in love with them.

Watch the video @D4no0 linked by Saša Juric (The Soul of Erlang and Elixir) for shock value.

4 Likes

the observability is a awesome topic in itself.

Why not also connect to a “node” running some application. Fire up observer on your local machine and show how to inspect live from remote. =D

2 Likes

Some great recommendations in this thread already so I’ll refrain from adding any of my own.

But I will say I have found the culture of the company can affect it to.

So maybe compile an outline of the different options of topics you could discuss and maybe a one sentence blurb about what that is, and send those to a couple trusted colleagues that are representative of your typical Ruby and Go colleagues. Or have a 5 minute chat with them as you go through it together

See what they think would make the most impact or draw the most interest. Nothing stinks worse than putting together a really tight talk and then people tuning out 2 minutes in.

3 Likes

Thing which may seem interesting to golang developers is simplicity, elixir doesn’t have as many features as C++ (biggest enemy of all golang devs) and it’s still pretty concise.

1 Like

Further to what everyone has said there is a similar thread on EFS that you might also want to check out:

Also take a look at our why-elixir tag :023:

2 Likes

Erlang/Elixir aren’t unique with this tool :slight_smile: a little self-promotion

A little teaser of the new tool ‘Observer’ for the coming release Ergo Framework 3.0. This tool allows you to inspect your remote nodes, network, processes, etc.

https://twitter.com/halturin/status/1776279572826234965