AstonJ

AstonJ

It’s been a while since we’ve had a thread like this, so what better way to kick off the year with :003:

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?

:048:

Showing Posts 1 to 10

davearonson

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! :slight_smile:

zoedsoupe

zoedsoupe

Well, I’ll try to put in a nutshell:

  • My main language was Typescript, on early 2019 I discovered functional programming and had been fascinated! So I tried to implement some rules and designs on Typescript but - today I can see this - JS is not a great at all and trying to implement monad and etc with Typescript’s types system was a big pain on the neck. So i decided to move to a functional language, searched a lot and well, I found Haskell and really like it, although the learn curve was significantly. Some time past and I found Clojure, I really like LISP but the I hate Java and it’s vm, so I did’nt give a try. So youtube recommended this video for me: https://www.youtube.com/watch?v=LN5S1-pzd6c. And wow, I started to study more about concurrency, erlang, BEAM and the ecosystem and felt in love!
  • After that I participated of “Elixir Brasil”, an Elixir event here on my country and
  • 4 months ahead and Elixir is my main language, I deeply dived into functional programming (today I’m studying Reason, Purescript) and I have no doubt that I prefer the functional style and immutability over mutable objects, t’s my thing, you know?
  • There’re a huge universe about the BEAM and elixir I want to study more, like ETS and OTP
  • Overall I really feel in home with the functional paradigm so wasn’t so hard to learn this Elixir part
  • I’ve plans to contribute forever with community, here in the forum but also with code!
Gdm273

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 :sweat_smile:. My current projects use nodejs with express, but hope I can make something out of Elixir.

Cheers, to elixir! :joy:

njwest

njwest

  • What first drew you to it (how long ago!?)

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.

  • and what keeps you here?

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.

  • How have you found it has changed over the years?

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.

  • 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?)

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 :wink:

  • What do you think were the biggest strengths of Elixir/Erlang when you got into it

Speed, real-time capabilities, extremely easy syntax

  • and what do you think are its biggest strengths now?

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).

  • What’s your single most important tip to newbies?

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.

  • Which book or learning resource has been your favourite to date? (How many have you read? Which ones have been your favourite!?)

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.

  • Are there any topics you’d like to see more Elixir or Erlang books or learning resources about?

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

atraac

I’ve been here for a while but since my introduction post, I haven’t really written anything in Elixir.

  • I’ve started with Exercisms as a way of learning Elixir. It was fine, though I admit, I’ve spent like two hours simply learning how to properly iterate of string characters and general string manipulation(it’s also my first functional language). I feel like this is unnecessarily complex in Elixir, but after a while I do, kinda, get it… I think.
  • For last ~year, I have for some reason stopped dabbling with Elixir. I feel like I was too burnt out to code in my own time. Just recently I got back to it after realization that I do not want to be stuck in .NET Enterprise’y world for the rest of my live. I like my current workplace, I don’t like .NET, Microsoft and their approach with it.
  • For that whole time I was still listening to some podcasts(Elixir Wizards, Thinking Elixir) which kept me interested, but I guess not enough to pick it up again.
  • Few days ago I’ve finally started working with Phoenix, currently learning basics of the framework, I plan on finally writing a personal project in it, to also then learn proper deployment techniques, nginx etc. .NET world spoiled me in a way where I, as a pretty experienced developer, actually feel almost disabled, that I don’t know how to properly work with Docker, SSL certs etc. In Microsoft world it’s all usually done out of the box(or rather out of your wallet).
  • In general - I really like the language, Phoenix/Ecto seem nice as well, I do feel like it widened my horizons as a developer(but I guess same could be said when learning any FP language after using OO only).
  • It seems that community in Elixir world is actually way better than in most other stacks(especially since .NET Community is one of the things I hate about it) which is really nice.

My ‘issues’ with Elixir:

  • Would love to see it gain some more traction in Europe, feels like there should be enough remote talent to pick from but I barely see any offers.
  • Techempower benchmarks. I know this has been already talked about multitude of times here, but it seems like everyone just dropped the subject a year ago. I do understand, that Techempower benchmarks in no way reflect real life perfomance and rightfully so, not everything should be optimized for them, but I do feel like they show Elixir in a bad spot. I cannot fathom how something that is this scalable, can be so low in those benchmarks. I know that all of those examples are ridiculously optimized, to the point of hardcoding static dates and headers(which we cannot really do here), sure, but in my opinion, even if most developers ‘know better’, we should still strive to be better in benchmarks, even if implementations are not realistic. Most people see those results and they don’t think about the fact that no sane person in the world would write code the way it is there. In my opinion it’s a good way of promoting technology/frameworks and to me it feels like minor things like that hurt adoption, especially since that particular benchmark seems to be the ‘go to’ in these matter these days. I wish that at some point in my journey here, I’d be able to contribute something that would help with that.
AstonJ

AstonJ OP

C’mon Dave, they’ll be out of date by the time you get to them :lol:

I am just as bad mind, I have loads of Elixir books that I haven’t got around to yet :cry: 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! :049: 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 :smiley:

So I highly recommend all Erlang and Elixir books - I think you will learn a lot from them :smiley: 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 :023:

I really enjoyed reading your entire post Nick - thanks for taking the time to write about your experience! :orange_heart:

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 :lol:

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 :smiley:

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 :003: 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 :grin:

davearonson

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

AndyL

What does being an Elixir user mean to you in 2021?

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

ityonemo

  • What first drew you to it (how long ago!?) and what keeps you here?

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).

  • How have you found it has changed over the years?

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.

  • 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?)

I’m getting better at organizing code and writing documentation, both things which elixir encourages in spades.

  • 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?

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).

  • Is there anything you’d like to see more of or improved or included?

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

  • What’s your single most important tip to newbies?

Don’t write GenServers. Use them.

  • Which book or learning resource has been your favourite to date? (How many have you read? Which ones have been your favourite!?)

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:

  • Try to complete Mavis/Selectrix which is a compile-time static typechecking engine for Elixir
  • Occasionally make videos about some “deep” explorations of the BEAM (https://www.youtube.com/channel/UCarZZW7eavljSdGRQx9kkSA/videos)
  • Maintain Zigler (my inline Zig library)
  • Keep working my day job at an elixir shop.
  • Play around with using Zig to interpret .beam files in wasm
  • Start my personal project, which is a personal file server with p2p file transfers, built on top of Phoenix.
sodapopcan

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 iex than #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)

Where Next? Top

Trending in Discussions Top

AstonJ
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...
2977 94592 917
New
cblavier
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
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
heathen
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
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
AstonJ
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
Null-logic-0
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 Top

JesseHerrick
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
marciok
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
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Dmk
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
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
webofbits
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself. My main conc...
#ai
New

Latest on Elixir Forum

Elixir Forum

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews