One of the more stubbornly persistent recurring themes from tech curmudgeons goes something like this. “When I was young, computers shipped with BASIC, and you had to laboriously type in programs from magazines to make them do anything. Computers these days are shiny, hermetically sealed boxes that do anything you want at the press of a button, and never expose kids to programming. In this way, we are betraying future generations of nerds to grow up without the advantages we had.”
From my perspective as somebody whose first computer had a BASIC interpreter burned into ROM, that’s a load of rubbish.
The window in which reasonably-priced, mass-market home computers were like these writers remember was the 8-bit Apple II/Commodore 64 era, or “most of the 80s”. By the time the 16 bit era took hold, only DOS shipped with BASIC as standard, and to those few people who discovered it existed it was just that weird thing with the snakes and gorillas games.
Even in the mid-80s when I got my first home computer, programming was far from being required to use it. The Commodore 64 and its cousins had a huge market as games machines, and that's all most of my peers, even many of the more geeky ones, used them for. You just needed to know how to plug in a joystick and type LOAD "*",8,1
.
To be honest, that’s mostly what I did with computers growing up. I knew how to program, but 90% of my programming experience before I left school was watching my brother write code and occasionally offering (unwanted) advice. Nick wowed his teachers in high school by writing his own graphing app to help him with his maths assignments, went on to get a Bachelors degree in Computer Science, and is now a successful print journalist.
The children who actually used these early home computers as programmable devices were a self-selecting group. They were already nerds. And as (admittedly, the less programmer-y) half of a pair of nerds growing up in that era, I would have killed for the opportunities that come with the current generation of computers.
The Nick and Charles Millers of today aren’t growing up writing BASIC apps to calculate their pocket money. They’re putting up web pages, and they’re too nerdy not to want to look at the source code and see how it works. At some point they will want to make that web page do something interesting. That will expose them to Javascript, a language a hundred times more powerful than what they were stuck with on the C64 but yet still learnable in small chunks. Later, in their quest to make the page even more dynamic they'll stumble across Ruby or Python, all easily downloadable from the ubiquitously available Internet along with an inexhaustible supply of tutorials, examples and real people willing to help them get started.
And honestly, I can’t see any reason why BASIC is a better language to learn programming from than Python, Ruby or even Javascript. Today’s scripting languages still make it ridiculously simple to do simple things, while leaving the door open to doing more amazing things the more you learn.
BASIC was always a crappy language, and many of the kids who outgrew it in the 80s hit a wall and couldn’t go further. Advanced programming tools had to be bought, often at prohibitive cost, and it was hard to even know where to look to learn how to use them. There was no consumer Internet. I had one friend with access to a BBS, and as far as I know he only used it to download long lists of dirty jokes, print them out on his father’s dot-matrix printer and bring them to school.
Today, if you're a teenager with a Mac (insert some other platform into this paragraph if you object to Apple on moral or financial grounds), you can download for free the same tools that professional developers use to write Mac, iPhone and iPad applications. You can read countless free tutorials on how to use them, download reams of sample code for free, and ask for help on forums full of people who may never know you’re a precocious kid. And if you’re a thirteen-year old who can wheedle $100 out of your parents for the subscription, you can publish a best-selling iPhone app.
Can we just pause a moment and admit how mind-blowingly awesome that is?