AstonJ
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?
![]()
Trending in Discussions
As the title says, please share what you’ve been up to with Elixir. Whether that’s been learning it, looking into it, making stuff with i...
New
Hey there,
It’s been more than a year since we started using LiveView as our main UI library and building a whole library of UI componen...
New
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Quite interesting article Google brought me. Didn’t find any mentions about it here.
What do you think in general? Would you use togethe...
New
Hi everyone!
The first release candidate for the Expert language server project is now available!
We’ve published a press release detai...
New
Since we have deprecated our Erlang sections (as we have dedicated Erlang Forums now) let’s add this thread for those who’d like to post ...
New
What IDE or editor are you using for Elixir development?
Personally, I use Zed, and I really like it, but sometimes I wish there were a ...
New
Other Trending Topics
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
Hi there! We created Gust: A task orchestrator inspired by Airflow.
For those who have never heard about Aiflow, it’s a Python-based wor...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself.
My main conc...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixirconf-us
- #ai
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #hex
- #security










Showing Posts 1 to 10- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
davearonson
Wow, so much I could write. But to summarize:
Heard of it through the Ruby community, that being my main language for the past decade or so (preceded by others over prior decades).
Been learning it slowly over the past several years, since attending my first Elixir Meetup in, I think, 2016.
Have worked my way through the entire Exercism track, but still feel there is a lot missing in my knowledge – I’ve done very little with behaviors, nothing with protocols or writing my own macros, and only tutorials for OTP or Phoenix.
Intending to scale down the work for my current client and go into semi-retirement, which might finally give me some time to delve deeper into Elixir, OTP, and Phoenix – especially since I still need to read the three books I won in the 2020 giveaways!
zoedsoupe
Well, I’ll try to put in a nutshell:
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!
njwest
A little over four years ago, I went to a talk about Elixir and Phoenix, and was drawn to Elixir’s speed, real-time capabilities, as well as Phoenix’s ease of use vs other contemporary high-performance frameworks (such as Martini, RIP).
At the time I was primarily working on Meteor & NodeJS backends; Meteor was/is an attempt at a high-performance real-time web framework, however (when I was working with it) Meteor’s components were too tightly coupled, and state management was a poorly versioned nightmare (it was similar to working with a flux-style like Redux, however imagine the same package’s NAME as well as functionality changing mildly every few months).
Phoenix was everything I wished Meteor was. I dabbled in Elixir and Phoenix for a couple of years on little CRUD web apps for minor projects, then started using it for client projects, and eventually full-time for more complex projects.
In the past few months, I’ve gotten much deeper into Elixir and Erlang/OTP beyond Phoenix/Ecto and simple HTTP/websocket servers, and I am having a great time working in the world of GenServer/mnesia/ETS/etc.
Elixir offers such a great combination of performance, fault tolerance, and readability. I have actually found it easy to train engineers in it, versus something like JavaScript or PHP where junior engineers can very easily write awful code.
The language itself is incredibly well-designed and maintained in my opinion, as there are no seismic shifts in functionality between versions, and I have never had a language version change break any of my code.
I appreciate Date math and other useful functions being added to the language core, it feels like I need to install fewer libraries now than I had to a few years ago.
Re: Phoenix, since version 1.3 was released, the framework feels less like Ruby on Rails and more like its own thing.
I definitely look at engineering problems from more of a functional perspective now. Even when writing JavaScript, I take a less imperative approach to code composition.
I also moved to the other side of the planet from where I lived a few years ago, and Elixir is just as fast here
Speed, real-time capabilities, extremely easy syntax
All previously mentioned plus fault tolerance and scalability; it seems like no matter how you write an Elixir application, scaling up is not particularly complex since clustering and so forth are handled very well within the BEAM environment.
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?
Same as previous answers re: real-time capabilities, fault tolerance, etc.
When evangelizing Elixir, I usually talk these advantages along with the advantages of Erlang/OTP/BEAM relative to Go/Node/RoR (Go is really popular where I am amongst people woh want to try new tech for web servers, but the shops that I know trying to run Go are having productivity shortcomings).
After learning pattern matching and map syntax (“key” => value vs key: value), learn how to work with maps/lists using Enum functions (map, filter, etc) and play with them in iex.
A big wtf? (what the functional-programming?) moment with Elixir for most newbies from OOP is when they reach a problem that they would normally solve using for loops; having some exposure to Enum ahead of time really eases the learning curve.
I’ve read some of Erlang and Elixir for Imperative Programmers, most of Programming Phoenix (~1.3), Part 1 of Programming Elixir (this post reminds me that I should get to reading Part 2…) a while back, and all of Crafting GraphQL APIs in Elixir with Absinthe by Bruce Williams and Ben Wilson.
The Absinthe book is my favorite, as in addition to being a good learning resource for Absinthe, it also does a great job of explaining the ins and outs of the GraphQL API spec, which I was only vaguely familiar with prior to reading the book.
I’m interested in seeing some example/practical applications of Broadway and this NX thing José keeps teasing, as well as actually experiencing the computational limitations of the BEAM that everyone crows about (beyond just minor performance differences between complex Elixir maths and maths in lower-level code)
atraac
I’ve been here for a while but since my introduction post, I haven’t really written anything in Elixir.
My ‘issues’ with Elixir:
AstonJ
C’mon Dave, they’ll be out of date by the time you get to them
I am just as bad mind, I have loads of Elixir books that I haven’t got around to yet
I have actually also wondered whether this is part of the reason I haven’t started on a Phoenix app yet - because I feel like I need to read all of my books first. Maybe I will finish Programming Phoenix and start a side project that I still want to do - a site where we (aim to) raise a million pounds for dogs!
I think I would really enjoy that project and it would be a perfect fit for LiveView - which is making me want to do it even more!
Firstly, welcome Matheus!
I am currently very interested in TypeScript - our portal for it on Devtalk is quite popular and it’s definitely on my to learn list. If you get a moment, perhaps you could share your experiences about it in one of the Devtalk threads? I’d love to hear more!
We are so lucky that we have some amazing books about Elixir and Erlang. One of the biggest benefits of Elixir is that while it is itself new, Erlang has been around for decades - and there is a huge amount of knowledge in the Erlang community (not to mention libraries) and we’re so lucky to be able to benefit from that. José was very smart to base Elixir on Erlang
So I highly recommend all Erlang and Elixir books - I think you will learn a lot from them
Learning Resources > Books
Welcome Mr GD! I’m really enjoying your threads and posts here and on Devtalk! I hope you will start a journal to document your learning journey as I am sure it will be interesting to a lot of people
I really enjoyed reading your entire post Nick - thanks for taking the time to write about your experience!
I think this is a good tip - Enumerators are a bit harder to grok in general anyway, and focusing on this early may well be a great idea. Funny thing is Finner posted about Enums on Devtalk only yesterday and it reminded me how I had to re-read a chapter on it a couple of times when I was learning to program
I’ve actually been quite impressed with Elixir’s uptake in Europe - we certainly seem to get quite a few European jobs posted in our jobs section - take a look here: #community:elixir-jobs
I agree that benchmarks can have an impact on adoption. I know that one of the things that attracted me to Elixir was how it was coming out on top of benchmarks against other languages. I also noticed a very big increase in interest in Rust when it started to come out on top of the Techempower benchmarks - so it is imo without a doubt an important factor for many.
I also agree with everyone about how those benchmarks are not great in representing real-world usage, and this is something we have thought about fixing. I’ve spoken to PragProg about it and they have indicated they may well be interested in getting involved with it! Since the benchmarks would be centred around real world usage, I think Elixir and Erlang would do very well in them
Only thing is finding the time to do it - if there are enough people interested though I might try and move it up our priority list 
davearonson
Yeah, well, that’s one of the reasons I gravitate to forums like this, and conference talks, rather than books through a major publisher. But the general concepts should still be pretty much applicable, especially in Elixir, as it’s been described as pretty much feature-complete…
AndyL
I’m here because I admire the Elixir technical leaders - their judgement, organization, skills and productivity. In 2021 I want to increase my Elixir proficiency and speed, be supportive to the community and give contributions where I can.
ityonemo
I came here from Julia in 2016-ish, I loved that it was FP, and it had a real deployment story. Julia still doesn’t have a deployment story, (and it never will, for web services - that’s okay), so I’m glad i did. I previously worked at a place where I built from ground up a VM orchestration engine (think mini-EC2) in Elixir; I’m now working at a place where I do a more or less standard Elixir backend. I will probably stay in Elixir until I phase out of tech and switch back to biotech, which I’m aiming for the 5-8 year time horizon. In that time, I will probably try to do my own startup (with Elixir).
It hasn’t, which is the most amazing thing. There are a few niceties. Elixir is gradually becoming more statically typed, which I think is interesting.
I’m getting better at organizing code and writing documentation, both things which elixir encourages in spades.
I didn’t know what they were, and I still think that the biggest strength is 30 years of experience with distributed systems. I also think it’s incredibly important that both Elixir and Erlang are the result of making highly pragmatic choices. (that’s common to all of the languages that I love, Julia, Elixir, Zig).
There’s a few things around “informal APIs” that aren’t declared in behaviours that I would like to see. For example Elixir’s “compare/2 behaviour”. I’d like a better typesystem that reflects
Don’t write GenServers. Use them.
Geoffrey lessel’s Phoenix in Action has been the most useful to me. It just clicked with the way I learn, and was the right thing given where I was at the time (lots of elixir experience, very little Phoenix Experience)
For 2021 my plans with Elixir are as follows:
sodapopcan
I was slow to adopt Elixir. We’d dabbled at my old work in 2016, but it never made it to production. I was always skeptical of functional as it seemed like something neckbeards talked about to make non-neckbeards feel less worthy. I am a lover of apps before I am a lover of tech. I came late to Rails even—around 2011ish—and that was the second time I ever felt giddy about tech since discovering GeoCities and xoom.com in the 90s.
Then the came the frontend framework revolution. I can’t even begin to describe how wrong that felt to me. All those hyper smart, hard-working and obsessed folk focusing their attention on doing everything on the frontend, and everything in JavaScript. It never sat right with me. But as a passive consumer of open source tech to make my little apps, I had no business complaining. I still did, of course, but it’s just how I felt. Like, why would I want to build an API that I’m going to be the only consumer of? It seemed insane back then and it’s still insane today. Also, focusing on JS just seemed like misplaced energy to me.
And hey, along comes LiveView, built on 30+ year old rock-solid and exciting tech kind of makes me feel vindicated in my feelings. It also makes me a little sad about the priorities of our industry. I’m being a little dramatic, yes, but can you imagine if the likes of Ryan Dahl had focused on Erlang those 12+ years ago instead of making that, uh, that little thing he’s known for making. I feel like we’d be in a better place.
(Yes, yes… I’m being sassy and reductive for effect… n*de is a technological feat that LiveView depends on)
ANYWAY
What brought you to it? (Was there a specific article, talk or person that prompted you?)
LiveView
Which language did you come from?
Ruby, previously PHP. I’m a web developer. I love working on frontend and backend. I used to think I had to prove myself as more than a web dev but naw, I’m a web dev. I do write some vim plugins, though! One is even sort of almost kinda a little bit popular (not really)
How are you finding it?
The speed at which I can move is incredible is like nothing I’ve ever experienced. As a former OO champion who actively avoided functional, I’m now getting annoyed by OO in my daily use of it. My team spends all this time agonizing over the proper way to abstract something and recently I’m’ thinking, “Just make a function and put it in some module… if it turns out it was the wrong decision, you can just move it later… it has all of its dependencies right there!”. Anyway, I’d love to pontificate more about this point but ya… total functional convert over here. It’s to the point that I now believe it is just a fundamentally better paradigm. “But… but… the right tool for the job!” …naw. Gimme functional. At least in the world I live in.
How do you think you’ll use it?
I’m currently building an “agile tool”. It’s a reproduction of my team’s standup board which is on google’s JamBoard. We are feeling no huge pain there and I’m not even sure they’ll be into letting me trial it with them, but it’s a good sized project I’m excited about that can help me gain proficiency (and hopefully some fluency) in Elixir and Phoenix.
Which bits are you finding easy, which, not so much?
Coming from Rails and loving how opinionated it is, it’s been an adjustment figuring out where Phoenix is opinionated and where it isn’t. I’ve read some people saying it is not opinionated at all yet it certainly has some opinions! For example, one thing I always appreciated about Rails tutorials was the file path was ALWAYS included in examples. Since Phoenix doesn’t mandate where files have to go, this isn’t usually a thing, but it would be nice in examples to get a hint. I’ve often found some context can be missing whereas in Rails guides you always got everything spelled out for you like you were a beginner. I really liked that and am missing that in Elixir/Phoenix docs (I can say I have contributed here and plan on doing more soon!)
*Is there anything missing that you’d like to see included?
A better way to break out of a syntax error in
iexthan#iex:break(I know this is all on the Erlang side of things… I’ve read the github issues around it!)Better vim support (I can help here, I’m just… taking my time… gah)