Thursday, September 14, 2006

Johnny Can Too Code (If He Wants To)

I thought this article by skiffy writer David Brin was interesting. For those too lazy to read it, he basically complains for three Salon pages about the lack of a "line-oriented" programming language readily available to teach kids a modicum of computer programming, with the implication that said language is perhaps necessary to get kids interested.

I sort of see what he's saying. The vast majority of computers sold these days run Windows, and Windows, as far as I know, doesn't come with a built in language to fool around with. This is in sharp contrast to the good ol' days when your Commodore 64 or TI-99/4A or Apple IIe or whatever pretty much required you to know the BASIC programming language. When you turned the things on what you got was an interactive BASIC session. Even if you wanted to run some commercial package, you had to enter a line of (usually non-standard, proprietary) BASIC to load and run it.

I remember as a teen assiduously reading the "Chaos Manor" columns of (yes, another) skiffy writer Jerry Pournelle in Byte Magazine. One idea that Pournelle continually flogged was that computers should always come with a programming language as an escape hatch so that the user could make them do what he or she needed. Commercial software was nice, but software wasn't one-size-fits-all, you know. Hrm. Well. That's pretty much how things are now, though many applications (say, Excel) do allow some extension through another language (in this case BASIC). But anyway, that idea really appealed to me. Still does. While I can also see the appeal of turning computers into appliances that are as easy (or easier, I hope) to operate as (than) your washing machine, I think I just find the idea of having fine control over your machine . . . beautiful. Give the power to the people, I say. This is no longer the practical concern it was in the days of Byte, however.

So Brin winds up buying a $25 Commodore 64. (Can I pause here to say, what? $25? Really. I don't think I'd be allowed, but it's tempting.) I guess that works. But really, a better solution would be to install python and direct your kid, say, here for a tutorial. Or install ruby and direct your (soon to be "happening") child here.

If you're one of those handful of lucky people running Linux or BSD or Mac OS X, you can skip the "install" steps. Ruby and python are already loaded. And while I'm mentioning UNIX-like operating systems, why not start right there? Why not let Johnny install FreeBSD (best documentation) or Debian GNU/Linux on that spyware-clotted old PC and let him learn shell scripting?

The problem really is not that computers are now closed up black boxes, as Brin seems to believe. The problem, if you can call it that, is that there are so many options, so many points of entry. Do you know what I'd have been doing back in 1983 if there had been free UNIX operating systems for the taking? Or if there had been an affordable computer with UNIX pre-loaded (talking about a Mac here)? I wouldn't have been learning that sorry excuse for a programming language, BASIC. I can tell you that.

(I still want a $25 Commodore 64.)

1 comment:

  1. $25 c64? huh... mine is still under the bed, in the box, with the disk drive right beside it. Only missing the monitor, that I know. Most likely, the floppies have all died. At least any of the ones worth having. The common domain software would probably be the only ones that survived if karma really existed.