This article is very silly. Complaining that software has gotten easier to use but programming remains difficult is like complaining that cars have gotten easier to use but automotive engineering remains difficult. The design and construction of an end product is not the same as the end product itself. Product like cars and software can be made much easier to use over time with better design and technology. It's not obvious that the design and construction of these things itself can be.
Many people have tried to achieve this and will continue to try - look at light table and Apple's playgrounds for recent attempts. But these 'revolutionary' 'accessible' programming tools have never delivered on their promises. This is something Fred Brooks predicted in the 80s. Much of what makes programming hard is essential complexity inherent in the problem to be solved. Improving our tools and processes is a good thing, but there are no silver bullets when it comes to improving programming productivity.
You're very right. Many people have tried, and haven't succeeded yet. But is it a reason not to try again? I think that way of thinking is very sad for an engineer... Our job is precisely to make things that look impossible possible, isn't it?
Design and construction of the same thing can be made easier. But we aren't happy using the same thing. Pushing the envelope will always be comparably hard, because the envelope expands at about how hard people are able to work.
> For instance, to turn a button red, we shouldn't have to write code. We should just be able point to the button and select a shade of red. Instead of talking about concepts the computer cares about (like variables and servers), programming tools should talk about things the programmer cares about (an image or a cloth order).
This is the concrete example of what the revolution will look like. It doesn't involve interfaces or logic, just a color customization, which has been possible in most user-facing software as long as I can remember.
The only thing that can bridge the gap between as-yet-unknown interfaces (in the most generic sense) and non-programmers is some flavor of artificial intelligence, which is far from a forgone conclusion.
I used that example as it was easy, but I could also have said: "we should be able to say: when the user is logged in and clicks on submit, then create a new apartment" (you'll have recognized airbnb...) My point being it could be much more complicated than turning button to red.
Most people try to solve the issue with AI. I think it's one of the reasons why we haven't solved that problem (making programming more approachable) yet. I'd argue the first step is to make that it's readable in plain english. If we have this, then we can start thinking about AI. Why don't you have a look at Bubble (bubble.is). That's our approach
A domain-specific WYSIWYG editor is a long, long way away from a future that doesn't involve any coding. Unless by "coding" you mean HTML/CSS/JS in e-Commerce web apps.
The point is that there are infinitely many interfaces (again, in the most generic sense) that haven't even been conceived of yet. All of those will require coding.
I dont know... We're pretty close to WYSIWG, as you can read workflows. It's just the beginning, but we have something that 's def more readable than code
And for the new interfaces, there will prob be some coding required, but let's build tools so that we can reuse them, without code
The visual programming has a goal to be like 3D printer in software industry, when we draw the product on paper, the machine will "print" the software automatically. 3D printer can make simple mechanical product, likewise visual programming can only produce simple laughable software.
Today, iphone is not possible to be printed from a 3D printer, nor is photoshop can be generated from a visual programming tool.
Why someone always want to make the giant leap instead of focusing on the logical next step, is a mystery.
I think a 3D printer promises what we've had for decades in the software world: once experts have designed something, you don't need to be an expert to use it. You don't need a huge CNC setup or a minicomputer. Everyone doesn't need to be writing their own programs (or designing their own printed items) for that to be revolutionary.
At the same time, making it easier for more people to write their own programs (and modify them as they need) also has tremendous value. I don't think visual programming delivers on that well, though.
As an aside, note that when I say "experts" above, I don't necessarily mean to wall it off - anyone who takes the time to learn the skills involved would deserve the label, to this purpose. I just mean an expectation of some measure of study/skill/specialization that won't be present by default.
Many people have tried to achieve this and will continue to try - look at light table and Apple's playgrounds for recent attempts. But these 'revolutionary' 'accessible' programming tools have never delivered on their promises. This is something Fred Brooks predicted in the 80s. Much of what makes programming hard is essential complexity inherent in the problem to be solved. Improving our tools and processes is a good thing, but there are no silver bullets when it comes to improving programming productivity.