There’s a certain … cassandra-esque irony in people getting frustrated with LLMs not “doing what they tell them”, and are now, undestanding-by-fire why domain-specific formal languages were developed in the first place.
If you want to skip straight to the part where the computer does (mostly) exactly what you tell it to do, might I recommend a programming language.
@pfriedma I think it would be pretty cool if we could have programming languages which were natural subsets of English (see: HyperTalk, AppleScript, Inform) and which had near-miss helper systems that could outline English sentences the natural-language-programming system can't unambiguously interpret and suggesting similar sentences it could interpret unambiguously.
But you'd still at some point have to teach people to consider a problem logically and break it down into steps.
@shironeko @pfriedma I think the hard problem in teaching programming is getting people over the hump of "I can't do that". I think syntax, and the need to learn it, is one such hump. The existence of people who can't "program" but can do feats in spreadsheets or flowcharts that sure as heck look like programming seems like evidence for this idea.
I don't *know* if natural language is a third way around it, but I wonder.
There may be other problems also however.
@shironeko @pfriedma Hence scare quotes. But programming or no, general programming environments and APIs are not set up to accept code in this form. Your sheets in Excel, Google Sheets, or Multimedia Fusion are stuck within those specific proprietary programs and can't readily interact with, say, C libraries the way Python can. The development tool community has never given a fiftieth of the consideration to accommodating spreadsheet programmers as it has to randomly generating code with LLMs
> outline English sentences the natural-language-programming system can't unambiguously interpret
i agree this would be super-useful, but: surely in any programming language, _every_ statement only has _one_ way it will be interpreted, and the problem is really that it might not be the way the programmer wants?
i mean, '8 - 6 * 2' might be ambiguous to a human; but not to a compiler…
@fishidwardrobe @pfriedma Presumably this is one of the design considerations you'd have to wrestle with when making such a language
@pavel @pfriedma And I believe you aren't considering the scale of the majority of humanity using AI and the impact it would have. This is a huge failing of all AI supporters, they love to minimize the impact without thinking about how even tiny impacts add up at scale.
If this weren't a problem we wouldn't have the dangerous proliferation of data centers right now.
@pfriedma You can’t even satirize this shit anymore because it writes itself
@fishidwardrobe @mcc @pfriedma Unfortunately, many programmming languages do have ambiguous statements; we usually call them "undefined behavior"...
@cesarb @fishidwardrobe @pfriedma We tend to treat those as flaws in the language and phase either the flaws, or the language, out!
@WizardOfDocs @pfriedma COBOL is obviously one of the most successful programming languages of all time.
I am not qualified to comment off the cuff on whether its level of natural language-ness, compared to the more compact languages that followed, concretely helped its adoption by people who otherwise would have struggled with coding.
The canonical success in this area is SQL, which is both very "natural" and very manager friendly.
@cesarb @mcc @pfriedma i'm going to go out on a limb here: does the compiler or interpreter always behave the same way when encountering a given single example of an "ambiguous" statement?
i bet it does. either the compiler / interpreter rejects the statement; in which case it's a program error. or it interprets the statement in some set way; in which case, that's what the statement does.
either way, it's not actually ambiguous — except to a human.
@fishidwardrobe @mcc @pfriedma Unfortunately, no; when encountering undefined behavior, the way the statement is interpreted is not fixed. It can depend on something very far in the code, the environment, or the phase of the moon. Even compiling the exact same code again with the same compiler can result in different behavior.
@fishidwardrobe @cesarb @pfriedma It's not a bug, it's undefined behavior. UB and "compiler-defined behavior" have well-understood meanings in programming, although the behavior itself is by definition not well understandable, nor do C programmers tend to understand how badly they are UBing every time they try to write code.