Hacker News new | ask | show | jobs
by user34234 2166 days ago
The company I work for (mostly standard Web Dev) uses almost exclusively Elixir for any backend work. Only the fanboys of Elixir and functional everything are happy with it, just to be different to everyone else.

The experience is terrible: Tooling (editor plugins, tests runners, IDEs (oh, there are no IDEs...), debugging) is like going back 20 years.

There are no libraries for the most basic stuff you get almost by default on the Ruby, Python, Node or Java ecosystems. So we end up reinventing half assed solutions to anything we need to do.

Some days I think we would be sooo much better by just using Rails or Django.

Of course, concurrency and the Erlang VM are awesome and the perfect fit for the web... if your problem is performance, it will solve that problem for you of course... other than that, is all wasted time in my opinion from my experience after years of using it.

3 comments

I’ve found the ecosystem to be quite high quality but the editor tooling does fall short sometimes. Particularly the transition from Alchemist to an editor powered by the new language server protocol.

I can’t say it’s anything other than the fault of not enough spare time. The community is a bit smaller so there are not as many volunteers to build out the latest and greatest tooling for editor support.

Despite this, I’ve had a wonderful experience working within the elixir ecosystem and using it as a gateway to erlang. One of the things I had to acknowledge was my bias towards recent updates as a measure of quality. The ecosystem is so good that you’ll find packages years old and never updated. It simply does that it does and does it well.

I found overall great support in VS Code at the end of the day for Elixir. I wanted it to work well with emacs but it wasn’t consistently enjoyable.

VS Code works well enough for now between the satisfaction of shipping code and the satisfaction of a flick of the wrist for editor commands.

Really? I've been able to find everything I need in the Elixir ecosystem from auth to background jobs and one of if not the best GraphQL server implementations out there. Do you mind sharing which libraries you found missing or incomplete?
Yes, in fact we have ourselves published a few open source packages out of the need we had to build them.

The latest incarnation of this problem, was when we had to validate RUT codes (a tax code with a checksum we use here in Chile). Options for Python [1], options for Node [2], options for elixir [3] (don't mind to click, it's a list with nothing to do with RUTs or modulo11 validations). So we had to implement it ourselves. Looking for information we found example implementations [4], where as you can see you have example implementations even for Asterisk Dialplans (!!) but no mention of Elixir.

[1] https://pypi.org/search/?q=rut [2] https://www.npmjs.com/search?q=rut [3] https://hex.pm/packages?search=rut&sort=recent_downloads [4] https://es.wikipedia.org/wiki/Anexo:Implementaciones_para_al...

There are many more examples. Of course you get libraries for the "standard" stuff, it is when you get into the detailes, and that happens when you are already too deep into your project, that you realise all the missing pieces.

Also, what code editor do you use? we've tried everything, and seems the best option is you grow a beard and go emacs/vim. The VSCode plugins hog your laptop and are really inconsistent, incomplete and sluggish [1] [2].

[1] https://github.com/JakeBecker/elixir-ls/issues/54 [2] https://github.com/elixir-lsp/elixir-ls/issues/96

Of course there is no IDE similar to intellij, rubymine or pycharm.

Fair enough, thank you for sharing.

I've had good luck with VSCode but I've never really been an IDE user (even with Ruby) so I can't comment much on that.

That's not the experience I had with the environment. The tooling is amazing and the libraries are plenty for pretty much anything.