Live data from Hacker News

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

news.ycombinator.com

101–110 of 130 posts

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

#101
post #63

I've been experimenting with Elixir lately. Phoenix LiveView, in particular, is a fantastic technology. I can think of a few reasons why this stack might not be more popular: 1. Many of Elixir's historic strength's involve applications similar to Discord, where you have complex webs of near real-time communication between users implemented by a distributed back end. But very few apps actually need this. 2. LiveView o…

Thanks for the great reply, really appreciate it. I found the basic setup to be quite straightforward – using zsh which seems like a lucky choice now :D

I'm currently working on a backoffice software. You can do that with literally any language/framework. But as you mentioned, adding near-instant sync for different users would simply be a breeze compared to any backend with a React-ish frontend from what I saw so far. And I can totally see affordances for such a type of software going into this direction.

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

#102
post #89

Earlier quoted context omitted.

Not really, Rust can be 1% of the codebase but by Rusts nature it is implemented the most critical paths. Rust is insanely awesome for embedding. So you can have Python app that 90% of your team works on and embed Rust for the critical parts to optimize. But I get your point, however Rust is one of the most discussed programming languages in the past year on HN so it must be doing something right.

> however Rust is one of the most discussed programming languages in the past year on HN so it must be doing something right. That's true. It may even be more discussed here than Haskell was five years ago (though not nearly as hyped as Ruby was 15 years ago). Whether or not that's a good sign is up to interpretation, given that HN doesn't have a good record when it comes to market success and HN hype correlation. Th…

Not really.

Rust is significantly more discussed than Haskell ever was. Haskell barely ever had more than a couple hundred comments / posts. Rust has thousands.

Haskell was never discussed more than Ruby or Python and you can go to the archives to prove it. This year, Rust is more popular than Ruby and Python combined for discussions on Hackernews.

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

#103
No matter if the language is Great or bottom line worse if there’s no ecosystem and libraries to promote productivity is all moo, hey we hate JavaScript but before I think of wasm I would have written most of what I want in JavaScript, this is why Go was so productive that it took just 5 years since it’s creation for the software tech world to feel the impact, that’s why rust ecosystem pushing for more high level library sugaring or “one click convenient macros” and I kinda like where ocaml is going it really needs to remove the tag “Jane street programming language”

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

#104
post #55

I wrote this for Erlang about 10 years ago, and it probably still holds water: https://news.ycombinator.com/item?id=7277957 However, in 2023 rather than the 2013 I wrote that in, I'd add something else. In 2005, BEAM was revolutionary. It had things nobody else had. In 2023, it's a nicely integrated collection of a bunch of features you can get almost everywhere else, plus some features that aren't actually that impo…

Hi jerf! I feel this is evaluating Erlang from an angle it is not really prescribed as a solution for.

Erlang's goal was never to be your company's message bus. Or your k8s. Even hot restarts have always been advertised as an extremely specialized feature, justified only for very specific use cases. So you are right, if someone wants to use Erlang for these specific purposes, then I would ask them to triple check their decision.

> Other features, while nifty, like process restarts with new code, just turn out to be more niche than the brochure may advertise. That's a super important feature for phone switches, yes, absolutely, but it's never actually been something I need

Agree/disagree. I agree that fault-tolerance must not be an application developer concern. However, it is a huge plus to know that my web server, connection pool, ML serving, and other essential libraries are backed by supervisors instead of crashing and getting into a unknown state. And those are errors a type system won't catch anyway: "oops, your database sent a tcp packet you were not expecting, good luck!"

> the integration itself is a feature that very few other platforms can compare with! While I can find every feature now in other languages and environments, I will be putting together a stack of my own somehow, which can be beneficial, but is also definitely a cost of its own too.

Agreed and that's precisely the selling point. If you have to build an application that needs to concurrently talk to several APIs, or perform background processing, or do real-time messaging, or distribute machine learning workflows, then you can build such application using Erlang/Elixir without bringing Kafka, Redis, or much else into the equation. Replicating this elsewhere will often require stitching three or more technologies together, which become additional techs to learn, master, and maintain on every step of development, test, and production.

In any case, I still find it "incorrect" (sorry, I can't think of a better word) to judge Erlang and Elixir by the unmet potential of its _exceptional_ features. Even if you strip distribution, hot code swapping, supervisors, they are both excellent dynamic languages with concurrency capabilities that are not seen on other mainstream dynamic languages (although I am obviously biased). If you are chasing system-level performance or static-typing though, then they are obviously not a good fit.

Ultimately, I find the question of adoption is way less technical and rational than most people expect to. That's something we often hear about technology in general, and I don't think programming languages, frameworks, etc, are much of an exception. :)

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

#105
post #99

Earlier quoted context omitted.

> it is rare that a language doubles its market share (assuming it's not in the vicinity of zero) after its first decade JavaScript, Python, and Ruby are all counter-examples. Erlang and Haskell might as well. I don't think time plays such an important factor. A language may exist for 20 years and then a large corporation or an all encompassing framework draws attention to it, leading to unforeseen growth. > In other…

> 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 companies) are hovering around zero by the metric you provided, and I would have a hard time classifying them as a noise. And languages like Go and SQL are still well below the 5%-10% reference point.

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

#106

Earlier quoted context omitted.

> it is rare that a language doubles its market share (assuming it's not in the vicinity of zero) after its first decade JavaScript, Python, and Ruby are all counter-examples. Erlang and Haskell might as well. I don't think time plays such an important factor. A language may exist for 20 years and then a large corporation or an all encompassing framework draws attention to it, leading to unforeseen growth. > In other…

Oh wow. I did not expect this question to gather THAT much feedback, but I absolutely did not expect you showing up in the comments. Thanks for your work – it brought me to appreciate the functional programming viewpoint even with a first few steps into the language. It is a way different viewpoint compared to what I see in my daily work and will surely influence how I code in the future :)

Hi HerrBertling! I am glad you are enjoying Elixir and learning new things, I appreciate the nice words and the opportunity to be a positive influence. :)

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

#107
post #39

I'm not super experienced with Elixir/Phoenix, but I did notice the documentation was rather disappointing when I tried to learn it, compared to Rust. I kept trying to find a tutorial for a basic web app with Phoenix, everything I could find was for an older version which wasn't compatible with/had different names and locations for the various files than the version I had. Kinda blocked me from getting more into it.

Sorry to hear this. Phoenix v1.7 changed how it structures files in disk and that broke quite some of the getting started material. However, the guides are always kept up to date, so you can give it a try: https://hexdocs.pm/phoenix/overview.html

You can also see the resources on this page listed by year: https://github.com/phoenixframework/phoenix/blob/main/guides... - the recent launched ones are most likely up to date.

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

#108

I have been a big advocate for Elixir for 5 years before switching off. My takeaways: love José Valim and the team and the libs they produce. The team is always humble and helpful and produces high quality content in both code and documentation. Why I stopped using Elixir: I was using Elixir obsessively as a performance chasing tool, but then it just didn’t fill the gap properly: 1. Python (or other massively used la…

Regarding #1, as someone with managerial experience, I'm really tired of hearing, "We can't find enough Elixir resources".

That's a cop out excuse. On the Discord, Slack, and Elixir forums, there are hundreds, if not thousands of devs looking for work.

Often it is lamented that nobody can find enough Elixir engineers, but they also seem to have a very hidden agenda here. Executives just want the job done, and Elixir can do it, but all too often the trope of not finding enough resources is lauded about as a reason to stick to LANGUAGE_MANAGE_HEARS_ABOUT_MOST (Python, JS, RoR, et al).

Everyone also only wants Super-senior-staff-principal engineers for Elixir roles, with 20 years experience, and can live code a project to perfection in 3 hours. Maybe realize that as the community grows and engineers adopt to the language, it's ok to bring in early-careerist resources, or others who just are getting started out. Give them a book, some assistance, and keep working with them, and it doesn't matter who knows it at first, in 6 months you'll have a rockstar team.

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

#109
post #89

Earlier quoted context omitted.

> however Rust is one of the most discussed programming languages in the past year on HN so it must be doing something right. That's true. It may even be more discussed here than Haskell was five years ago (though not nearly as hyped as Ruby was 15 years ago). Whether or not that's a good sign is up to interpretation, given that HN doesn't have a good record when it comes to market success and HN hype correlation. Th…

Not really. Rust is significantly more discussed than Haskell ever was. Haskell barely ever had more than a couple hundred comments / posts. Rust has thousands. Haskell was never discussed more than Ruby or Python and you can go to the archives to prove it. This year, Rust is more popular than Ruby and Python combined for discussions on Hackernews.

It is also more discussed than TypeScript and maybe about as much as Go was at a similar age if not more, both of which have had a much more positive trajectory. My point is that HN hype is a really bad predictor of success or failure.

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

#110

Pros: 1. Clear and readable code. Emphasis on pure data being passed around. 2. More minimalist. JavaScript stacks like T3 app (Next.js, TypeScript, tRPC, Prisma) feel like they're solving endless problems caused by other "solutions" in the stack. With Phoenix, you mostly write Elixir, some Ecto macros, sometimes JavaScript for edge cases. 3. Phoenix LiveView is amazingly intuitive 4. Way faster to prototype in, more…

> 3. Have to figure things out yourself (usually read from docs or source code)

If you're all alone, there are still tons of guides, books, blog posts, et al. Documentation is a first class citizen in Elixir, and theresIf you're on a good team, they'll get you resources. If you're on a bad team? {shrug}

Post reply on HN