<quote>
Modern app design, using frameworks provided by systems such as iOS and android (as well as coding systems such as Flutter or React Native) is pretty convenient. It's not too hard to create apps that run on lots of different operating systems and devices. This is good, and it feels like finally we are getting somewhere in the software-world.
In these mobile device systems, the index finger has replaced the mouse point-and-click, and it feels more natural. Also, the navigation system between “screens” seems better and, in theory, everything should run faster and more securely because the app developer doesn't have to worry about the browser layer. These new-ish system are certainly convivial technology (as the term was used by Ivan Illich) but they essentially remain “point and click” software.
The ability of a pointer to reference something (by pointing at it) can, and will never rival the power of the reference system of language. A pointer can point at one thing, but a language reference system can reference multiple or even an infinite number of things at once. A pointer can only reference that which is there, but language can refer to the invisible, the past, the present and an infinite number “things” within an infinite number of maybe-worlds. The subjunctive mood in some European languages is great example of this. The subjunctive immediately introduces the maybe-world where the speaker refers to, not what is , but what could be .
One of my motivations in writing the nom system is to delve into the
power of the reference-world and it’s relationship to software. In language, one
can say “format that!” or “upload those!” and that and those are references
to something that we may or may not have been talking about. The script
/eg/chat.nom.tr.pss is a first experiment with using a language interface to
software. The script implements a (primitive) chatbot (with the help of a
ruby script) that is coded and oriented towards the context that we are working
with (files and nom-scripts).
It seems evident that a “large language model” would do a much better job at this task than my little nom script could possibly hope to do. But the so-called artificial intelligence has a couple of flaws. The first is it’s size and energy use. The second is probably more important: “knowability”. The LLM may give us a correct answer, but how do we know it is correct? In fact in the domain of software this second flaw is not so difficult, because we have the opportunity to compile and test code generated by the AI engine.
Despite the power of AI I feel that nom has a particular niche to fill: it is small, fast, can be translated automatically (by itself) to any other computer language, and the correctness or incorrectness of it’s parsing and translating are “knowable” because of the well defined virtual machine upon which it is based. Apart from that, when using nom , language and parsing are placed at the centre of the problem space and not in the periphery. This, I believe, is important because patterns are at the core of any semantic analysis.