BASIC Inspired A Generation Of Technologists. What Will Inspire The Next?
I received a Christmas gift in fourth grade that profoundly impacted my career path and thus the rest of my life. That gift was a VTech PowerPad Plus “pre-computer.” While just a toy, the PowerPad line of products from the late 1980s and early 1990s were functioning computers that featured, among a handful of educational games, a functioning BASIC interpreter. For the uninitiated, BASIC is an computer programming language designed to be simple, versatile, and for learning. Exploring BASIC on that spartan machine ignited a passion for technology and programming in me that burns to this day.
Invented at Dartmouth College in the 1960s, BASIC is an acronym for Beginner’s All-purpose Symbolic Instruction Code, and the idea behind it was to create an accessible language that college students could use to write their own mainframe programs without having to learn more complex languages such as FORTRAN and ALGOL. It existed in relative obscurity as a research project, as many early computing innovations did, until the late 1970s when it exploded, and we have none other than Microsoft to thank for that explosion.
Prior to dominating the operating system and office suite markets, Microsoft was a vendor of programming language interpreters and compilers. One of their first commercial successes was a BASIC interpreter for early popular systems like the Apple II, Commodore 64, Atari, and other personal computers based on the affordable MOS 6502 CPU. Because Bill Gates was able to design his BASIC to work on so many machines (and yes, Bill Gates did much of the programming in those early days) it fast became a popular tool on which early developers cut their teeth.
From there, early software publishers produced code that, with a little modification, could transfer between those nascent computer systems of the 1980s. Because modems and disks were expensive, users received most code in the form of books published with pages and pages of computer code that had to be copied, by hand, from page to screen. Simple games such as Pong or Solitaire were hundreds or thousands of lines long containing monotonous repetitions of PRINTs, INPUTs, and LETs that BASIC employed to represent instructions. But the cost in time-spent entering those lines of code was made up in educational value. As users tediously poured through those pages, and even without formal training, they could begin to subtly change the code, inject their own ideas, and in time, write their own programs.
That was the same motivation behind putting a BASIC interpreter into the VTech line of PowerPads. Packaged with an introductory BASIC manual covering the construction of simple input and output routines, it was enough for a 10-year-old to begin a journey into the world of software development. In the next year or so I’d advance to a copy of QBASIC on an old MS-DOS PC in middle school, then to PHP and Javascript in high school, and finally to a wider universe of languages in college studying computer science.
But what made BASIC wonderful and the key to my early inspiration were a few simple points:
First, it was ubiquitous. Microsoft’s BASIC interpreter ran on every popular machine, making it a quasi-standard for the day. Later, other software vendors would produce similar variants of BASIC not too dissimilar from Microsoft’s version. Many manufactures, such as Apple, also simply hard-wired BASIC into their machines so that they could run it even without a disk drive.
Second, it was accessible. BASIC’s syntax is self explanatory and therefore comfortable for even the most novice user. PRINT sends text to the screen, INPUT reads from the keyboard, RECT draws a rectangle, LINE draws a line, etc. And beyond this catalog of simple, literally-named commands, many versions of BASIC included more advanced concepts such as arrays and program flow control structures from big-brother languages so that as users’ skills and understanding grew, BASIC could grow with them and provide more robust options.
Third, it was free. A copy of BASIC came with almost every new computer in the 1980s and early 1990s with almost no restrictions on use, and the distributions often came with several sample programs preloaded such as Microsoft’s version of Snake, called Nibbles. Just like the books of code I mentioned, this showed what was possible with such a simple toolset and sparked creativity and open experimentation.
Those elements that led to BASIC’s success in the late 1970s, 1980s, and early 1990s are also what led it to inspire me. As just a kid, it was easy to explore such a simple language that came as a built-in feature on a toy computer. I can distinctly recall writing my first program on that toy laptop: a simple exercise instructing the computer to print out the sentence, “Hello, world!” Suddenly, computers and all of the activities like playing games, word processing, and exploring the early Web were less of a mystery to me. It made sense how a computer did all of that. Another person wrote instructions, just like I did, that made the computer do what he or she wanted. Now the world of technology was only limited by my skill and imagination, and I set out on a path to build both.
That outcome was the same for so many because BASIC turned the computer from a one-way information source to a truly interactive tool, a digital canvas for the early computer learner. My wife, a first grade teacher, often reminds me that the job of an educator is to not simply deliver information and skills to students. Rather, it is to find and cultivate what inspires students to be lifelong learners. For so many in generation X and Y, it was BASIC that inspired them to become software developers, engineers, scientists, and more. The question then becomes, what is the BASIC of the next generation?
The value of teaching coding is not lost on us today. From sites like Codecademy to Obama leading the Day of Code, we intrinsically understand how important technical skills are in our society. But those platforms and initiatives are merely skill delivery platforms that feel too close to serious, vocation-oriented education focused on preparing users for the workforce. They do not inspire. They presuppose that the user is strongly motivated, and they teach modern, proper languages so that the outcome is a serious set of skills. They run in contradiction to what made BASIC such a catalyst of inspiration.
Instead, we need something that fulfills the key things that made BASIC work: a tool that is ubiquitous, accessible, and free.
To be ubiquitous in this era is a much simpler challenge using the web. What once had to be built directly into a product can ship, like all modern software, on an iterative basis over rapid and wide-reaching delivery channels. Building it on the web is the first step to seeding a broad community of users, but the work only starts there. A true community of users and evangelists is what truly makes something like this ubiquitous.
To be accessible, it must be something that is not an attempt at job training. Online code learning tools serve an older audience who have the maturity to work through a handful of modern computing concepts before being able to produce something tangible. Programming in Javascript or Ruby is far too complicated for a beginner, and the plethora of content online about modern languages would simply overwhelm someone searching for help. BASIC worked because an elementary school student could begin using it in five minutes but gradually enhance their skills as they became more confident. No online learning platform does this.
And to be free, it is easier than ever today thanks to the open source movement. As an open source project, it could attract numerous contributors of features and, more importantly, sample code for others to play with. Whatever this tool is, it must be managed in the open — perhaps by a federation of companies and organizations dedicated to inspiring the next generation of coders.
The big question that remains is what exactly is this tool? Is it a new iteration of BASIC? Taking the core tenets of BASIC as a programming language with a simple, versatile syntax and wrapping it in a modern user experience could make it just as accessible as it once was, but regardless of the literal platform, it will be the community that makes it a success. The ubiquity of BASIC — its presence on so many machines and the vast catalog of software and instructional tools — is what positioned it to inspire so many and make it a success.