by uxcolumbo on 6/4/25, 11:00 PM with 132 comments
by ipnon on 6/5/25, 3:33 AM
Until we get superhuman autonomous coding agents the human in the loop grokking the generated code is still the limiting factor. LLMs are marginally better at generating mainstream languages than Elixir, but the generated Elixir code is much easier to understand and modify, and because of the runtime, will practically never crash your system.
by rickcarlino on 6/5/25, 9:16 AM
by CompoundEyes on 6/5/25, 10:16 AM
by the_duke on 6/5/25, 11:25 AM
The stricter the language, the harder it is for the LLM to produce nonsense, at least if it can get compilation errors and run tests. And the easier it is to validate that the output is correct, because the types already tell a lot of the story.
A language with dependent types, linear types, etc... would be ideal, but alas...
At the moment Rust is the sweet spot. Fairly popular (and hence known to LLMs and with a fairly good ecosystem), great error messages to guide resolution of problems, stricter type system and more compile-time guarantess than almost all of the other semi-popular languages...
Now Rust isn't trivial to write, for both humans and LLMs, and the output was pretty bad for a long time.
But with the ability to run `cargo check` and execute tests, even the current first iteration of agents is really quite good at iterating until it gets a working result.
by fernmyth on 6/5/25, 3:17 AM
LLMs were fantastic for writing a project[0] in a new, niche language[1]. They help write any missing libraries. They help iterate when I get stuck on language aspects. They explain concepts as well as the median SO post, and much better than the posts that don't exist.
[0] https://github.com/TedSinger/chatfile/
[1] https://crystal-lang.org/ - quite pleasant
by miki123211 on 6/5/25, 4:11 PM
We had the "first wave" of languages that were marketed to decision makers (Java), the second wave that was marketed to developers (Ruby on Rails, Rust), I think a third wave is coming, where the language will be designed to be LLM friendly from the ground up.
by tobyhinloopen on 6/5/25, 6:08 AM
Functional programming works great on LLMs because there’s no hidden side effects. I let my LLM tools write functional style NodeJS but that’s only because Node is easiest to test with.
by badsectoracula on 6/5/25, 9:04 AM
This is useful for humans too, though personally i hope we go away with context window limitations in the future - perhaps context windows could be something like 'CPU registers' that the CPU likes to work with internally but there will also be an external "large" memory that LLMs can access and work with.
by te_chris on 6/5/25, 8:07 AM
It definitely feels like Gemini has been fine-tuned to ace the react benchmarks.
by bad_haircut72 on 6/5/25, 4:50 AM
by jtbayly on 6/5/25, 7:41 PM
I didn’t ask what language or framework to use. I “heard of Elixir on a blog post, or they saw this article topping the hacker news charts.”
I even asked an LLM what else I should consider besides Phoenix, but after considering, I stuck with it.
Gemini gets stuck sometimes, but I just ask ChatGPT to help and bust through.
It kind of reminds me of when I wrote code and couldn’t easily see the errors. Another pair of eyes can really help. Another LLM that didn’t write the code can really help, too.
by artem2471 on 6/5/25, 7:33 PM
by Dowwie on 6/5/25, 7:10 PM
Elixir is so good for workflows and pipelines, utilizing all available hardware resources. It makes sense why Elixir will be used more going forward for agentic workflows, but the greenfield engineers/architects are rushing to market with Python and here we are.
by mkesper on 6/5/25, 5:54 AM
by aczerepinski on 6/5/25, 7:49 PM
by rhgraysonii on 6/5/25, 1:47 PM
I sometimes have different thoughts of approach than Zach, but this post really resonates with me. I've been in Elixir full time for over 10 years and would love to see an evolution in its adoption fueled by this.
by 2d8a875f-39a2-4 on 6/5/25, 10:51 AM
At lot of current paradigms are about things like abstraction and DRY that matter to humans creating and maintaining a code base. An agent driving some LLMs will have other priorities.
by insane_dreamer on 6/5/25, 4:15 PM
This also makes it much more difficult for new, better, and innovative ideas to break through the noise floor.
by sergiotapia on 6/5/25, 4:58 PM
The two thorns that remain:
1. The Phoenix Form <> changeset story is still quite tricky, even to me. It's very 'yappy'.
2. Elixir not having types hurts when a project grows. Even typespecs help very little. I wish we had proper types and let the computer flag stuff.
by jshprentz on 6/5/25, 1:13 PM
McCord began by reviewing the current scripted and templated Phoenix code generator. He then showed how a tool-invoking LLM agent could be implemented in one screen of Elixir code. The bulk of his talk demonstrated generating apps with the Phoenix.new tool. It was interesting to see the tool generate development plan and begin coding to implement the plan.
I was fascinated to hear McCord explain and critique the LLM agent as it generated a Phoenix app.
"[It's] going to come up with a plan for our app and codify that into a Markdown file."
"Now it's going to take our high-level plan and make it into an expanded plan for us and itself."
"You can say, 'I changed the plan; execute the plan.'"
"We just recursed in the server and we did a req post. It's doing a req post right now and the tokens are coming back!"
"The agent just invoked a tool, which is 'I'm going to create a file.'"
"Hopefully it does a 'surgical modify tool,' which makes it not have to modify the whole file."
"A run-time error! Oh, no! Live coding is terrible. Oh, wait. It knows I need to add some missing functions here."
"You would be like, 'Oh, no, the page broke. What happened? I'm going to look at this error.' We just send that thing back to the chat completions endpoint and magic comes out and fixes the error."
"It didn't change a web file. We should fix that."
"This is an issue that humans hit; Steff and I need to fix that."
"It added the input at the bottom. That's not ideal."
"The agent decided to idle here. ... The way I implemented this is everything the agent responds with is a tool call and it has an idle tool and that's what it invokes when it is done."
by djaouen on 6/5/25, 6:28 PM
by 1oooqooq on 6/5/25, 9:01 PM
by aptj on 6/5/25, 11:45 AM
Another problem that Elixir community must address is to make it super-easy ("one-click") to deploy to hosting of choice (own VPS or cloud) with most things working auto-magically (configured): app, DB, admin-panel, observability (app, server, db), backups/restore, domain, emails (admin, transactional), even maybe CDN/caching and perhaps some integrations (payments, uptime, alerts, etc.)
Make it a no-brainer as much as possible, otherwise it's a choice to buy (and fight with) a ready SaaS-in-a-box solutions, or go with FREE: Astro+CF_Workers+Neon+any_JS_payment_and_email_packages vibe-coding today!
... PS: Minor edits, love Elixir!
by cdelsolar on 6/5/25, 5:00 PM
by mhanberg on 6/5/25, 4:34 PM
by jaza on 6/5/25, 4:18 AM
by peteforde on 6/5/25, 8:14 AM
Those people will go back to selling real estate or whatever it was they were doing before someone convinced them to take a nine week bootcamp.
by guywithahat on 6/5/25, 3:13 PM
> Aside, for those who don’t know what Elixir is: it’s the best general purpose language in the world and if you haven’t heard of it wake up and smell the bacon.
I find a certain humor in this, as elixir is more likely to be a fad than LLM's. I like and use elixir, but their lightweight processes are too restrictive for a lot of use cases. It's great for scaling web apps, however, and I think it's worth recommending over nodejs or other javascript based backends for a lot of people.