AstonJ
You and Elixir in 2021/22/23
It’s been a while since we’ve had a thread like this, so what better way to kick off the year with ![]()
What does being an Elixir user mean to you in 2021/22?
Here are some possible starting points…
Maybe you’ve just discovered Elixir and Erlang?
- What brought you to it? (Was there a specific article, talk or person that prompted you?)
- Which language did you come from?
- How are you finding it?
- How do you think you’ll use it?
- Which bits are you finding easy, which, not so much?
- Is there anything missing that you’d like to see included?
Or perhaps you’ve been using it for a while…
- What first drew you to it (how long ago!?) and what keeps you here?
- How have you found it has changed over the years?
- How have you changed, perhaps while using it? (Maybe you came from an OOP language and your mental model on how to build things has changed?)
- What do you think were the biggest strengths of Elixir/Erlang when you got into it and what do you think are its biggest strengths now?
- Is there anything you’d like to see more of or improved or included?
- Which bits do you love the most and which bits are you most likely to tell others about?
- What’s your single most important tip to newbies?
- Which book or learning resource has been your favourite to date? (How many have you read? Which ones have been your favourite!?)
- Are there any topics you’d like to see more Elixir or Erlang books or learning resources about?
![]()
Most Liked
baldmountain
I first found Elixir in the 0.8 time frame. I wrote a version of memcached as a learning project. (A toy version.) My day job did’t involve Elixir so other than playing with my learning project I didn’t really use Elixir.
Around the 1.2 time frame I did a lunch and learn presentation since I was still interested and wanted to share. No one was particularly interested. (It’s surprising that people in our business are so resistant to learning new languages and platforms.) Except the chief architect. He saw the value of the OTP right away. So he wrote a little project to handle an auth task. It worked flawlessly. In fact in the two years we ran it we only updated it once. And it ran without issue for months at a time.
After that we started writing new projects in Elixir. They all ran well so we started replacing apps witten in other languages in Elixir. Eventually we rewrote our ad server in Elixir. The original ad server was written in Python but was replaced with one written in nodejs. The nodejs one took a team of engineers two years and was so fragile that it had a team full time babysitting it. The Elixir ad server took 2 engineers 6 months to write and was simple enough to understand that ever junior engineers were comfortable making changes. We replaced 27 nodejs server with 3 Elixir servers. Latency dropped significantly and responce time went from 29ms to 13ms. Building the adserver in Elixir was a massive win.
I haven’t worked in Elixir in a couple years other than a nerves project and a small Phoenix project. (Personal stuff.) I miss it desperately.
Everywhere I go I suggest using Elxir. People look at me like I am insane. But I think people are comfortable with what they know and don’t want to change or make the effort to learn something new. But having worked in this industry for 25 years I know that languages and platforms come and go and you will have to learn something new at some point so you better get used to the idea and embrace change. And why not learn something better than what you are using now?
Gdm273
I haven’t recently discovered Elixir, I’ve actually been eyeing it for a while, and I finally decided to learn it about a week ago. Everything seems so easy, yet so hard. It’s a hard feeling to explain
. My current projects use nodejs with express, but hope I can make something out of Elixir.
Cheers, to elixir! ![]()
marcandre
![]()
I’m coming from Ruby, where I’ve been a ruby-core member for 12+ years. I’ve meant to look at Elixir since its early days.
Three months ago I decided it was more than time to dive into it.
I took a 3-day weekend to look at it. I checked out exercism and did one “easy” exercise, a “medium” one, all the “hard” ones that I found interesting. I was ready for the next step.
I sent an email to 4 companies looking for elixir devs stating I had 40 years of programming experience, including a whole 3 days in Elixir and that I was looking for a remote and half-time job. Nowadays the “remote” is almost taken for granted, but “half-time” is still a major blocker. Nevertheless, I got a great offer from Súper and I love it there ![]()
Grapsing the bulk of the language was very easy for me; I had been using some immutable structures in Ruby before (parser gem, Ractor, …).
There is still a lot of fine print I need to understand ![]()
I really like my experience so far. The community is vibrant, and the lightning-quick feedback from José Valim is simply fabulous (this is actually an understatement). I wish my experience contributing to Ruby had been comparable but I have to admit it is has not been the case at all.
To my friends, I joke that my main irritant with Elixir is its disdain for trailing commas; I guess that’s not that bad ![]()
My other reservations (with less than 3 months under my belt) concern two aspects: keywords and macros.
-
Keywords.
I am aware of a few cases where they are actually used for what they are (an ordered list), but typically there’s an ambiguity with maps that bothers me. Many API accept both, but not all. The syntax for keywords seems too convenient compared to it’s actual use (no pattern match, no defaults, difficulty in being strict about repeated ignored options, …). I miss Ruby keyword parameters. -
Ast & macros.
There’s something beautiful with the fact thatifand|>are macros. It makes working with the language itself problematic for me and introduces difficulties that look accidental (e.g.select [:id, :name]works butselect ~w[id name]arequires a^because~wis itself a macro.
In my mind,[:id, :name]and~w[id name]aare completely equivalent, so arefoo |> barandbar(foo), and I wish there was an intermediate AST representation that reflected that. Maybe there’s a future for a “semi-expansion” function that would assume things are as they seem and expand builtin macros like|>and~w[], resolve module aliases, etc.
My involvement withRuboCopand the Rubyparsergems made me desire a world where I could know statically ifx.flat_mapreferred toEnumerable#flat_mapor just another method with that name; while Elixir kind of brings that to the table, it also makes everything less straightforward. At least I’m having interesting discussions withsourceror’s author:-)
My biggest practical issue so far has been how often I have to wait on the compiler on my aging machines (4 and 12 y.o.), so this has been my focus in terms of contributions so far.
Popular in Discussions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









