Live data from Hacker News

Ask HN: Are you satisfied with Elixir or do you regret choosing Elixir?

news.ycombinator.com

251–260 of 297 posts

Re: Ask HN: Are you satisfied with Elixir or do you regret choosing Elixir?

#251
post #129
post #31

My company is moving away from it. We built a few services but after a few years some of the original people that introduced it left the company and it became very difficult to hire for. New hires were either people wanting to learn (so we had to spend a good bunch of resources into teaching + end up with a system built by noobs to the language) or very expensive developers with a lot of experience in erlang and elix…

"Also, I've read some comments where people mention "we don't need redis", "we don't need workers" everything is so much easier. That was our thinking at first. But then you realize on deployments you will lose your cache, or your background jobs, etc. So you have to persist them either in mnesia or in the database. At that point you're just reinventing your crappy undocumented and untested version of delayed_job...…

> Immutability is cool, but we only needed to not be able to pass mutable references on the message bus, not be fully immutable within an Erlang process. I believe Elixir fixes this one.

In fact Elixir does nothing for this. It is true that in Erlang, you cannot rebind a variable and must use a different variable name for every assignment. In Elixir you can rebind the same variable, but the data is just as immutable as in Erlang, and the rebind is only visible in the current scope, which trips up new programmers not used to it.

Re: Ask HN: Are you satisfied with Elixir or do you regret choosing Elixir?

#252

I don't like the operators' logic in elixir. There should be one for assigning variables, one for pattern matching and there is no rebinding of variables. Something like: //for assignment x = 1 //for pattern matching x == 1 Automatically translated.

Then what would you use for testing equality?

And what would you use if you were pattern matching _and_ assigning in the same statement? I.e.

    {:ok, value} = function()

Re: Ask HN: Are you satisfied with Elixir or do you regret choosing Elixir?

#253

I use Elixir and don't regret it, but I'm still mostly in Erlang. I regret "Elixir" the language itself. I feel they should have added a few more features to Erlang, like module parameters, and not bothered with Elixir. It makes "Erlang" look superficially like Ruby and gets people who are ill-prepared to understand the Erlang mindset into the Erlang community.

What a silly gatekeepingmindset. Of course developers coming into a new paradigm are not going to immediately get it. That is the whole point of people being able to learn new things. If a Ruby dev starts learning Elixir and it's a steep curve for them, and they manage to do it, good on them!

Re: Ask HN: Are you satisfied with Elixir or do you regret choosing Elixir?

#254

I use Elixir and don't regret it, but I'm still mostly in Erlang. I regret "Elixir" the language itself. I feel they should have added a few more features to Erlang, like module parameters, and not bothered with Elixir. It makes "Erlang" look superficially like Ruby and gets people who are ill-prepared to understand the Erlang mindset into the Erlang community.

> It makes "Erlang" look superficially like Ruby and gets people who are ill-prepared to understand the Erlang mindset into the Erlang community. I don't think it turned out to be true. For myself and many others, we wouldn't get into Beam without Elixir. As a Rubyist I don't understand what mindset I am missing?

I think perhaps you don't have the required superiority complex :)

Re: Ask HN: Are you satisfied with Elixir or do you regret choosing Elixir?

#255

Earlier quoted context omitted.

> We also found many times missing libraries, or found libraries which are incomplete, or unmaintained or just not well documented Can you give some examples here. This may have been true in the past, but isn't true anymore. I can give an example where ruby is lacking: Performant HTTP libraries, Elixir and Erlang are so good in this space, look at `finch`, `httpoison` etc,. there is first class support for HTTP2 and…

> Using dialyzer gives you so much static analysis for free as opposed to the default ruby vscode plugin. I have never heard of complaints about tooling. ctrl-f for "dialyzer" in this thread, and you will :)

Or peek into my four-year old codebase, and try to give a usefull meaning to the error 'function has no local return' that pops up in dozens of functions which, honest to FSM, have a local return. (The message usually, but not systematically, mean that the function is calling a function that is calling a function that is ..[skip].. calling a function which spec is not exactly respecting the `@spec` comment - because how could it, there is no static type checker ;) ?)

Re: Ask HN: Are you satisfied with Elixir or do you regret choosing Elixir?

#256
post #196

Earlier quoted context omitted.

The core insight of Erlang is that having lots of little processes communicating over a message bus is a great way to design code. It also proves by demonstration a statement that many programmers, especially in the past decades, would have found hard to believe, that you can structure code as a whole bunch of relatively small self-contained services. Many programmers, perhaps even today, would not believe how far yo…

But Erlang provides something that Kubernetes/Docker/Systemd isolation does not: fine granularity / per request isolated processes. Is the difference between a code bug killing a single call in a VoIP system vs killing an entire OS process with hundreds of them.

Do you mean actors? I kinda hate how they’re always referred to as processes.

https://github.com/actix/actix https://github.com/akka/akka

Re: Ask HN: Are you satisfied with Elixir or do you regret choosing Elixir?

#257
post #99

I love Elixir. But… Five years ago I spent time learning Elixir on the side thinking I was investing in an upcoming technology that would pay off for me financially. I eventually built some services in Elixir at work and really enjoyed it. They performed well but the language didn’t catch on with the rest of the team. However, five years later the mainstream languages (Ruby, Go) are still paying more. I still get rec…

Interesting, I've had the opposite experience. I get paid a ridiculous amount for Elixir work because finding experienced Elixir devs is so difficult. Most of the job offers I get for it I avoid because I think "there's no way this company is going to last longer than a year paying that much for developers".

Care to share get actual salary and location?

Re: Ask HN: Are you satisfied with Elixir or do you regret choosing Elixir?

#258
post #151

Earlier quoted context omitted.

I worked on an elixir project at a ruby shop for about a year. We had complex distributed system, and were replacing core ruby services with elixir. Ultimately the project was a failure, and was re-re-written in Ruby, and the Elixir devs were let go. We faced similar issues to you, bad tooling, weak libraries, and very few knowledgeable devs. Finding people to hack on elixir was extremely difficult, and likely the dr…

I think new languages wont be able to break in the top 10 without a mega corp pushing them. The market is too saturated and there is a language for everything under the sun. Elixir is just facing too much competition for web stuff and doesnt enjoy Google pushing it.

I don't think it's necessary for a language to be in the top 10 to be considered a success. If the people who use it, wouldn't use anything else, then that is the success.

Re: Ask HN: Are you satisfied with Elixir or do you regret choosing Elixir?

#259
post #31

My company is moving away from it. We built a few services but after a few years some of the original people that introduced it left the company and it became very difficult to hire for. New hires were either people wanting to learn (so we had to spend a good bunch of resources into teaching + end up with a system built by noobs to the language) or very expensive developers with a lot of experience in erlang and elix…

oh boy. where to begin

> We built a few services

So you never really committed to it in the first place. Also, this complicates the deployment problem.

> after a few years some of the original people that introduced it left the company

Probably left for a company that actually committed to Elixir. :P

> and it became very difficult to hire for

In a world where everyone is remote and where 10 Elixir people apply to every job, this product must have been pretty unappealing

> New hires were either people wanting to learn (so we had to spend a good bunch of resources into teaching + end up with a system built by noobs to the language) or very expensive developers with a lot of experience in erlang and elixir.

"We didn't want to pay employees their worth and instead bitched about what we couldn't get without hiring those employees"

(Why couldn't you hire an assortment? One experienced guy and a couple noobs?)

> We also found many times missing libraries, or found libraries which are incomplete, or unmaintained or just not well documented

Alright, fine. Sometimes you have to "roll your own" in this space, still.

> Tooling is just terrible. The VSCode plugin is crap

You should not use the word "tooling" here because VSCode is not an IDE, Elixir should not require an IDE, and moreover, Elixir should not be judged because "there is no good IDE for Elixir". "Tooling" should refer to the support libs and tools that ship with the language, all of which are excellent.

> At that point you're just reinventing your crappy undocumented and untested version of delayed_job.

Spotted the guy who never heard of Oban https://github.com/sorentwo/oban Benefit of the doubt: Perhaps it didn't exist yet.

> Most of what you get from elixir in terms of redundancy, high availability, etc you can have that anyway from kubernetes, heroku or any PaaS

This is entirely missing the point. If a bug or runtime error crashes your Ruby interpreter, you better have another one ready to go from a pool (because Rails stacks can take a while to load), and then you better not exhaust that pool! If such an error crashes Elixir, it just restarts the process, which only takes a millisecond because forking an immutable language's state is trivial compared to a mutable language's state.

> Liveview

I actually haven't played with it much yet so can't comment

> In the end, we are back to Rails and much happier

"We can underpay cheap devs again"

You also repurchased entire classes of bugs that are impossible in Elixir such as: mutation bugs, monkeypatch bugs, and concurrency bugs (just forget running your test suites in parallel). Also, these are literally the hardest types of bugs to fix (nondeterministic behavior), and will likely cost you more in the long run than any differential salary you balked at (I have spent entire months debugging something in the Ruby space, you'll remember my comment once this bites you in the *** one day).

Re: Ask HN: Are you satisfied with Elixir or do you regret choosing Elixir?

#260
post #197

Earlier quoted context omitted.

You can use alpine.js. There is even a way to integrate it with LV: https://dockyard.com/blog/2020/12/21/optimizing-user-experie...

response.text()) .then(html => { $refs.dropdown.innerHTML = html }) " @click="open = true" >Show Dropdown Seriously? This has to be a joke.

why would you load the dropdown HTML separately, just render it along in the template with x-show="open" and have the @click="open=true"?
Post reply on HN