Fully agree with the article (as my comment history would attest). I wonder why people worry so much more about "determinism" over conformance to a spec. (a compiler can be nondeterministic and correct which is not particularly good but definitely not worse than being incorrect)
Maybe most devs don't care so much about the language specification and just expect the code to do vaguely what it looks it should do intuitively? This is not very clear to me, at least for libraries I guess a lot of people don't read API docs and just call the API hoping it does what the name says (preconditions be damned) in which case nondeterminisc observable behavior would be more problematic than nonconformance to a spec (API doc) they don't read.
Try writing the grammar of natural language in EBNF if you want a fast but unsatisfying answer.
The univalence axiom and HoTT is another path.
Or just trying to find out why two programs in lambda calculus that are beta convertible and thus recursively inseparable is another path.
Finite model theory and how gödels completeness theorem doesn’t hold while it does for infinite models is another path.
Finite VC dimensionality being required for PAC learnability is a path from the other side.
There are many forms of indeterminacy, and some allow for a concept of equality that disallows apartness, like computing, but the relationship with choice/omniscience/set shattering is complicated.
Perhaps non HoTT type theory being a map between type Families may provide some useful intuition.
Under lambda calculus, which is equivalent to intuitionistic logic, the principle of explosion (ex falso quodlibet) states that any statement can be proven from a contradiction.
Intuitionists accept this rule because, under their constructive interpretation, an absurdity means a problem is demonstrably impossible to solve.
PAC learning, through set shattering makes any logic Classic, introducing PEM/AC or various forms of it.
It isn’t just the presence of indeterminacy that matters, the form it takes matters.
>I wonder why people worry so much more about "determinism" over conformance to a spec.
From what I've seen in these HN discussions, most people are using "determinism" when they really mean "prompt sensitivity", i.e. minor variations in framing leading to different results. This, in turn, confuses people who do understand what determinism is supposed to mean and where it's necessary (build reproducibility for example).
>nonconformance to a spec
This is bound to happen for informal specs. It's the inherent property of the domain both models and humans operate in.
Current models are optimized for coding rather than human communication, and have shallow understanding of human intent. Their reading between the lines is pretty poor, and they can't distinguish between important and unimportant details of the prompt, following it too literally and forcing you to give them more context for clarification.
Any sufficiently specified prompt is indistinguishable from code
Fully agree with the article (as my comment history would attest). I wonder why people worry so much more about "determinism" over conformance to a spec. (a compiler can be nondeterministic and correct which is not particularly good but definitely not worse than being incorrect)
Maybe most devs don't care so much about the language specification and just expect the code to do vaguely what it looks it should do intuitively? This is not very clear to me, at least for libraries I guess a lot of people don't read API docs and just call the API hoping it does what the name says (preconditions be damned) in which case nondeterminisc observable behavior would be more problematic than nonconformance to a spec (API doc) they don't read.
Two things are being conflated here.
Try writing the grammar of natural language in EBNF if you want a fast but unsatisfying answer.
The univalence axiom and HoTT is another path.
Or just trying to find out why two programs in lambda calculus that are beta convertible and thus recursively inseparable is another path.
Finite model theory and how gödels completeness theorem doesn’t hold while it does for infinite models is another path.
Finite VC dimensionality being required for PAC learnability is a path from the other side.
There are many forms of indeterminacy, and some allow for a concept of equality that disallows apartness, like computing, but the relationship with choice/omniscience/set shattering is complicated.
Perhaps non HoTT type theory being a map between type Families may provide some useful intuition.
Under lambda calculus, which is equivalent to intuitionistic logic, the principle of explosion (ex falso quodlibet) states that any statement can be proven from a contradiction.
Intuitionists accept this rule because, under their constructive interpretation, an absurdity means a problem is demonstrably impossible to solve.
PAC learning, through set shattering makes any logic Classic, introducing PEM/AC or various forms of it.
It isn’t just the presence of indeterminacy that matters, the form it takes matters.
>I wonder why people worry so much more about "determinism" over conformance to a spec.
From what I've seen in these HN discussions, most people are using "determinism" when they really mean "prompt sensitivity", i.e. minor variations in framing leading to different results. This, in turn, confuses people who do understand what determinism is supposed to mean and where it's necessary (build reproducibility for example).
>nonconformance to a spec
This is bound to happen for informal specs. It's the inherent property of the domain both models and humans operate in.
Current models are optimized for coding rather than human communication, and have shallow understanding of human intent. Their reading between the lines is pretty poor, and they can't distinguish between important and unimportant details of the prompt, following it too literally and forcing you to give them more context for clarification.