Live data from Hacker News

Ask HN: Why isn't Phoenix/Elixir more mainstream?

news.ycombinator.com

121–130 of 130 posts

Re: Ask HN: Why isn't Phoenix/Elixir more mainstream?

#121
post #19

Earlier quoted context omitted.

I disagree with the "require" specialized deployments – we have hosted our elixir apps for years as stateless web apps, just like any other architecture. In fact, you can build a release that's just a zip file which also contains the full elixir/erlang runtimes, that can be deployed on a barebones server (assuming the same libc, etc). It's not "single-executable" nice like Go/Rust/.NET but it's much simpler than it u…

Just losing the while loop was a big one for me. I miss it often. I know the cost of calling something recursively. It's never going to be as cheep as a while loop.

That depends on the compiler and lang implementation. What you are saying is true for Java or imperative langs. It's not true in langs like OCaml who has ergonomics around functional programming. while loops are just as performant as recursive functions and HOF.

Re: Ask HN: Why isn't Phoenix/Elixir more mainstream?

#122
I think the learning curve is one of the biggest challenges. Functional programming is very different for someone who got started with JS/Python/PHP/Java/C#/Ruby/etc. and you have to re-think how you do things.

And when you get a bit further in, since there’s no classes and inheritance in Elixir, you have to get into macros or other really complicated patterns if you want to avoid code duplication.

So while I love the language, it is a challenge that I you can’t use the patterns you’re used to from other languages, but have to learn new (arguably better) ways to do things. And not everyone wants to be challenged this way.

Re: Ask HN: Why isn't Phoenix/Elixir more mainstream?

#123
post #61

Honestly, after years of writing python I have now gotten to a point where I fear dynamic typing. The fact that Erlang and Elixir do not have static typing, outside of a voluntary type checker, makes me worry about using them. And yes, the approach to error handling in Erlang and Elixir is "let it crash" etc. The runtime debugging tools are excellent. There's approaches to design which ensure that even if there's som…

IMO, lack of support from strong typing leaves you with nothing but writing better code in general. Undoubtedly type checker prevents obviously/not that obviously invalid code, but if you can't catch it yourself, you're fucked :)

Although most elixir code I've worked with was written by guys coming from ruby/java, and they just couldn't resist abusing macros for emulating inheritance, or overusing macros per se, once you switch your mind and clean that shit up, elixir is more maintainable than golang, for example (working for go company now). It has more tools to manage complexity and boilerplate, while nearly all golang code is complex/boilerplate itself.

Re: Ask HN: Why isn't Phoenix/Elixir more mainstream?

#124
post #99

Earlier quoted context omitted.

> JavaScript, Python, and Ruby are all counter-examples. Erlang and Haskell might as well. I would say that only Python is a counterexample, and possibly Ruby although its super-success wasn't long-lasting. Erlang and Haskell have been hovering at under 1% for several decades. > For example, on GitHub language stats [1], only three languages have more than 10% I meant 10% as a symbol. Languages very rarely double the…

> Erlang and Haskell have been hovering at under 1% for several decades. I am well aware that I am nitpicking at this point, but putting a restriction on your metric that rules out 99% of programming languages makes the comparison quite limiting. :D You are ultimately only speaking about languages that are already quite popular, because even languages like Kotlin, Dart, and Swift (all endorsed by billion dollar compa…

Obviously 99% of languages never make it at all, but Rust's adoption rate is worse than what the languages at the Go/Kotlin level -- i.e. those languages that aren't superstars but have achieved very respectable success -- had at that age. More importantly, most languages reached their ultimate "tier" by age 10 and virtually all (I think all but Python) have reached it by age 15. As of right now, its adoption doesn't suggest Rust is poised to replace C++, let alone do better. But yes, I agree that its prospects are looking better than Haskell's or Erlang's.

And again, the 5%/10% numbers were symbolic. 10% was meant to represent Go/Kotlin levels of success.

Re: Ask HN: Why isn't Phoenix/Elixir more mainstream?

#125

for me its hard to justify betting on something without a compelling edge computing (eg cf workers) story in 2023. i could not even think of a case where beam would be the right fit for a webapp/webpage except maybe a static rendered status page for something that runs on beam anyways. and i say this as a diehard erlang fan who would love to have a justification to use it more. of course there are plenty of services/…

> for me its hard to justify betting on something without a compelling edge computing (eg cf workers) story in 2023. fly.io? https://news.ycombinator.com/item?id=28621478 > i could not even think of a case where beam would be the right fit for a webapp/webpage except maybe a static rendered status page for something that runs on beam anyways. LiveView / the "PETAL stack" are my first choice for web applications due t…

fly.io is cool but no real alternative. a compelling edge computing story would include freely moving edge functions to service workers and back if they should work offline or the request patterns change and having < 10ms cold starts with full scale to zero.

Re: Ask HN: Why isn't Phoenix/Elixir more mainstream?

#126

Earlier quoted context omitted.

It also goes the other way. If you're a savvy dev and a search like: https://www.itjobswatch.co.uk/default.aspx?q=Elixir%2C+Rust%... comes up with zero for Elixir, you don't sink time into it. If nothing else, you know that the low job availability puts you in a very weak bargaining position.

This is the kind of attitude that would have seen Java jobs proliferate lol

The harsh reality is that when it's your livelihood, and not just a hobby, you HAVE to make these calls, whether you like the answers or not.

Re: Ask HN: Why isn't Phoenix/Elixir more mainstream?

#127
post #84
post #72

Earlier quoted context omitted.

Consultant.

how do you find your customers? do they use elixir already and need help, or are you doing new projects where you are able to choose/propose elixir to implement it?

That was a startup that decided to use Elixir and Phoenix when starting from scratch. There were not many people working with Elixir back then and they found me.

Usually my customers are already established companies, small sized, and they find me by word of mouth. Or, I have a lull between projects and I get in touch with companies I worked for in the past or that know me, and I find one that needs help. It's usually either Rails or Django.

Re: Ask HN: Why isn't Phoenix/Elixir more mainstream?

#128
post #49

Anecdotally, I think Elixir/Erlang are too difficult/esoteric compared to other languages. That makes it hard to come back to after not touching it for a while, which means it'll be incompatible with a lot of devs that use other languages. When I come back to Golang, I can pick it up almost immediately, so I often use it for personal projects. It also has great concurrency primitives, which is one of Elixir's biggest…

Agree with Go sentiment. Not only that, it is a great general purpose language that does great with any heavier computational load stuff too.

I do everything with Go and Node+TS. All API services, real time / notifications, and crunchy stuff happens with Go. Node+TS handles anything else for either 3rd party things (usually the node sdk is far superior in terms of documentation and support) or one off scripts.

I've tried phoenix. End of the day I don't want to work with something which is built on something else which I don't know/understand to an even bigger degree. And fwiw, I don't see the point of deep diving into erlang/beam when Go basically does everything plus more, within its boundaries. Reminds me of JVM, you can code all day in Scala (like any junior engineer) but at some point either when shit hits the fan or incompatibility strikes, you need to learn Java and JVM internals.

Post reply on HN