Pep & Nom

home | documentation | examples | translators | download | journal | blog | all blog posts

<quote>

10 apr 2026

thoughts on the large language models

The year is 2026 and I have just started to read hacker news . So, yes, I am somewhat behind the times. The remarkable thing about hacker news is that such a simple website could be so useful. Lots of people have written about this, but I feel that the importance of this site to hobbyist and professional coders vindicates certain ideas I may have bored on about before: namely, that the web is mainly useful as a simple text interface; all the contour-shaded boxes with rounded corners and slidey things slithering around on the screen don't add much to the web. Even hyperlinks have their disadvantages. Diagrams, drawings and some images are reassuring, which is why I don’t use the lynx browser. But the “simple” secret to the success of HN is that it is very well curated and lots of interesting knowledgable people read it and use it.

I have learn't, of late, lots of fascinating stuff on HN and have had my eyes opened to things that I didn't even know existed, such as gemtext and the gemini protocol. Another thing that has become apparent is that the advent of Large Language Models is a total revolution in the world of programming. I had happily and blithely ignored this possibility up until now, and now that I have to face the truth, it is very very disconcerting.

Do the LLMs mean that everything that I have spent decades learning and thinking about is no longer worth knowing? Will humans delegate all coding to these machines? Is there any point working on, and thinking about a small domain specific language such as nomlang ? Is it time to admit defeat and abandon my forlorn unloved (by the masses) obscure language-parsing system, for which I had such high hopes?

Lets back up slightly: I have never thought of coding as a particularly “high-level” intellectual activity. Hacking out code that does something is really just like building a clock with stickle-bricks; it’s absorbing and sometimes exhilarating when it is going well, but it’s probably nothing to brag or humble-brag about. For me, it is really the ideas and methodologies around programming that are interesting. What sort of programs cannot be written? How can humility in the face of entropy and complexity make us better programmers? If a program, or writing a program, stimulates our minds, does it need to do anything else? Do you really want to see your teenage child glued to a programming screen at 3 in the morning, trying to find a bug?

The point is that it was always inevitable that computers would eventually become better at writing computer programs than humans, just as it was predictable that computers would become better at chess than humans. So now, programmers are going through the sort of psyche-searching that chess players went through when deep-blue beat Kasparov in the 80's. Programming is a chess-like activity with an infinitely greater scope for horrific blunders.

How does all this impact a hobbyist programmer, such as myself, working on a small non-commercial project? And how do the LLM machines impact the usefulness of a primitive pattern language parser/translator such as nomlang? Answering the second question 1st, I would return to a point I alluded to above: that the real point of programs and programming is to stimulate our ideas, and thinking about pep and nom does that whether or not a LLM machine can actually parse and translate better than nom. One of the aspects of nomlang that I have been exploring is that of writing tiny language models . These are just nom scripts that use a simple grammar within a very limited context in order to carry out computer tasks. These TLMs run within a script loop (written currently in ruby) that “chats” to the user, or more precisely, presents a prompt to the user and feeds her response to the nom script, and then executes the resulting command. An incomplete example (there is a lot of incomplete stuff lurking around here) is /eg/chat.timeline.pss which would be run with

 ./nom-chat.rb chat.timeline.pss

So the same chat-loop script can be used with any chat script. The purpose of /eg/chat.timeline.pss is just to maintain an historical time-line plain text file with functions like edit, upload, download, convert to html, and so on. The conversion to HTML is done with another nom script called /eg/timeline.tohtml.pss .

Now, some practical types might say “this is a complete waste of time, since” any of the LLM agents can do the same thing, and much much more" . True, granted, ok, I get it. But Pep & Nom doesn't require a subscription, or some vast amorphous “frontier model” running in a power-guzzling data-centre in the Saudi Arabian desert. More importantly, using and writing nom actually stimulates the writer's ideas about language and parsing and grammar. A tiny language model is like the compilation of a large language model in that it only uses enough grammar and intelligence as is required for the particular task at hand. In fact, the LLM can be used as a “fallback” for when the TLM is out of it’s depth, and the LLM could compile grammar and action rules for the TLM if the user agrees.

I have already been using the LLMs (just gemini really) to help with translating the nom translators to other languages and this is a pretty useful use for them. I will also be using the AI LLMs to find a pesky segmentation fault that pops up from time to time and especially when I spin the wheels on the nomlang system command. I have also found gemini useful for making CSS layouts since I loathe, despise, abhor and cannot stand trying to create nice looking CSS.

So, despite the tidal wave of change that is rolling towards the programmers of the world, I personally feel snug and safe on my island mountain top. That is all.