Issue #28: Programming As A Hobby

ZX2020

There is a common trope that says we would get more children interested in programming as a hobby if programming as a hobby was like the programming our generation did as a hobby. By our generation, I mean a broad swathe of people in WEIRD (Westernised, Educated, Industrialised, Rich, and Democratic) societies who are mid-late Gen X and early-mid Gen Y, who can claim to have “grown up” with microprocessors either as kit boards or in the form of slab-form-factor microcomputers, ending approximately with the dominance of the PC and Windows 95.

What did that hobby look like? For some, it is the shape of the computer: a slab with integrated keyboard, and sockets for a video signal, external media, and additional controllers (joysticks; light pens; later mice) and outputs (printers primarily). These are the people who welcome the Raspberry Pi 400 as the product that will rejuvenate the “youth fascinated by computers” craze that brought us Codemasters, Microsoft, Apple, and so many other famous names in the industry.

The Raspberry Pi 400 is without doubt an amazing device. It, along with similar product from the likes of Pine64, costs around £100, which is the same list price as 1980’s ZX80 in its pre-assembled form factor but is 1/4 the real-terms price. Like the ZX80, it does not need specialist equipment to get working: if you already have an HDTV, you are good to go (that is 96% of us in the UK but you will go further if you have already got home broadband internet too; 39% of us in the UK).

For some, it is what happens when you turn on the computer. Anyone who used one of the 8-bit microcomputers probably got faced with with a BASIC prompt saying something like READY or OK and had to write a program to get anything done. Any angry Jupiter Ace users who want to correct me that actually they used the superior Forth language are welcome to tweet me at @akosma ;-).

Regardless of the language, whatever you wanted to do, whether it was load a game from tape, or do your finances, or write the next killer app, you started in immediate mode by writing a computer programme.

Gradually, that power was marginalised; the first Amigas had BASIC on a disk that came with the OS, later ones had ARexx. Acorn computers running RISC OS could still access BBC BASIC. Even MS-DOS still had QBASIC. They all still had a programming environment available to all users. Nowadays, all desktops have one that is two clicks away (open your browser, then open the console), and no tablets or smartphones do.

Back to the Raspberry Pi, then: some want to boot directly into a Python prompt, or a Scratch or Pencil Code workspace, to recapture that part of the magic. Maybe the problem with kids learning to code is that we are not exposing them to the code, so let us set them the same challenge we were set: in order to not program your computer, you need to write a computer program.

Such a computer would be objectively worse at any non-programming task than any other computer. While human-computer interaction is far from a solved problem (and as I argued in an earlier issue, the state of the art on mobile is getting worse), no other computer demands you satisfy the computer in its own terms before it will work for you. Want to play Donkey Kong on your phone? Tap the Donkey Kong button. Want to do it on this mythical BASIC Pi? Crack open the manual and learn the commands for loading Donkey Kong.

Oh, it did not come with a manual? Too bad. Some people point to a dearth of the sorts of programming books and magazines that were available in the micro revolution. With modern versions of Input Magazine or Peter Usborne’s books, children could explore their new computers with friendly and informative guides. Those books do in fact exist, and Usborne is still one of the publishers behind them. The economics are different these days, and one might expect a 52-issue partwork magazine series on programming to come with a free computer in the first issue.

As you can tell, I am downbeat about many of the attempts to rekindle the excitement about computers everybody with a computer in the 1980s felt. The difference between those times and these is not that humanity has become jaded and lost the capacity for excitement, though 2020 certainly tried hard in that respect. There are more computer programmers now than four decades ago, more materials (including freely-available materials) on programming, more options for programming environments and tools, and of course cheaper computers.

What has happened is not that we have become disengaged with computers. What has happened is that most of us with a computer do not care about it as a computer. Owning a Commodore 64 is no longer a badge of membership in the hobbyist computer club. That does not mean that the hobbyists are not out there, just that you have got to look harder to find them.

And that means that we do not need to go back and rediscover the excitement of the 1980s. We need to go out and nurture the excitement that exists now, in the 2020s. We need to do it on 2021’s terms, with 2021’s technology and with the expectations and access denizens of 2021 have at their grasp.

Cover photo by the author.

Donate using Liberapay

Graham is a senior Research Software Engineer at Oxford University. He got hooked on making quality software in front of a NeXT TurboStation Color, and still has a lot to learn.