Hacker News new | past | comments | ask | show | jobs | submit login

Last year, I needed to build an MQTT-HTTP bridge. Lots of concurrent long lived stateful connections.

Elixir’s “we ain’t never seen a thread count that scared us” attitude was intriguing. So I took a chance.

If you want a paradigm shift for a change, Elixir is fun. It will probably be a bumpier uphill climb than your run-of-the-mill-syntax-populism-mainstream languages that vie for your engagement now days. I had never realized before how much of my code in the Algol-wearing-the-ObjectOriented-vestry[1] languages is just there to navigate to code that does something. Half of the code is just to determine where the code goes next. Go around? Leave now? This way or that? How bout a three way! Goto! Jump!

Elixir doesn’t solve these problems in the traditional way, and it kind of messes with your brain. A bit like the Grinch standing atop Mount Crumpit: “They code it without loops, without (traditional) if blocks, without switches. And even without return statements, of all things!”

The Elixir slack group is one of my favorite. They helped me out a lot. The Dave Thomas book was OK; I haven’t tried any others yet.

The system runs pretty solid. It was a 6 month or so project. It uses OpenAPI, Bandit (http server), Finch (send http), and Tortoise (MQTT). Other than the library names, which I think the community draws out of a magic and random hat somewhere, it’s pretty straightforward. It’s the least of the worries in our petty varied stack. And it’s lived up to my hopes regarding its threading story.

If there’s a thing that worries me about Elixir, it is that—like the Ruby/Rails community that it draws a lot of individuals from—it’s sort of a one trick pony right now. It’s a backend web tech. That’s obviously where the money is. I just don’t/can’t use it for a desktop app (realistically), or mobile development, or front end web, or command line tools (yes there’s the escript thing, but I don’t see a big execute-in-Elixir movement) or embedded (yes there’s Nerves). All the job posts I see in the Elixir slack channel are for web stuff. I’d guess 95% equate Elixir and Phoenix together.

Still, if someone offered me a job furthering the use of Elixir in something other than “come help us change the world with yet another novel web service”, I’d probably be really tempted.

-1. My dis her is not OO itself, but on the crappy job many mainstream languages have done of executing it. A sort of “I invented the term OO and this isn’t what I had in mind” channeling.




Exciting work is happening in all of these areas...

> desktop

Elixir Desktop: https://github.com/elixir-desktop/desktop

> mobile development

LiveView Native: https://www.youtube.com/watch?v=dnDGh_Jmw-s

> front end web

LiveView?

> command line tools

Mix.Install: https://thinkingelixir.com/elixir-1-12-and-your-first-mix-in...

How about numerical computing / machine learning: https://github.com/elixir-nx/nx/tree/main/nx

Embedded: "yes there's Nerves". Exactly?


> it’s sort of a one trick pony right now. It’s a backend web tech. That’s obviously where the money is.

In terms of tech, I wouldn’t classify it as one trick pony. You can also build distributed systems (Erlang), high-end embedded systems (Nerves), data pipelines (Broadway), audio/video streams (Membrane) and more coming. :)

However, you are right that most of the money is on backend tech. But I wonder how much of it is a reflection of the market themselves? If backend web is 10-100x bigger than distsys, then we shouldn’t expect proportions to change drastically.

Data pipelines is one of the areas where we can grow, but data pipelines are only part of a data stack, so it is a fragmented offering. The hope is that with efforts such as Explorer and Nx, we can grow more into this space.

Edit: on the positive side, the recent efforts in data, ML, and native clients are all sponsored by primarily backend web companies. But we all know there is a long road between technical implementation and adoption.


> It will probably be a bumpier uphill climb than your run-of-the-mill-syntax-populism-mainstream languages that vie for your engagement now days.

What makes you believe that? IMO, the immutability and pattern matching eliminate a huge class of common frustrations that beginners usually have with the most popular half dozen programming languages.

I think all of them, especially JavaScript, PHP and C are harder to learn than Elixir, unless you already know another similar language.


> What makes you believe that? IMO, the immutability and pattern matching eliminate a huge class of common frustrations that beginners usually have with the most popular half dozen programming languages.

I think moany devs really know a similar language already, when it comes to Java, Javascript, etc. But most have never been exposed to a functional language like Ex


Yeah, I'd agree with that. If you're not a complete beginner and you're learning a 2nd language, it's definitely easier to learn one that's nearly the same as the one you already know.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: