Large Language Models: Compilers for the 4th Gen of Programming Languages? [pdf]
drops.dagstuhl.de
drops.dagstuhl.de
https://en.wikipedia.org/wiki/Semantic_Web
and the blockheads totally ignored it. (e.g. I had a Web 3.0 site a decade before they did!)
Similarly there was a lot of talk about 4GL in the 1980s
https://en.wikipedia.org/wiki/Fourth-generation_programming_...
some of which was related to the same symbolic A.I. ideas that were influential to the semantic web.
I've noticed a lack of knowledge of computing history among many people who work in computing professions. Personally I think all undergraduate students of computer science and related disciplines would benefit immensely from a one-semester history of computing course. They'd start by learning about early analog computing devices before learning about two very crucial developments in the 1930's and 1940's: (1) the invention of early digital computers such as the ENIAC, and (2) meta-mathematics and how that led to Godel's incompleteness theorem, the lambda calculus, Turing machines, and other fundamental concepts that underpin theoretical computer science. Then they'd learn about the rise of the computer industry, the history of software, the history of high-level programming languages, the history of AI, advances in computer architecture, the birth of the Internet, the GUI, the World Wide Web, social networking, and modern topics such as deep neural networks and large language models. It would be a lot of ground to cover and it would be impossible to cover everything in just a single course, but the goal of such a course is for practitioners in computer science and software engineering to have a basic understanding of the history of their profession and why things are the way that they are today.
I also believe that those fortunate enough to work in or visit Silicon Valley should make a visit to the Computer History Museum in Mountain View to get a taste of how far computing has come in just a relatively short amount of time compared to all of human history.
Got to second this. That museum was the highlight of my visit, and I still remember everything in detail.
In any case the semantic web was ignored by almost everyone because the effort of wading through wanky over-engineered specifications was never worth the approximately zero benefits it actually gave.
Presumably there will be a third Web 3.0 by people who also ignore the blockchain nonsense which also never amounted to anything!
Code is meant to be mostly read not written. And no, LLM explanations are shit useless, a language model simply cannot handhold a human to make them understand logic line by line, you NEED to read it, and hence code has to be "readable", which to an engineer means "precise".
For you and for me maybe, but by now I know a lot of people I met at meetups who never programmed but who are creating SaaS etc systems now just by having a chat with chatgpt. They cannot code without, they have the llm explain line by line. They don't understand when they read it (mostly Python/React/JS) without the llm explaining.
And my worst nightmare (as someone who likes precise, static typing, strong typing and even formal proofs now and then) which seems to rapidly becoming reality; read/see no code at all; it's just nanoservice blackbox (just single endpoints) stuff written by chatgpt and the 'programmer' never sees the code, just the input and output.
I did find it was good at explaining code, but I was also able to read the code alongside its explanations since I have been programming for two decades, and I did find it useful for familiarising myself with unknown codebases (although the tooling for this needs to be worked on). I also find it’s quite capable at little self contained code snippets (useful for bits of data mungeing in Python for example, but not quite able to build a full product).
Presumably these people are generating snippets of stuff and gluing them together. I guess that can work, but I can’t imagine the output is particularly good or bug free.
The same could be said about most of what is sold as “enterprise” software. With LLM assistants the floor has simply become lower to the point where one need not even pretend to be able to code to produce something useful.
So in the same light, I suppose it’s fair to say that AI can produce code that is certainly better than what the average person can produce and if it can do something useful, well, most people will be happy with the results. Not everyone needs top quality software and as you say even a lot of professionally produced software is garbage. So, yeah, fair point.
It’s terrible, but so is most human written software. I had to debug nextjs because something was broken in the app router, deep inside. Most of the code is terrible and yet it’s one of the most popular things there is. It wouldn’t matter much if it was written by students, AI or these ‘senior programmers’; it’s neither good nor bug free.
For any prospective language designers out there. Please don’t make human based language programming a thing again. That’s an idea that should stay in the waste bin. A language that describes programs shouldn’t be ambiguous. I also wouldn’t trust any AI—no matter how smart—to create code I’d be happy with, unless I could go into very specific detail.
No limits on structure serialization though. Make that a one liner please
As the distance between the llm and hardware closes, human interaction with these systems might evolve to use even higher-level languages, further abstracting us from the underlying mechanics. it's conceivable that, in the hopefully distant future our interaction could advance to direct neural or brain interfaces, where our thoughts translate into commands without the need for any traditional "coding" at all. Instead the spec becomes the software. These are damn exciting times
This said, I'm not sure why we'd call natural language 4th gen it's very much the first gen.
[1] In the sense that those labels do not describe the actual "generation". There still exist visual programming (4GL) and constraint and logic programming (5GL), but they are no longer considered to delieve the goal of 4GL and 5GL by its own, and thus have failed to generate enough interest to be considered a "generation".
This said - less a matter of whether something else should be 4th or fifth, I think the concern is with making everything an idiocracy-like marketing bingo like the 5D cinema https://www.xd-cinema.com/the-difference-between-4d-5d-6d-7d...
- LLMs and GenAI can potentially replace many OS layers - They can translate text directly to machine code, or a portable representation like LLVM IR/MLIR - They may do this by making system calls directly - or have a lightweight kernel of its own supporting basic GUI primitives and web-views
Even better, imagine an LLM fused with a web-browser core. Like Chrome OS, but with LLM powered interaction. Capable of conjuring windows with rich GUIs that are purpose built for the task at hand - using WASM code.
So this latest should be called '5th-gen' or '6th-gen', if they wanted to relate this to the historical lineage of 'the next great time saving way to generate code'.