logoalt Hacker News

mycentstooyesterday at 9:46 PM14 repliesview on HN

We should design a specific language to make sure that we can encode the exact requirements that we want. Something that has a limited set of keywords that are explicit. Wait a minute...


Replies

hmokiguessyesterday at 10:45 PM

Now I have the full picture. You're right to push back, and that's on me. The load-bearing seams of language are the smoking gun I should have been aware of.

show 3 replies
grim_ioyesterday at 10:00 PM

The success of LLM's (by usage) tells us that programming languages are still too close to the machine than the actual problem domain as defined by humans.

If we truly had the right abstractions, no one would care to use LLM's for programming.

show 5 replies
ValentineCyesterday at 10:40 PM

Commit Strip seems to be down, so here's the Wayback Machine version:

https://web.archive.org/web/20260521130338/https://www.commi...

show 1 reply
pigpopyesterday at 11:52 PM

This is a groaner, especially since we've been writing detailed specifications and whitepapers for decades. The only difference is that we used to write them assuming other humans would create their own implementations to satisfy them but now we write them so AI can create the implementation.

show 1 reply
nemo1618today at 12:37 AM

I am quite tired of this take, frankly. The implication is that if we continue iterating on prompt optimization, we're going to reinvent what, JavaScript? BASIC? Lisp?

English is not a programming language. Yet English is sufficient to communicate requirements to the degree that we actually care about. A programmer's job is to translate English into lower-level machine language. Necessary to this process is "filling in the gaps" -- that is, extrapolating the expressed intent to cover all the little details that were left unspecified. This system works because humans are at least minimally competent at predicting the preferences of other humans. If your prediction turns out to be wrong, you get feedback and iterate.

Well, guess what. LLMs are also competent at predicting the preferences of humans. LLMs can "fill in the gaps" like no one's business. LLMs can iterate on requirements like no one's business.

Product managers do not speak to programmers in a language that encodes exact requirements, and yet working software somehow gets shipped anyway. LLMs do not need exact requirements either.

show 1 reply
tomrodyesterday at 9:50 PM

This made me belly laugh.

cwmooreyesterday at 9:53 PM

then we can make a frame for it to work

show 1 reply
MengerSpongeyesterday at 10:22 PM

We could write instructions like literature. Maybe we could call it "Literate Programming"?

https://en.wikipedia.org/wiki/Literate_programming

show 1 reply
amarcheschiyesterday at 9:51 PM

Someone should make a standard for this

now there's one standard more

coipyesterday at 9:53 PM

full_circle.exe

Complete with all the vaguery, ambiguity, and `undefined`.

Who’d’ve thought sycophantic interpreters were what we were building towards up til now lol

cyanydeezyesterday at 10:32 PM

maybe we should all get specially, local working versions so that when we build our software they're not broken by the whims of multibillion dollar corporations.

ares623yesterday at 10:00 PM

An LLM Inspired Specification Processing language. Or LISP language for short. Truly this "LISP" language is the language for AI and is the first of its kind in history!

show 2 replies
dataviz1000yesterday at 10:21 PM

My current thinking -- what I've been thinking about a lot yesterday and today -- is not encoding the exact requirements into the prompt and context but rather focus on the verifier and roll back if needed. There are of places in computer science where non-deterministic behavior is optimized. For example, UDP packets which are just ignored and speculative execution in modern CPUs guesses which branch a program will take and rolls back when wrong.

Ideally, a cheap verifier checks that the exact requirements are satisfied, rolling back and updating the prompt for another iteration if they aren't. If ten iterations with ten verifications steps at the end of each before the exact requirements are met costs less or in less time than a developer who can accomplish it in one attempt, it is still better.