omerss2311

omerss2311

The strengths of Elixir / OTP / the BEAM (other than concurrency)

As a developer with experience in many languages, Elixir feels very attractive to me because of its (and in general the OTP platform’s) uniqueness. However, so far it feels like I’m missing something. Every thread about this talks about mass concurrency, but that just isn’t that useful? Like I genuinely haven’t found a use for it outside of (very) big data analysis and networking. I feel like I’m missing something though? Like I look at the documentation for OTP and for Elixir, and it feels like it has huge potential but I can’t seem to find a use for it. Any thoughts?

Most Liked

gregvaughn

gregvaughn

If you dig into the history of Erlang, a primary requirement was fault tolerance. Those phone network devices had to keep running even if one call has an error. Processes and their memory isolation (and supervisors (and hardware redundancy)) were used toward that goal. Concurrency was kind of a happy side effect (especially given CPUs of the 80’s and 90’s).

In my opinion processes should be thought of primarily as a way of controlling the “blast radius” of an unexpected error, and secondarily as a wonderful concurrency primitive that is easy to reason about.

19
Post #5
dominicletz

dominicletz

Creator of Elixir Desktop

My personal Nr#1 strength of Elixir is that you will be able to write production grade software in less lines of code than any other language. This means you will spend less time to create and maintain it, spend less money as a company to push a feature out and create less bugs for your customers.

The functional nature and process isolation do help here a ton and protect your from a whole class of bugs, while at the same time enabling the “let it crash” way of error handling which again saves you code as it let’s you focus on implementing the “happy path” and deliver value to your customers first.

Compare this with other scalable options, such as Java, Golang, Rust – These are amazing languages but you will spend significant time digging through technicalities to make the borrow checker happy in Rust, or have the correct error handling in Golang or write class boilerplate in Java.

Just my 2 cents.

16
Post #3
jhogberg

jhogberg

Erlang Core Team

@ferd wrote a wonderful take on it a few years back, it talks mostly about Erlang, but all of it is applicable to Elixir. :slight_smile:

15
Post #2

Where Next?

Popular in Discussions Top

jeramyRR
This is an interesting article to read. Elixir’s performance, like usual, is excellent. However, it seems like the high CPU usage is co...
New
owaisqayum
I have a sample string sentence = "Hello, world ... 123 *** ^%&*())^% %%:>" From this string, I want to only keep the integers, ...
New
AlexMcConnell
The reason that Rails is as popular as it is is because it’s very easy for relatively inexperienced developers to get a lot of work done....
588 19652 166
New
PragTob
Hey everyone, this has been brewing in my head some time and it came up again while reading Adopting Elixir. GenServers, supervisors et...
New
rower687
Hi all, I’ve been reading a lot about the “let it crash” term and how supervising processes and the whole messaging passing make an elixi...
New
sergio
There’s a new TIOBE index report that came out that shows Elixir is still not in the top 50 used languages. It also goes on to call Elix...
New
klo
Got a question about when to concat vs. prepending items to list then reversing to achieve appending. So i know lists boil down to [1 | ...
New
ben-pr-p
In general I’ve been sticking to this community style guide GitHub - christopheradams/elixir_style_guide: A community driven style guide ...
New
100phlecs
Are there any downsides, like perf issues, to putting all functional components in CoreComponents as long as you prefix it with the conte...
New
griffinbyatt
Sobelow Sobelow is a security-focused static analysis tool for the Phoenix framework. For security researchers, it is a useful tool for g...
New

Other popular topics Top

siddhant3030
Hi, I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
985 43487 311
New
marius95
Hello everyone, I try to use an Javascript Event Handler in my root.html.leex file. Therefore I created a function in the app.js file: ...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
Emily
I have VueJS GUIs with the project generated using Webpack. I have Elixir modules that will need to be used by the VueJS GUIs. I forese...
New
vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
dblack
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar. I p...
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
vegabook
I’m brand new to Phoenix and I have stripped one of the demo applications to the bone. I just want to get an svg up on the screen. Here i...
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New

We're in Beta

About us Mission Statement