After all, TUIs are a thing and nobody debates that they are also user interfaces. Just because a programming language is all text doesn’t mean that usability metrics don’t exist for it.
The error messages and diagnostics are emitted by the tools like compiler, linker or interpreter and are part of their interface. Language standard may codify some error messages, but language itself cannot present them to you because language is not a program.
>Just because a programming language is all text doesn’t mean that usability metrics don’t exist for it.
Just because some usability metrics can be applied to a programming language, it does not make it UI. Interface implies interaction. You do not interact with language - it cannot receive UI events and react to them, you interact with the tools that understand it.
> a user interface (UI) is the space where interactions between humans and machines occur[0]
Further, Wikipedia lists a ton of different kinds of user interfaces. Included among those is:
> Batch interfaces are non-interactive user interfaces
And further, here’s a better explanation describing how a programming language is a user interface then I can provide here[1]. It really is as simple as the programming language being an interface to the machine, and the programmer being the user of that interface. I don’t understand why you’re arguing so much against a widely accepted fact. When computers were first made, there was no such thing as a mouse or keyboard, there were punch cards. The only way for a user to interface with the machine would be to insert a program with punch cards. Nowadays we have all sorts of input devices to give us new ways to interface with machines, but the most basic way we can interface with a machine is by writing a program with our intent for it.
And if you want to be so pedantic then is a pure HTML/CSS website a UI? There’s no program there just markup. The only program that runs is the browser. So then is the website nothing and the browser the only user interface? Or how about the steering and brakes/accelerator in a car? Those are purely mechanical, are they a user interface because they don’t have a program? Or how about the original arcade games like pong? They were directly soldered onto the board. There was no program just a circuit. There were no instructions being executed. So does that make those games a non user interface?
[0]: https://en.m.wikipedia.org/wiki/User_interface
[1]: https://faculty.washington.edu/ajko/books/user-interface-sof...
(I do think it's notable that you can combine the inputs and outputs of such programs into a shell script, which feels a lot like using a programming language—but this is beside the point I was trying to make.)