Post

I don’t agree with you Sylvain and I think the article does not either. People that have written specs that need to be implemented by several other systems, that spend countless hours to refine it, know that uncertainty and unclarity creeps in at every opportunity.

Lean and you leave loads of undefined semantic. Detail to fix that and English (let alone French) will turn your text into a very long, verbose and hard to parse text. That’s because human language has lots of uncertainty built in and fighting it falls under its own weight.

So to describe the what something like code ends up being better. And between English code and Java code, I know what I prefer to read, understand and navigate. Java is less expressive and more deterministic and syntactically structured. These constraints make it a good descriptor of WHAT.

What is fascinating is that coding agents can adjust one based on the other and iterate on them like a pyramid. And coding agents do “fill the blank”, the unknown, the unsaid.

Whether it’s code or your advanced spec Sylvain (of which I have doubts about), humains won’t read it much in the future. Like I don’t read much assembly code today.

0 reposts1 like

I think in some way we agree. I was baffled by Symphony's "spec" which is actually a detailed design document, not far from what we used to feed MDA tools with. LLMs can indeed fill in the blanks for the underspecified parts of the spec. Like "those details are left as an exercise to the reader".

Now when you go that deep into the spec/design, at some point you will want to be more prescriptive in those details. This is where it gets close to high level code. Do LLMs help here? Maybe, by looking at your existing code base and adapting to its style, or making implementation choices for you.