3 ms·
One potential problem when trying to execute that vision is that programming and writing are, in fact, two very different activities. When you are writing, you
by GuiA 12y ago
One potential problem when trying to execute that vision is that programming and writing are, in fact, two very different activities.
When you are writing, you can make spelling mistakes, grammatical mistakes, replace words you don't know by other words or even pictograms, etc. Writing is a fluid medium, and it is ultimately interpreted by other human beings, who react very well to that fluidity.
When you are programming, however, you are addressing a computer. Computers deal very poorly with ambiguity or approximation.
Perhaps things like IFTTT are the closest we'll be to "everyone in the world can program". Developing for the web requires understanding stacks and stacks of abstractions because if you want to interact with the web in a way that is more meaningful than posting comments on YouTube, you have to know how those stacks interact with each other.
The notion of "task oriented tools" is not new- but how many non-programmer Mac users have used AppleScript ever? If the author of the post had shown his friend how to use AppleScript to batch rename pictures etc., instead of Ruby, she wouldn't have asked "But what would I use this for?". But would have she used it? The closest we got to that would maybe be something like HyperCard.
I'm not convinced that this gap can be avoided, even though I would very much like it to not be there.
That being said, you can make the argument that people already know how to use computers: architects use CAD tools, photographers use Photoshop, accountants use Excel, musicians use Fruity Loops etc. In all those examples, they're using tools to manipulate abstractions that they could have never had 50 years ago. So maybe that's the form "everyone can program" takes.