Programming for non-programmers is an oxymoron to begin with. Even using Excel is programming.
I've become convinced that one of the reasons this field has failed so spectacularly in the past is because people are trying to achieve something that is literally impossible.
In order to communicate with computers you have to become computer literate. Or at least, it's far easier (and will remain so for a while yet) for a flexible human to become computer literate than for an inflexible machine to become human literate.
Finding better ways to make humans computer literate is and will for a long time be a much better path to make computers more accessible, and it's largely what's worked to get us to the point we're at now.
I wouldn't say it failed spectacularly, quite the opposite.
OK, tools for the complete non-programmer maybe. Those are vaporware anyway. But tools for people with domain knowledge to do a little bit of programming were hugely successful. Visual Basic (pre .NET) is the best example. Click together a GUI, add a bit of Databinding, and write some business logic in BASIC. Spreadsheets are another, and they are a gateway drug to VBA. To a lesser extent the .NET ecosystem with XAML and so on falls into this category, too.
Another example was Flash. Artists could make little videos with the vector graphics tools (which are still pretty unique in how you can "paint" vector graphics). You could then animate them and make little movies, and add simple interactive features. Then you could add some ActionScript (~Javascript) to get more complex behavior and make litte games.
I'd say this kind of programming-language-light was hugely successful. Visual Basic, Access, and the likes, and the huge collection of commercial ActiveX controls was probably one of the most overlooked reasons for Microsoft's dominance in the late 90s. Millions of small businesses used MS products and small programs to generate reports, form letters, and so on. And the lasting legacy of Flash is probably the indy-gaming scene that is really successful nowadays (the other drive for that scene comes from mobile apps, which ironically was a main source of Flash's demise).
I don't know why this kind of programming tool slowly faded away. Maybe because people realized that it can cause huge maintenance headaches. Maybe because there is more supply of "proper" developers now. But I guess if someone built a decent IDE and allowed you to click together apps in a high-level fashion (and without boilerplate code!) and using Javascript or Python, it could be a success even today.
I don't think of either VB or Flash as being in any way 'non-programmer'. VB has tools to eliminate a lot of the more mechanical aspects of GUI programming, but in the end you're still writing a form of BASIC to make it actually do anything. Likewise for Flash and ActionScript.
If anything, these both go to my point. They are very much programmer tools, they just lower the bar to getting something on the screen so you can get to the hard parts of programming sooner. If you aren't computer literate, or refuse to become computer literate, you still won't get anything done with either of them.
We need tools that bring the learning curve down and allow people to develop their own basic tools to make their lives easier, while storing the data on a central location.
Amazing things have been done in Excel, but have you ever seen a department have locking issues? "Can you close the spreadsheet so I can get in?"
Yeah, we need multiuser excel, or perhaps a google docs equivalent that can be hosted internally.
>We need tools that bring the learning curve down and allow people to develop their own basic tools to make their lives easier
This won't achieve much because the issue is that most people can't think about the problems they face in a structured way.
Modern programming isn't hard, all you need to learn is a handful of control structures and how to do I/O, and there are a multitude of tools to take away the tedious bits.
But if you can't describe the problem you are trying to solve in a structured way than no non-AI tool will help.
P.S. I remember being considered a Wizard in a non-technical university course because I looked up some Excel tutorials and built a spreadsheet with some basic calculations and graphing. This wasn't technically hard, but most of my classmates lacked the ability to comprehend the relationships between different cells and tables in Excel.
See I don't think coding can get any easier for the level of problem we are talking about here. The kind of small problems we seem to be talking about are the kind of thing that is within the realm of "scripting". You don't need a deep understanding of Computer Science or advanced data structures to write good enough code for those problems.
"Coding" will never go away before AI because at some point you need to formally express the design you have thought up. It doesn't really matter if you do that with arcane syntax, symbols, or "natural" language.
> "Coding" will never go away before AI because at some point you need to formally express the design you have thought up. It doesn't really matter if you do that with arcane syntax, symbols, or "natural" language.
It sounds like you are saying, and I'm not disagreeing with you, that the act of speaking required coding.
That is, speaking is taking input from the senses and memory, converting that input into a natural language (coding/encoding) through thought and saying the final thought out loud.
How does this help in understanding the differences between typing out syntax, manipulating symbols, expression using natural language or AI using it's own coding approaches?
No, I am saying that coding will always require some kind of formal expression, and that the difficulty of the grammar used is not the major barrier (as these issues can be dealt with by compilers and IDEs).
Attempts to create "natural" language programming haven't worked because actual natural languages are too informal and imprecise for simple algorithmic comprehension.
A system that can comprehend natural language and turn imprecise specifications into a program should be an AI.
Modern programming isn't hard you say, for a programmer I'd like to add. I have never been able to program well with something like a programming language as I can seem to hold enough information in my head structured that way.
Building giant spreadsheets is easy though. I don't think programming is for everyone, but more people could learn than today.
> Programming for non-programmers is an oxymoron to begin with. Even using Excel is programming.
Ya, it should be something like "Programming for non-coders". We used to say we would "program our VCRs". Somehow programming has become synonymous with coding but, as you pointed out, using Excel is programming.
I've become convinced that one of the reasons this field has failed so spectacularly in the past is because people are trying to achieve something that is literally impossible.
In order to communicate with computers you have to become computer literate. Or at least, it's far easier (and will remain so for a while yet) for a flexible human to become computer literate than for an inflexible machine to become human literate.
Finding better ways to make humans computer literate is and will for a long time be a much better path to make computers more accessible, and it's largely what's worked to get us to the point we're at now.