zachdaniel

zachdaniel

Creator of Ash

Hey folks! I’ve begun putting together some concrete, framework-wide tooling and guidance on the usage of LLMs in development. The goal here is not to push folks into using LLMs. The goal here is to make sure that those who want to use this technology have some resources to do so in the context of the tools that they want to use. This is a very important distinction. I know that there are folks out there experiencing some level of FOMO and/or worrying that they won’t have a good avenue to leverage technology that might (very important might) change the industry. My goal as a framework author and as someone who cares about this community, is to find ways to lift us all up together.

On to the concrete stuff, check out our new guide on working with LLMs.

A few of the bigger Ash packages have had usage-rules.md files, which you can (for now, the task itself may change later if we get greater adoption of the pattern) then include into your own project with mix ash_ai.gen.usage_rules <your_rules_file> package1 package2. The list so far is:

  • ash
  • ash_ai
  • ash_oban
  • ash_json_api
  • ash_graphql
  • ash_postgres
  • ash_phoenix

Showing Posts 1 to 10

ghannam80

ghannam80

Actually I think this could be an opportunity for Ash to shine as its declarative model makes it perfect to generate high quality code using LLM that could provide even faster starting point to bring products live

zachdaniel

zachdaniel OP

Creator of Ash

I concur.

garrison

garrison

I’m curious, as the author of a relatively niche framework, and therefore as someone who of course knows Ash as well as it can be known: are current models capable of generating “useful” Ash code in your view?

There is some concern (including from myself) that if model-assisted programming does take off there will be a “winner takes all” economy where anything niche (perhaps Elixir itself) is squeezed out.

One thing I found interesting (and concerning) was the recent Camel research published last month, which detailed a potential solution for prompt injection attacks. The work itself is a big deal because it’s the first seemingly working strategy to deal with such attacks, but the concerning part is the authors elected to create a DSL with Python syntax to model the permission system.

That is to say, the work had nothing to even do with Python and yet they still felt the need to create something which looks like Python just to improve the results.

On the other hand, it sounds like giving models clear instructions on how to use Elixir and Ash can be helpful. Empirically, can anyone share how much of a difference these things make?

zachdaniel

zachdaniel OP

Creator of Ash

My personal and subjective experimation shows a night and day difference with:

  • good rules files
  • providing reference for whatever you’re making

As for the winner takes all, it’s possible, but only if models don’t get good enough to do more than just parrot popular tools, at which point who cares because its not going anywhere :laughing:.

garrison

garrison

Models in their current form are always going to be better at parroting existing tools because that is how they’re designed. This is not to say they don’t exhibit a form of intelligence, but there is a substantial advantage for e.g. Python over e.g. Elixir because the model simply “knows” Python better.

That’s why I think the example I gave is so interesting: they were implementing a DSL, they could have chosen any syntax, so they went with Python knowing that the model would perform a bit better with it.

On the other hand, it could be (as discussed above) that something like Ash hits an abstraction sweet spot where, perhaps, models are able to produce more maintainable code due to the constraints given. Similar to the benefit for a human! It will be interesting to see if things play out this way.

If models were good enough to learn any tool with no training bias I think we would be in superintelligence territory, and at that point none of this would matter anyway. They’d be off maximizing paperclips and printing one-off ASICs for everything, or whatever :slight_smile:

zachdaniel

zachdaniel OP

Creator of Ash

I guess by “good enough” what I actually mean is less so about them becoming super intelligent, and more about having established practices for getting LLMs to use modern best practices etc. For example, every thing they do is slightly out of date all of the time :grin:. So you get things like tidewave & context7, providing MCP tools to search docs etc, and tools like the one described here to gather rules and keep them up to date.

garrison

garrison

One clear hint that we are headed down this path would be if this incentive structure inverts.

That is to say: library maintainers begin to avoid changing things so as not to “break” models. Developer experience no longer matters because the developers are no longer developing, so the focus turns to not stepping on the models’ toes.

Why do I need Ash 7 when Ash 6 works fine and my cluster is churning out code? It’s not like my LLMs have an opinion about the changes!

Essentially, Python and JS become an intermediate representation between English and Applications.

I’m not saying this will happen, and it sounds like a dystopic nightmare to me! But there are shades of it already happening, like that paper.

zachdaniel

zachdaniel OP

Creator of Ash

The concept is predicated on the idea that all code with the same ultimate effect is of the same level of quality. There are so many axis to consider, and mostly LLMs have the same difficulties that human beings do (and a bunch we don’t). Too much complexity, too much spaghetti, makes it harder for LLMs and humans both to change applications over time and for those applications to be understandable.

garrison

garrison

I will place more weight on your experience here because I have not engaged in any LLM-assisted programming myself (I’m not convinced it’s useful at present, and I have privacy concerns).

But I am not convinced long-term that the failure modes of models and humans will be exactly the same, and I worry about excessive anthropomorphization here. Models can experience a codebase in a single forward pass, augmented by their training data. It could well end up being that abstractions which are useful to us humans (co-location of behavior, modularization, and so on) are less helpful to models. It could be that, if they get a bit smarter, they will be capable of maintaining that spaghetti - at least well enough to generate revenue.

After all, as we are all well aware, there are many companies making a great deal of money selling spaghetti even now :slight_smile:

Similarly, a self-driving car has little use for a stop sign as it can see in every direction at once. Our heads are on a swivel.

zachdaniel

zachdaniel OP

Creator of Ash

That’s fair, and long term things might change, but by my estimation we are at an absolute minimum multiple years away from LLMs being able to work on code for a serious project absent supervision and human code reviews. So code still has to work for humans too.

Where Next? Top

Trending in News & Updates Top

Jskalc
LiveVue v1.0 released After four release candidates and a lot of community feedback, LiveVue 1.0 is stable :tada: I’ve built a dedicated...
New
bartblast
Hologram v0.12 is out! This one is for the big apps. Evo Store, Hologram’s Performance Sponsor, has an app with over 9,000 Elixir modules...
New
zachdaniel
Your standard application generally only tracks what is true right now. Updates overwrite previous data, and asking questions about the p...
New
woylie
<span class="hashtag-icon-placeholder"></span>let-me 3.0.4 has been released. Changed Log the policy module and the check module in the...
New
mikehostetler
ReqLLM v1.28.0 has been released. Features: add StepFun chat and audio providers (#1087) by mikehostetler openai: honour image deta...
New
woylie
Flop Phoenix 0.27.0 has been released. Changed Require Flop 0.29.0, which turns Flop.Schema from a protocol into a behaviour. Determin...
New
GenericJam
Mob 0.9.17, 0.9.16 and 0.9.15 has been released. Added Async work in screens, the LiveView way. Mob.Socket.start_async/3 runs a functi...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New
KristerV
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
mudasobwa
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
juhalehtonen
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews