upvote
I've came up with the same basic analogy as you.

What it boils down to is that the future of coding is more about creating the mold where the code is poured in and knowing how exact of a mold is "good enough" for the problem at hand.

When the mold is done, you let the agent pour in the code in any format you like. It can create a Swift version, Rust version and a web assembly version in "half a soda" as you put it =)

The people for whom the only enjoyment in programming was molding the perfect item from scratch will still be needed, but less and less as we get better and faster in defining the molds for the agent to pour the code in.

Before I had to dig specs of an application out of a client's mind and try to form them into software with a full-ass team. Now we can pretty much "just" give them Claude and teach them to describe what they want and iterate to get something that maybe resembles an MVP but in more cases is just an interactive UI spec we can use as a reference to build the actual tool.

reply
> When the mold is done, you let the agent pour in the code in any format you like.

Exactly. And the mold could be a spec, an MVP or even one of the implementations (e.g. the Swift one) acting as the source of truth for the other versions.

> "just" give them Claude and teach them to describe what they want and iterate to get something that maybe resembles an MVP but in more cases is just an interactive UI spec

That's a great example of what malleable code unlocks. You let the client to create the mold themselves, refine it and then use it to properly build the product.

reply
> Before I had to dig specs of an application out of a client's mind and try to form them into software with a full-ass team. Now we can pretty much "just" give them Claude and teach them to describe what they want and iterate to get something that maybe resembles an MVP but in more cases is just an interactive UI spec we can use as a reference to build the actual tool.

What are they paying you for if you’re just having your clients vibe code their own apps?

reply
Vibe coding the "feel" and flows of the app - if they know how to do it and what they want.

These are for highly specific stuff like a tool to help a copywriter work on game dialogue for example.

It's a fuckton faster for the actual expert in the field to do it than me first learning enough of their craft to know the terms and how they work to get there eventually.

The actual code that does anything meaningful is made by Actual Programmers. As well as everything beyond that, where it's run the CI pipelines, tests, infrastructure to run it etc.

It's like an architect asking a client to draw and describe their dream home and using it as a basis for the final product.

reply
> What it boils down to is that the future of coding is more about creating the mold where the code is poured in and knowing how exact of a mold is "good enough" for the problem at hand.

> When the mold is done, you let the agent pour in the code in any format you like. It can create a Swift version, Rust version and a web assembly version in "half a soda" as you put it =)

Unless you use code, that mold is at best a formless bag.

The reason people use software is because there's a need to manipulate some data/information, transfer it, and interact with it (input or output). All those actions needs to be done correctly, and if not possible the error should be reported. To get to that level of correctness, we need to be formal with how we express the process, which means essentially going from a non-zero amount of ambiguity (natural language) to zero (programming language).

Using AI to translate specs/prompt to code is just asking it to randomly resolve any ambiguity found in the specs. And as any experienced dev knows, some of those are just tradeoffs where there no right or wrong answers, just contextual ones that evolves over time and space.

> Before I had to dig specs of an application out of a client's mind and try to form them into software with a full-ass team. Now we can pretty much "just" give them Claude and teach them to describe what they want and iterate to get something that maybe resembles an MVP

I wonder if there's actually been conversation with the client before? Where you use some prototyping tools like RAD or Sketch to resolve UI issues, get in touch with the actual domain experts,... or was it just a telephone game full of politics?

reply
Not just specs and prompts, tests, actual procedural limits. No program will ever be perfect[0], but you need to get it good enough for the problem at hand.

A human defines the checks (the mold) that give the agent the limits. They can be TLA+ definitions, linters, cyclomatic complexity checkers, unit tests, integration tests, end to end tests etc. And usually some written docs - made in a way that's specifically targeted at agents. Those define the limits the agent has to stay inside of.

There will always be work for human QA too, an AI can't determine if something feels off in an app's flow, it has no taste or concept of usability beyond the purely mechanical rules.

[0] Not talking about health, aerospace or nuclear stuff here naturally.

reply
Related:

Malleable Systems Collective

https://news.ycombinator.com/item?id=50188437

reply
This analogy is apt for working with LLMs. Were you aware, tho, that it has repeatedly been used to describe Lisp?

I think Lisp is an ideal language to use with an LLM, because it is essentially a notation for a logical assembly code, and I expect there to be compound benefits in using it with AI.

Lisp [...] made me aware that software could be close to executable mathematics.

— ACM Fellow Profile of L. Peter Deutsch.

APL is like a diamond. It has a beautiful crystal structure; all of its parts are related in a uniform and elegant way. But if you try to extend this structure in any way — even by adding another diamond — you get an ugly kludge. LISP, on the other hand, is like a ball of mud. You can add any amount of mud to it [...] and it still looks like a ball of mud!

— R1RS (1978) page 29, paraphrasing remarks attributed to Joel Moses.

Part of the beauty of the ball-of-mud quote is that there really does seem to be a causal connection between Lisp's use of generic, unencapsulated, largely un-type-checked data structures and its extensibility. The converse implication is that we should expect specialization, encapsulation, and aggressive type-checking of data structures — all strategies extensively pursued in various combinations in modern language paradigms — each to retard language extension.

Each of these three characteristics of Lisp serves to remove some kind of automated restriction on program form, leaving the programmer more responsible for judging what is appropriate — and thereby shifting things away from close conversation with the machine, enabling (though perhaps not actively encouraging) more human engagement. The downside of this is likely obvious to programming veterans: it leaves things more open to human fallibility. Lisp has a reputation as a language for good programmers. (As a remark attributed to Dino Dai Zovi puts it, "We all know that Lisp is the best language around, but in the hands of most it becomes like that scene in Fantasia when Mickey Mouse gets the wand.")

Lisp, Mud, and Wikis

https://fexpr.blogspot.com/2018/10/lisp-mud-and-wikis.html#s...

{LISP Is a Ball of Mud}

LISP is extensible in two ways. First, there is the simple ability to define new functions; these are used in a way that is both syntactically and semantically identical to built-in primitive functions like CAR. This is in contrast to “algebraic” programming languages, which either make an arbitrary syntactic distinction between addition, say, and a user function, or wander into the quagmire of extensible parsers. Second, there is a uniform macro facility for transforming one syntactic form into another; this facility is based on internal data structures rather than external character-string syntax.

The Revised Report on Scheme

https://research.scheme.org/lambda-papers/lambda-papers-revi...

https://wiki.c2.com/?HackerLanguage

Also:

Lisp is Clay: The Power of Composable DSLs (video)

https://archive.fosdem.org/2026/schedule/event/HDE7JZ-lisp-i...

reply
deleted
reply