A middle-class of computers users has developed (not to be confused with a financial middle class) between users and programmers. I’d like to come up with a clever name for them, but I’ll leave that as an exercise for the reader.
Unlike users, they expect to be able to program. Unlike programmers, they expect user-level affordances.
To some degree these were the original computer users, back when computers booted to BASIC, before the emergence of the User class and the separation of Users from Programmers. The last effort to preserve this original user- programmer class was Hypercard, and some some degree Lotus Notes, Microsoft Access, etc., but users of these programs rarely consider themselves capital-P Programmers.
I think the world is a better place when experts outside of computer science can create their own software, but I think that since the end of Hypercard, the tools available to ambitious computer users have taken the wrong path, and created a class of “programmers” who are uninterested (or at least not passionate about) programming itself, and only see it as a means to an end. There would be nothing wrong with this if it were not for the fact that these programmers are writing software for unsuspecting Users.
I’d like to remedy this by creating a computing platform where motivated users are able to use existing software as well as modify existing software and create new software entirely themselves, in which the system treats this software as first-class applications, just like software written by professional Programmers. This requires a fresh look at creating software development tools that provide User-level affordances and don’t get in the way of what is trying to be done. It cannot allow software written by big-P Programmers to appear superior in meaningful ways, and should not encourage or demand that User-generated software be marketable or sold in order to be valuable.
I have some ideas for this, but that’s another post.