🐦 Gary Bernhardt: 1960s: "COBOL will let non-programmers make the software!"
1980s: "4GLs will let non-programmers make the software!"
2000s: "UML will let non-programmers make the software!"
2020s: "AI will let non-programmers make the software!"
I initially resonated with the tweet but I'm wondering if it's actually a fallacy hidden in a massive increase in the number of "programmers" since 1960s, and a huge increase in the complexity of the programs without any increase in the skill of the programmer (arguable a decrease in the skill)
I think there's a "God of the gaps"/"AI is what we can't do yet" thing here.
In 2022, "normal" technical people can go into Games Dev as a trade, in a few years be putting out computer programs like Call of Duty which are impossible to write in 60s PLs
March and I'm still doing this 🙄. Can't believe nobody's rolled out a feature like Gmail's "You said 'see attached' but there's no attachment" yet for Q1 every year
I think it's a funny one because as soon as a "non-programmer" starts making programs, I'd call them a "programmer". Can't imagine what a "non-programming programmer" actually is :)
or perhaps a "programming non-programmer"
I cook lots of mediocre meals for myself in my little kitchen at home, but I don’t call myself a chef or a cook
"A programmer" is probably best understood as referring to someone whose primary occupation and training is the creation of software. The question then becomes, how low can we drive the training requirements so that people mostly trained in/occupied with other stuff, say cooking, can produce software useful to them "on their own" (without having to pay someone for custom work, that is; let's not think to hard about an airtight definition).
There's an even messier sense of "a programmer" which is roughly "person who write things in text files that a computer interprets" which is possibly closer to what's meant in the "let non-programmers program" type of goal statement. However this category becomes less meaningful if those goals are satisfied, for roughly the reason Lu Wilson said, and has little inherent connection with the first definition, except as a function of our current tools which are still, in actual use, almost entirely about editing text files...
...mainly because successfully programing by editing text files takes a lot of training. Hmm.
Reminds me of one of my all-time favorite articles: "Beyond programming languages" by Terry Wingrad (1979). dl.acm.org/doi/10.1145/359131.359133 It's all about working productively with computers as part of some other activity, i.e. computers and software not being the focus of attention. And I doubt this will ever be achieved with a single idea or tool. It will require domain-specific approaches.
A programmer is someone who makes a program. eg: A 6-year-old using Scratch.
EDIT: Sorry I've just realised that a 6-year-old using Scratch isn't actually a programmer - because they're not writing any text files that the computer interprets. They're actually a non-programmer. A better example of a programmer would be a 6-year-old using google docs.
EDIT: Sorry I'm just being facetious. But I do think that the definitions used around "programmer" are often more for gate-keeping or to elicit a reaction, rather than anything else - like in the referenced tweet :)
The idea of what a "programmer" is has changed over time and will continue to change, and they'll always be some resistance to that. Just like with any sort of change
A lot of spreadsheet users do a bit of programming in the manner of formulas. I think that kind of programming is about to become even more commonplace with the latest improvements in AI.