TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: Why Isn't Elixir More Popular?

87 点作者 wkyleg7 个月前
It seems that when implemented correctly, running full-stack Elixir can greatly simplify complicated distributed systems. In-memory storage can replace a cache, and the architecture itself can replace a message queue. Horizontal or even vertical scaling can replace complicated scaling mechanisms. There are plenty of advantages to running data pipelines in parallel too.<p>There&#x27;s also a huge trend now away from managed cloud services (ZIRP), and it seems like Elixir with a database on the same machine or network could deliver great performance and scalability.<p>So why don&#x27;t more people use Elixir? I&#x27;ve read some complaints about the lack of static types or not having as many developers. But if those were the only constraints, one would think that they could be overcome, or some service could just greatly simplify Elixir deployments.

25 条评论

hakunin7 个月前
Here’s my anecdote.<p>I built 3 production projects in elixir around 2015-2018, and it was a blast to learn and work with. Those were interesting projects that were a great fit for the stack. One was March Madness bracket game which required a huge throughput on day one, and another was a football game audience play calling each play from their phone as the team is playing live at the stadium. This one needed a lot of timing coordination and poor connection handling. I even put out an open source fast&#x2F;customizable leaderboard on top of ETS.<p>However, I didn’t feel the need for this stack on most projects, and if I’m totally honest, I never got good at the novel way of building applications in it.<p>While it was very enjoyable, everything felt a little awkward. Even 3 years in I constantly felt that I’m not doing it right, and I’m fighting the language to do data transformations in a purely functional style. I never got used to writing Ecto queries, and always had to look up their syntax. Plus, there didn’t seem to be a good architecture story, just isolated praise of OTP. And Phoenix further fueled the confusion, making it hard to understand whether I’m supposed to reason about my app like a Rails app (just build controllers, models, and views) with no regard for processes, or I should orchestrate some creative supervision trees, that I can’t even tell how they would be arranged in a typical web app. Going back to Ruby on Rails was kind of back to super productive comfort zone after a bit, and I just continued staying there.<p>I’m still looking back at Elixir with nostalgia, wondering if I’m going to have a chance to go back to it and really make it an extension of my arms&#x2F;brain like Ruby had become. And whether I can do all that amazing supervision-based architecting I keep theorizing in my mind. I loved Dave Thomas’s vision (and agreed with his controversial takes) and really wished I could get as good as Sasa Juric at really deeply reasoning in this framework. Maybe one day.
评论 #41796153 未加载
评论 #41795875 未加载
评论 #41809046 未加载
yen2237 个月前
The simple reason is that Elixir is competing in the backend web-services space, which is a very crowded space with many equally-compelling alternatives.<p>As someone who likes working with off-meta languages, it&#x27;s clear that the default state for any new language is to die an early death. The fact that Elixir hasn&#x27;t died is testament to its strengths.
johnklos7 个月前
Got me. Running Akkoma on Elixir is a piece of cake, relatively speaking. Trying to run Mastodon on Ruby by simply using the latest version of the required Ruby components hasn&#x27;t worked for me, ever.<p>The idea that we&#x27;d need to keep a snapshot of modules from a specific date in order to run certain software is ridiculous, and the idea of running it in a container like Docker is just giving in to bad practices. Too often it means things are too fragile to update when there are security issues.<p>I haven&#x27;t seen this happen with Elixir. What do they do better &#x2F; differently from Ruby that updating doesn&#x27;t cause the house of cards to come crashing down?
评论 #41792982 未加载
ipnon7 个月前
No manager is going to lose their job by hiring 10 Python and JavaScript engineers to accomplish what could be done with 1 Elixir engineer. And that’s how most time and effort is allocated in our tech labor market economy. It’s by working backwards from “I want to still have a job in tech next year.”<p>The number of people who are calculating which language to write in by thinking “how can I write a fault-tolerant distributed system with less time and energy so that I can quickly release performant products” is minuscule. The lack of popularity of Elixir is evidence of this I think.<p>In regards to your point on ZIRP: billions of dollars have been poured in to LLMs that are biased toward legacy languages like Python and JavaScript. Even the file structure of these languages is conducive to LLMs. A HTTP server can be and is frequently defined in a single file or function, where everything from socket creation to connection handling to request parsing to database queries to response can be composed in literally a few lines of code. This immense expressiveness is a testament to the power of HTTP. But as I’m sure we’re all aware there are limits to what can be accomplished with a single machine serving these stateless requests, and the limit can be reached very quickly. But LLMs gravitate towards producing these haiku-like incantations, it’s trivial for them.<p>Elixir’s power comes from having a well-defined API and explicit failure modes for each of these layers, each in their own expressive modules. This makes it difficult for LLMs to write Phoenix code when they’ve been optimized to output a 3-line FastAPI decorator-definition-query endpoint. Each of these layers in Phoenix is by itself quite simple, each layer has about 2-4 required functions to be implemented, and Phoenix can generate all of these for you. But ChatGPT doesn’t seem to be able to grok it all at once the way a good engineer can after readings the docs for an afternoon.<p>Will Elixir survive an era of programming where RTFM is a lost art? I suppose we will find out soon enough!
评论 #41817837 未加载
评论 #41806752 未加载
madamelic7 个月前
Since this thread is going to be bait to more experienced Elixir devs, can someone tell me books, blogs, etc that you like that discuss performance in Elixir?<p>I am working on an Elixir project that in no circumstance should be taxing but it&#x27;s falling over miserably at like 100 - 200 events per minute. The detail is it is distributed-ish IoT. I didn&#x27;t write it, the person(s) who did write it are gone, and no one else writes Elixir. I&#x27;ve gotten some good gains already but I&#x27;d like to squeeze the 80 - 90% of juice I think I can get before resorting to beefier hardware.<p>I&#x27;ve gotten into instrumenting and measuring it and I have some ideas but I&#x27;d love to hear others point me to other ideas. The real problem is that the hardware is miserably underpowered and it is real-time, by that I mean I can&#x27;t defer, schedule for later, or de-prioritize anything.<p>---<p>To actually contribute, I really like Elixir. I am not yet sure why I would advocate for it over something more &#x27;simple&#x27; like nodejs (My background is, accidentally, Javascript World) but it&#x27;s certainly a very nice language to write in. It feels magical but not too magical where you get scared it&#x27;s trapping you into its web.<p>Before anyone jumps too much on me for it, I gauge &quot;simplicity&quot; by how many people can I hire to write it. You can barely swing a cat without hitting 3 competent Javascript developers. I tried for many years to hire another golang dev so I could write it professionally, I only encountered a few despite having been in most interviews my employers would do. With that said, it may just be that the Venn diagram between &quot;writes Javascript&quot; and &quot;writes golang&quot; is small.
评论 #41795305 未加载
评论 #41795414 未加载
评论 #41794131 未加载
评论 #41795419 未加载
sergiotapia7 个月前
It&#x27;s a wonderful language. Unfortunately the only places I&#x27;ve been able to use it and get paid were places where I ultimately had the decision making ability of the tech stack.<p>Why isn&#x27;t it used? It&#x27;s niche and betting on such a small community is risky for the majority of companies. Why use Elixir when you could hire 10 engineers to pump out javascript. That&#x27;s the mentality of most.<p>Hiring for elixir was great, it self selected people who wrote code as their craft. You kind of have to be curious about code to even be aware of Elixir, know how to write elixir. These types of devs would pick it up really quickly because the language is just so damn ergonomic.<p>I&#x27;m using Elixir now, and I wake up so happy that I get paid to do this. I am really blessed.
评论 #41794306 未加载
评论 #41792967 未加载
评论 #41793710 未加载
binary1327 个月前
Most people just want to get something done and reach for the tools that will most straightforwardly and simply get them to their destination. Niche stuff doesn’t have the market fit because you’ll always have a hard time finding people to work on your product that don’t cost twice as much as everyone else, unless it’s 10x faster gtm &#x2F; 10x cheaper. Seems obvious enough.<p>Personally? I like good typesystems and very sharp tooling. It has seemed to me that Elixir has neither, and doesn’t really offer me a particularly big advantage that would outweigh those disadvantages.
评论 #41805768 未加载
goralph7 个月前
In a commercial setting (i.e. not a side-project) the choice of programming language is also a business decision.<p>The main factors being:<p>- How large is the pool of available candidates for this language? A recruiting risk.<p>- How mature is this language? A business continuity risk.
评论 #41795659 未加载
ram_rar7 个月前
A limited job market, considerably smaller ecosystem (compared to java&#x2F;python), and lack of support from major tech corporations (unlike Go or Rust) makes it challenging to adopt Elixir.<p>At my company , we inherited a legacy Elixir service, but we&#x27;re actively moving away from it. We found it more practical to rewrite the service in Go (entire team is proficient in + LLMs make it easier to migrate) rather than invest time and resources into learning Elixir and its associated ecosystem. The return on investment for mastering Elixir didn&#x27;t justify the effort required, given our specific circumstances and needs.<p>I do like to tinker with Elixir for hobby projects. But supporting a whole new language in a company is an uphill battle, that&#x27;s incredibly hard to justify.
评论 #41805980 未加载
toldyouso20227 个月前
Used elixir a few years ago for tutorials and such, worked fine.<p>Tried to use it again in 2023, vscode extension would break. Tried on 2 windows machine and one linux machine, exetension always broke.<p>I then figured out why (I don&#x27;t remember the exact reason, it was one of those &quot;yeah I can see why it didn&#x27;t work and it&#x27;s my fault but it kinda isn&#x27;t really&quot; situations) but at that point I was done because I had better stuff to do.<p>Point being, if you want your stuff to be adopted make sure the tooling is noob friendly. The noobs of today can be the professionals of tomorrow.<p>Especially today when there is so much stuff to learn and elixir is so far from the usual and requires a certain time investment
评论 #41800720 未加载
kugelblitz7 个月前
I use Symfony (PHP based framework) and it works fine. I&#x27;ve been able to get into Django (Python), Laravel (PHP), Java (Spring) and even Grails (Groovy) because they either had similar concepts or even similar syntax (I mostly do web development, so this is a very biased take).<p>Being a freelancer, I need to focus on what&#x27;s marketable. Sure, Elixir will get me into a niche, but I will have way less projects to choose from. And when I start a project for a company, if I start with Elixir, I will also have a smaller pool of devs to recruit from. It&#x27;s a chicken-and-egg problem.<p>Nowadays, if I start a project, I would try to build on monolith and full framework with a PaaS.<p>Unfortunately, most projects want to start out &quot;the right way&quot;, which means separate backend (e.g. Java), separate frontend (React), rented server (e.g. Hetzner server) and custom deployment (some pipeline an outside agency built when they first started the project).<p>I&#x27;d rather spend 400 USD on tools each month, but then only need 1-2 full stack devs instead of 6-8 people (1 sys admin, 1-2 deployment, 2 backend, 2 frontend) and with all the overhead that comes with it.
评论 #41815374 未加载
pansa27 个月前
Ultimately, Elixir is a functional programming language.<p>Has any functional language ever really become popular?
评论 #41804146 未加载
7bit7 个月前
I&#x27;m Not a Professional dev, but a sysadmin WHO Likes to code. I learned a bunch of languages over the year. C#, Java, Python, JS&#x2F;TS, PowerShell, Rust. Not professionally, but enough to finish some Personal projects.<p>Elixir was so vastly different, had such a small community that I lost interest very, very fast. It just felt like a waste of time. Any of the other languages I learned I could and did apply at my job. Even just knowing the languages helps a great deal when evaluating the next tech stack to implement. And Elixir just doesn&#x27;t. It&#x27;s a niche language for niche applications and doesn&#x27;t personally help me in the least.<p>I also just did not like the DX. I did fail to understand how to use the VS Code debugger to step through functions. Printing to console to inspect variables felt like being in the stone age again, no thank you.<p>I still believe Phoenix LiveView is a really, really good tech and currently wish that Svelte could implement something like that.<p>And that&#x27;s my personal reason for not looking into it.
评论 #41802987 未加载
评论 #41796364 未加载
kdemetter7 个月前
I love Elixir, and I&#x27;ve been learning it because I see the potential. But, it is a steep learning curve, and it&#x27;s quite a different paradigm than most developers are used to.<p>Which means it would be very difficult to get it adopted in say a company, because it would require lots of money to retrain people and it&#x27;s harder to find people for it.<p>I think it might also have a marketing problem, in that it uses the Erlang VM which is pretty old. That&#x27;s actually evidence of it&#x27;s strength, but it&#x27;s less sexy than doing something completely new.<p>However, I think it&#x27;s a great language to just try out yourself. Even if you won&#x27;t be able to use it professionally, you&#x27;ll still learning something you can use in your job as well.
gregors7 个月前
As an in-the-code CTO that runs small teams, I&#x27;ve used Elixir&#x2F;Phoenix quite successfully.<p>Hiring has never been an issue, in fact - Elixir was a tool to recruit a specific senior developer we wanted but couldn&#x27;t pay them what they wanted due to budget. Elixir interest got them to come on board. I&#x27;ve trained a number JR developers with no prior experience with great success.<p>I was all in on Rails for over a decade, Elixir&#x2F;Phoenix has definitely replaced that stack for me. I think it hits a sweet spot in terms of runtime performance and developer productivity. The latter is not something you can afford to ignore on small teams.
评论 #41805930 未加载
kdemetter7 个月前
I love Elixir, and I&#x27;ve been learning it because I see the potential. But, it is a steep learning curve, and it&#x27;s quite a different paradigm than most developers are used to.<p>Which means it would be very difficult to get it adopted in say a company, because it would require lots of money to retrain people and it&#x27;s harder to find people for it.<p>I think it might also have a marketing problem, in that it uses the Erlang VM which is pretty old. That&#x27;s actually evidence of it&#x27;s strength, but it&#x27;s less sexy than doing something completely new
maz1b7 个月前
From what i&#x27;ve read, it is the &quot;upgrade&quot; to rails for people who want higher scale. I don&#x27;t know if I agree, as Rails definitely does scale if you know what you&#x27;re doing. Would love to hear more about others experience using Elixir for fast, low-latency high throughput scale.
评论 #41804776 未加载
aristofun7 个月前
One of the reasons is that FP languages just don’t feel natural to most beginners. It gives the language a very niche vibes. And rightfully so, I suppose.<p>But the key reason is that no giant has sponsored and promoted it.<p>Products are virtually never popular because of their internal qualities.
pjmlp7 个月前
From my point of view, it builds on BEAM, and while Erlang might have been a success story in telecommunications, there is no reason for any of my employers to use it instead of JVM or CLR, and the languages available to them.
shortrounddev27 个月前
I think functional programming languages are at an inherent disadvantage
jatins7 个月前
I can&#x27;t say about mass popularity but for me personally the lack of static types has held me back from using it. Now that it&#x27;s being gradually introduced I am looking forward to trying it
hauxir7 个月前
We&#x27;re using it with great success at kosmi.io
andrewstuart7 个月前
Straight up - you should not use it without much more compelling reasons than those you have outlined.<p>It&#x27;s not OK as CTO to push your company to use for favorite pet slightly obscure technology.<p>The company needs ordinary technologies to get its job done - Java, C#, TypeScript, Golang, Python, something like that. Maybe even Ruby but frankly that causes hiring headaches too.<p>Unless the company is doing something so extraordinary that it NEEDS Elixir over the technologies above, and it probably doesn&#x27;t need it.<p>I know companies that went all in on Elixir - they spend all their time trying to recruit Elixir developers from a tiny recruiting pool, or trying to find people willing to learn it and bring them up to speed. This is poor business practice - there was nothing they were doing that could not be done just as effectively with any of the other major languages.<p>Just use normal technologies, have all the people and documentation and training and other resources available and get on with the job of building the software that the business needs.<p>I guarantee you that the company that went with Elixir due to the enthusiasm of some current or past CTO will have to go through the painful process of getting rid of it.<p>Elixir is for personal projects. Corporate software development is mature enough now that ordinary technologies are extraordinarily powerful and there&#x27;s almost no reason sufficiently compelling to not use them. Toys are for home, tools are for work.
rsrsrs867 个月前
I regret using it. Recruiting risk. Smaller ecosystem. I should have gone for Python.
评论 #41795963 未加载
评论 #41795943 未加载
ddyevf6353727 个月前
Because it is not strictly typed language.
评论 #41795287 未加载
评论 #41795591 未加载