A lot of the current hype around LLMs revolves around one core idea, which I blame on Star Trek:

Wouldn't it be cool if we could use natural language to control things?

The problem is that this is, at the fundamental level, a terrible idea.

There's a reason that mathematics doesn't use English. There's a reason that every professional field comes with its own flavour of jargon. There's a reason that contracts are written in legalese, not plain natural language. Natural language is really bad at being unambiguous.

When I was a small child, I thought that a mature civilisation would evolve two languages. A language of poetry, that was rich in metaphor and delighted in ambiguity, and a language of science that required more detail and actively avoided ambiguity. The latter would have no homophones, no homonyms, unambiguous grammar, and so on.

Programming languages, including the ad-hoc programming languages that we refer to as 'user interfaces' are all attempts to build languages like the latter. They allow the user to unambiguously express intent so that it can be carried out. Natural languages are not designed and end up being examples of the former.

When I interact with a tool, I want it to do what I tell it. If I am willing to restrict my use of natural language to a clear and unambiguous subset, I have defined a language that is easy for deterministic parsers to understand with a fraction of the energy requirement of a language model. If I am not, then I am expressing myself ambiguously and no amount of processing can possibly remove the ambiguity that is intrinsic in the source, except a complete, fully synchronised, model of my own mind that knows what I meant (and not what some other person saying the same thing at the same time might have meant).

The hard part of programming is not writing things in some language's syntax, it's expressing the problem in a way that lacks ambiguity. LLMs don't help here, they pick an arbitrary, nondeterministic, option for the ambiguous cases. In C, compilers do this for undefined behaviour and it is widely regarded as a disaster. LLMs are built entirely out of undefined behaviour.

There are use cases where getting it wrong is fine. Choosing a radio station or album to listen to while driving, for example. It is far better to sometimes listen to the wrong thing than to take your attention away from the road and interact with a richer UI for ten seconds. In situations where your hands are unavailable (for example, controlling non-critical equipment while performing surgery, or cooking), a natural-language interface is better than no interface. It's rarely, if ever, the best.

@david_chisnall

Maybe in the Star Trek world they use an unambiguous logique language, easy to translate in any unambiguous language, but we loose that in the English translation.

That would explain a lot the universal translator ;)

@Aedius @david_chisnall The Star Trek voice computers always seemed to react like very advanced #InteractiveFiction parsers. They would respond to a wide variety of queries and commands, but most actors spoke in a very constrained way and often the computers would prompt further or give error messages.

So you'd get back "please specify which of the 3271 bulkheads you wish to open" or "Unable to comply" and you'd have to re-phrase your order. There's a famous scene where Lwaxana Troi is frustratedly pulling a sausage out of a frozen margarita and saying "Oh I am just TERRIBLE with computers...", suggesting that interaction with them was still a skill that needed training or practice.

@Aedius @david_chisnall And it made sense in that world that a crew of effectively Space Navy officers and enlisted spacers had been taught to be precise in their language, as so many of the tasks in a crew setting like that are performative speech. You need to give unambiguous commands to shipmates AND equipment, and need to quickly give updates like "standing by" or "aye, sir" or "probe launched: contact in 634 seconds...".

it was so well covered that the ambiguities we see are always jarring. When someone is standing in a crowd of 10 people, and a mix of crew and locals are coming up and staying down, the call is always "four to beam up" and *somehow* the transporter operators know which four. How? Well that's just what filmmakers call "shoe leather": the kinds of details and procedure that would take so long that they distract from the story without even giving any useful flavour.

@spacehobo @Aedius @david_chisnall

> When someone is standing in a crowd of 10 people, and a mix of crew and locals are coming up and staying down, the call is always "four to beam up" and *somehow* the transporter operators know which four. How?

I'd also point out the kind of domain-specific machine-learning pattern matching that I've used in the real world to great effect -- 99% of those scenes I can remember, the people who are to be beamed up are standing still and looking slightly upward, in a way that if you saw only a screenshot of the episode you'd probably pretty easily pick out the four people who were supposed to be beamed up.

It would not surprise me to find that (in the fictional world, natch) the computer underlying the transport operator's interface is highlighting a selection of people in a given target zone who are standing in the "beam me up" posture.

Contrariwise, most emergency beam-ups seem to involve either much more specific commands or "all crew in the area, only".

@spacehobo @Aedius @david_chisnall the best Star Trek computer user interface is the one Scotty uses in the fourth feature film...
@Pionir @Aedius @david_chisnall The best of everything in Star Trek was in the fourth film.
@Aedius @david_chisnall look up lojban. Also while I think the idea of NLP as programming isn't taped out, it's also a bad plan to do this for humans. Humans are good at communicating gaps in logic. I feel like that's important.