My first computer was a Commodore VIC=20. I’d used one or two computers before that (my father’s Gimix Ghost and my grandfather’s hand-made SWTP) but the VIC=20 was mine. When you turned this machine on you were placed into the BASIC programming language, just like almost every other personal computer made at the time. This meant that in order to do anything with these computers, you had to write code, and if you used it for any amount of time, you learned how to program.
Some people simply wrote down a “cheat-sheet” of the BASIC commands they needed to load a program off tape (or less often, disk) but if you had an ounce of curiosity or you were on a budget you learned how to write programs because it was a way to make the machine do more than it could do out-of-the box, and the only cost was your time. It was also relatively easy. Most periodicals and books that discussed these machines included program listings (source code) for all kinds of games and applications, written right in the text of the pages that you’d simply type in to your BASIC prompt, use and modify them to suit your own needs and save on tape for later use. It never occurred to me at the time (I didn’t think about software licensing much before age 10) but this was not unlike how open-source software development works today, largely because the only way to transfer software this way was in source-code form.
Regardless of its limitations when compared to other languages, some very cool things were built with BASIC, but probably the most important thing created this was was a generation who saw the personal computer not as a thing to run applications or a game console but as a blank slate, capable of becoming anything you wanted, without having to buy anything else, limited only by your imagination, time and gumption. The pervasive access to the BASIC language provided a way for these programmers to write software with confidence that it could be shared, unencumbered by technical limitations, and work on the inexpensive computers of their friends and neighbors.
As microcomputers evolved there were efforts to address the limits of BASIC or to replace it altogether, and the result of those efforts reduced the number of computer owners who learned to program, and made the programs writing by the remaining programmers harder to write and share-able and compatible. Eventually personal computers began shipping with no programming languages at all, and the era of the computer “user” began.
Today we live in a world where computers are everywhere but programmers are rare. Many people could benefit from the ability to make their computers do more than they were designed to do, but there is an impression that this is hard, and should be left to professionals (I’m not going to say the software development industry is completely responsible for this impression, but it’s advantageous for them to maintain it). Given the knowledge that the tools are available to them, and the encouragement I think that most “users” have the potential to become programmers and not only do I think it would help them solve specific problems, it would change the way they look at the relationship between their computers, the companies that make them and themselves. The personal computer is a magical thing that can create enormously valuable stuff out of almost nothing, but we’ve constructed a world where most people who use them are oblivious to this potential and this is exploited in ever increasing ways.