←back to thread

54 points tudorizer | 7 comments | | HN request time: 1.239s | source | bottom
1. alganet ◴[] No.44403486[source]
> This evolution in non-determinism is unprecedented in the history of our profession.

Not actually true. Fuzzing and mutation testing have been here for a while.

replies(2): >>44403513 #>>44404354 #
2. diggan ◴[] No.44403513[source]
I think the whole context of the article is "program with non-deterministic tools", while non-deterministic fuzzing and mutation testing is kind of isolated to "coming up with test cases", not something you constantly program side-by-side with, or even integrate into the (business-side) of the software project itself. That's how I've used fuzzing and mutation testing in the past at least, maybe others use it differently.

Otherwise yeah, there are a bunch of non-deterministic technologies, processes and workflows missing, like what Machine Learning folks been doing for decades, which is also software and non-deterministic, but also off-topic from context of the article, as I read it.

replies(1): >>44403633 #
3. alganet ◴[] No.44403633[source]
I just have a problem with his use of the word "unprecedent".

This is not the first rodeo of our profession with non-determinism.

4. TZubiri ◴[] No.44404354[source]
Right, in testing, but not in the compiler chain
replies(1): >>44404505 #
5. alganet ◴[] No.44404505[source]
I don't understand what you mean. Can you elaborate on your perception of what a "compiler chain" is and the supposed LLM role in it?
replies(1): >>44411787 #
6. TZubiri ◴[] No.44411787{3}[source]
A C compiler outputs x86 or ARM or whatever assembly. C is the source, x86 is the target code.

Javascript is source code that might be interpreted or might output html target code (by Dom manipulation)

Typescript compiles to javascript.

Now javascript is both source and target code. If you upload javascript code that was generated by ts to your repo and you leave out your ts, that's bad.

Similarly, an LLM has english (or any natural language) as it's source code and typescript (or whatever programming language) as its target code. You shouldn't upload your target code to your repo, and you shouldn't consider it source code.

It's interesting that the compiler in this case is non deterministic, but it doesn't change the fact that the prompts are source code, the vibecode is target code.

I have a repo that showcases this

https://github.com/TZubiri/keyboard-transpositions-checker

replies(1): >>44413849 #
7. alganet ◴[] No.44413849{4}[source]
Read his text more carefully:

> I can't just store my prompts in git and know that I'll get the same behavior each time

He's not on this idea of using english as source code. He explicitly acknowledges that it doesn't work that way (although he's vague in what _actually_ would replace this).

In summary, he's not talking about english as source code.

It _could_ be that someone else figures out how to use english as authoritative source, but that's not what he's talking about.

In that sense, he's talking about using LLMs as the IDE, tooling. It's not that different from using mutation testing (not something I would commit to the repo), and I stand by my original statement that this is not "unprecedent" as it seems.