Are Programmers Obsolete?
The democratization of apps will continue. But remember, the web made it a lot easier to build web pages too. So then the bar went up, and you needed interactive web pages. A lot more people learned how to build interactive web pages, so the bar went up. People built apps, and a lot of people learned how to build basic apps. So the bar went up, and now people build very sophisticated apps.
So yes, there will be much more longtail capability to build simple software, and this will have a huge impact, especially in the Enterprise, where they just have a hard time hiring programmers. But that said, at least on the consumer side, on the mass consumption side, all this will do is raise the bar. It just means that the apps a year from now, two years from now, are going to look absolutely freaking amazing compared to the apps today.
Put another way, programmers are not these magical elves who have learned this secret esoteric ritual which nobody else can learn and understand. Programmers are simply the people who are so dedicated to building software that they're willing to stay at the edge of the craft and learn and use every tool, no matter how sophisticated or complex it is. Today's programmer uses a different set of tools and language as well as tomorrow's.
So tomorrow's programmer will be doing natural language programming, but they will be every bit as dedicated, skilled, intense, and applying effort as in the past. So I still don't think that high-end computing gets democratized. Here is the key difference: the key difference is that when you program something, software can go to a billion users, and it's the same software.
People always just demand the best, as opposed to where if we're digging ditches and now we all get bulldozers, it is truly democratized. Because, you know, one ditch is not better than the others, and building more ditches still takes more effort. So because programming is win or take all within a given domain, the specialist programmer will continue to dominate over the generalist who's just telling the computer to write the code.
It's like moving up the hierarchy of needs. Once you trivialize one layer, you actually free yourself up to focus on the next layer. So the ideal large language model is sort of like the river of the genie from the classic fairy tales, where you typically get exactly what you asked for but something else than you meant. A well-designed language model will give you exactly what you mean, no matter how clumsily and crudely you phrase it.