BASIC turned 53 earlier this month, and it got me thinking: For many computer users of a certain age, BASIC was the first foray into programming - and using it was a veritable rite of passage for the first generation of personal computer owners. Is there still a place today for a programming language for non-programmers?
BASIC's Beginnings
BASIC - an acronym for Beginner's All-purpose Symbolic Instruction Code - was initially developed as a teaching tool for undergraduates studying at Dartmouth College. John George Kemeny and Tom Kurtz intended BASIC as a computer language for non-engineers and non-mathematicians to use.
BASIC wasn't the first high-level programming language, but it was the first programming language aimed squarely at anyone who wanted to use a computer, not just math majors and engineers. Kemeny and Kurtz found existing languages Like Fortran and ALGOL to be too unfriendly, so they - along with a team of Dartmouth students - developed BASIC, with a syntax that was human-readable.
The first version of BASIC started with a scant 14 commands (PRINT to output content, LET to calculate, IF, THEN; FOR, NEXT and a few other...um, basic commands).
Dartmouth BASIC was designed to run on a time-shared GE mainframe computer (the then-novel concept of timesharing was another Kurtz invention). The original developers released the Dartmouth BASIC compiler for free. It gradually spread to other systems. BASIC would be implemented on the minicomputers that saw increasing use in academia and business throughout the 1960s and 1970s.
BASIC's Ascent
BASIC's use exploded with the advent of the personal computer in the 1970s. In retrospect, it made perfect sense. The first personal computers were, at their core, hobbyist machines. Most of them were purchased by people who already had experience programming computers in corporate or academic settings, and for the first time could afford to have one in their home. BASIC was something many of them already knew from their time at school.
In fact, Microsoft's very foundation is built on BASIC - Bill Gates, Paul Allen, and Monte Davidoff started their "Micro-Soft" company developing a version of BASIC to run on MITS' Altair home computer kit.
As a young nerd in the 1970s, that was my first exposure – computers didn't have a UI, they booted to a command line. And with BASIC built in, you could start programming right away. I saw a TRS-80 Model I, owned by a family friend who worked as a systems analyst, programming mainframe computers for a big downtown firm.
He sat me down in front of it and turned on the power. I saw a cursor flashing on the screen and asked, "What can it do?"
"Anything you want it to, really," he said.
"Can I play games?" I asked.
"Sure," he told me. "You just have to program them first."
So we did. We spent most of that summer making a game that drew spaceships on the screen. They'd fire lasers that revealed a simple arithmetic problem. If you typed in the correct answer, the spacecraft would explode. Space Invaders it was not, but by the end of that summer, I understood how it worked and why - in large part, because BASIC's syntax was English-like enough that I could read and interpret what each command meant.
For a young computer user, that first experience of being able to tell the computer what to do was incredibly empowering. And it's the same experience that drew the first generation of hobbyists and enthusiasts to personal computing, years before the Macintosh and Windows would attract countless others to computing platforms both as developers and users.
BASIC's Ubiquity
BASIC was baked into all those early personal computers, which meant it was pretty inescapable. It was a very different time to be a personal computer user. While you could buy ready-to-run software, the do-it-yourself ethos ran strong. There were many computer hobbyist magazines and books you could buy that included BASIC programs you could type into your machine.
That also meant that it was easy to modify programs to suit your own needs. As a teenager, I'd copy BASIC programs from the back of magazines like Creative Computing - mostly games. Variations on Colossal Cave, the first text adventure game, or clones of popular arcade games like Asteroids and Space Invaders. I learned how to manipulate data strings, or change values to make the sprites on the screen appear differently.
BASIC's lasting impact was to teach an entire generation of computer users the basics of data manipulation, program flow control, and other essentials. And while BASIC from one computer to another varied, depending on the individual computer's capabilities, it was enough of a lingua franca that once you learned BASIC, you could get it to work regardless of which computer you had.
By the mid-80s, new generations of PCs had replaced the old ones. Programming tools improved and grew in complexity as processors sped up. And new languages replaced the old ones. Pascal (more on Pascal's history here, C, and C++ became the purview of new generations of developers who made software to meet the needs of new generations of computer users.
BASIC's Legacy
The unstructured BASIC of mainframes, minis, and the early microcomputers gave way to more structured variants and then to object-oriented variations like Microsoft's Visual Basic, the most apparent descendant of the original BASIC. Even today, VB.NET echoes the syntax first developed in the original BASIC.
BASIC isn't included with computers anymore, and let's face it, it isn't necessary. The way most people use computers and other devices has changed. Most people become consumers of technology rather than creators. What you can do with the device has become more important than how it works.
That's not to say that everyone wants to be merely a consumer of technology. New developers are coming up the ranks all the time, but the ways they're being introduced to development have changed.
Today there's no shortage now of high-level languages with English-like syntaxes for aspiring developers or even hobbyists to use. Look no further than Minecraft's influence. The popular game, written in Java, has attracted countless numbers of kids to development because of its open architecture and support of mods.
What's more, very smart initiatives to introduce kids the essential elements of programming have appeared over the years. Not just kids, either - anyone who wants to learn. MIT's Scratch is a great example – a visual language that lets users stack together programming elements using a building block metaphor. Blockly is Google's attempt at a building block language, but it has the advantage of being able to output code in different languages like JavaScript, Python, and PHP. Apple's championed its language, Swift, and offers Swift Playgrounds for iPad users to learn the elements of Swift programming. Likewise, LEGO is inspiring a new generation of programmers with its Mindstorms EV3 programmable robotics kits.
All of this proves that BASIC's lasting legacy won't be in its syntax, or in its early availability on the first personal computers, but in its fundamental design principle: The idea that anyone – and, really everyone – can learn to develop software to make computers do new things.