Programming languages allow LLMs to build invariants they can’t enforce themselves (type systems), reduce context window (syntax sugar) and represent abstract models in a way that may improve understanding i.e. increase the likelihood of predicting a correct next token.
Plus, we want to understand LLM output, so it should at least be convertible into a language that’s easy for humans.
EDIT: and actually reading the article, learning a new programming paradigm improves your ability to model even in your head, by noticing some abstract thing fits some programming concept, then manipulating the concept (e.g. translation your data model into the algebraic data type,`(a | b) * (a | c)`, then realizing it’s isomorphic to `a * (b | c)`).
I'm a programming languages nerd. I was paid to program in over 20 different languages over my 25 year career. I read up on many more languages along the way, and I wrote pet projects in a few of those. I've written a couple assemblers, compilers, and interpreters for my own languages.
I think literally everyone should be taught to program in elementary school. It's arguably one of the best ways to teach logical thought and careful organization of ideas. I like Alan Perlis's quote: You think you know when you can learn, are more sure when you can write, even more when you can teach, but certain when you can program.
With all of that out of the way, I think there are interesting questions to ask going forward:
If you were starting a business for a great software idea, with your own savings on the line, would you hire 10 AI hostile programmers to implement the idea or 2 AI friendly people and get them some subscriptions to the top models? Remember: if it doesn't come together, it's YOUR money on the line.
What are the best programming languages for LLMs to program with? Could someone design a better language that fits their strengths and weaknesses? I think the most popular human languages have way too much affordance for concerns that don't apply to models. I think letting LLMs program in human friendly languages makes the results more difficult for humans to inspect. There's a slight chicken and egg problem based on the training sets used by large models, but this can be addressed with LoRA tuning and similar techniques for open weight models.
How can we make LLMs scale better so that people who don't like to program can get better "vibe coding" results? Tools like Excel are huge force multipliers for so many people who aren't interested in writing traditional code. I think it should be possible for non-programmers to solve their own problems and trust the results without becoming programmers.
Anyways, I've got my own partially formed answers to those questions, but I'd like to hear what other people who aren't still suffering stages of LLM programming grief have to say and ask.
> AI is a productivity tool exactly like compilers were. Compilers boosted programming by 1000x. AI adds another 10x on top. Enormous. But nobody says "the compiler wrote my code."
We witness more and more PL ideas re-invented in Agentic AI world. Branching, looping, task orchestration, workflow, etc.
Heck even GOTO seems tempting these days.
> Why spend years mastering language intricacies when an AI can generate code in any language on demand?
You can learn relatively well any programming language in a week. You don't need to master "language intricacies".It’s very fast and very difficult to read.
Everyone wants to build another iteration of a C style language with incremental improvement for little benefit.
The problem is that we probably reached the general purpose frontier a long time ago and there are just a few surface level things that need to be changed here and there, which is not worth a whole new language.
It goes against the programmer's ego, but the way forward is by adding more restrictions. The people complaining about the borrow checker in Rust just don't get it. If you want programming to improve, you will have to give up the ability to write every conceivable program.
But doesn't that sound like cope? It's like an old ASM programmer telling himself that his obscure assembly knowledge will surely still give him great advantages as he is forced to switch to React.js development.