Johnny can too code

David Brin, in a piece at entitled “Why Johnny Can’t Code”, complains:

almost none of the millions of personal computers in America offers a line-programming language simple enough for kids to pick up fast

Maybe Apple’s marketshare is so small that they equal “almost none,” but all OS X Macs come with Python and Ruby among other options. But wait, Brin seems to have heard of some of these newfangled scripting languages:

The “scripting” languages that serve as entry-level tools for today’s aspiring programmers – like Perl and Python – don’t make this experience accessible to students in the same way.

Really? In what way do they make it available? In what way do they fall short? Brin doesn’t say.

I’d argue that Python (to speak about that with which I’m most familiar) is a better language than BASIC for learning coding, and not because it’s more pure in a CS sense. It’s clean, consistent, powerful, easy to read, nearly devoid of distracting cruft – and it has an interpreter.

Brin’s argument seems to be that because young people aren’t learning BASIC anymore… cool stuff will stop happening and all young people will become mindless consuming automatons. I’d ask him to interview a dozen 22-year-old Web 2.0 hackers and innovators and find out how many of them cut their teeth on BASIC. Few to none, I’d wager (really, I’ll wager, like, five Paypal dollars on it).

I grew up on BASIC and in some ways I’m still recovering!

Anything more I could say about this is better expressed by Rafe’s condensed version, from a discussion today on the Well:

“I wanted to teach my kid to program without having to learn anything myself, and I couldn’t.”

Mark commented on Sun Sep 17 03:10:09 2006:

I think the difference is that the early machines - Spectrums, BBCs, C64s etc - came with a BASIC interpreter as their front end.

On the Spectrum, you could type

10 PRINT "My sister smells!   "
20 GOTO 10

and RUN it immediately. None of the current scripting languages have quite that level of integration with the machine.

Besides, there are more distractions on a modern PC: the Spectrum would only do one thing at a time. If you didn’t load a program off tape, writing BASIC is all that you could do.

In the mid-eighties, virtually all of my 13-year-old peers who owned a microcomputer also had at least a rudimentary grasp of BASIC and what programming was.

Rob commented on Sun Sep 17 23:17:05 2006:

On the old computers, you were always at the terminal because you couldn’t do anything else. I had pretty much the same experience with my old Commodore. I don’t see that as a better time and place in computing.

Today, if you open up a terminal on Linux (or bothered to install Python and set it in the run path environment variables on Windows), you can simply type:

python -c “print ‘My sister smells.'”

…and you get the same effect, except more succinct.

If you actually RUN the python interpreter, you get the same effect as the good ‘ol days. Type commands at the prompt to your hearts content. I frankly don’t understand what the author is griping about. Today there are hundreds more languages you can freely download and experiment with. Back in the day, you had BASIC and were lucky if you could get your hands on a C or Pascal compiler without shelling out some bucks.

Noel OBoyle commented on Mon Sep 18 08:50:32 2006:

It seems to me that one of David Brin`s main points is that it was easier to draw graphics using BASIC. This is certainly true, at least on the surface. There is no vector graphics library as standard with Python, whereas even QBasic allowed you to easily draw pictures. Part of the fun of programming was drawing Pascals triangle or the Mandelbrot fractal with only a few lines of code, or writing a Pong game as David suggests. The bar appears to be higher with popular scripting languages (although I am only familiar with Python).

Paul commented on Mon Sep 18 12:05:57 2006:

That’s one of the best defenses of Brin’s rant that I’ve heard. Except for Logo, none of the alternatives that come to mind are very beginner-friendly when it comes to graphics, mostly due to the increasing complexity of GUIs I suppose.

Rob Hunter commented on Mon Sep 18 13:59:56 2006:

Actually, drawing isn’t too bad with stuff like pygame.

Even better for those new to programming, RUR-PLE provides something a bit like a LOGO environment, but using Python. (There’s a screencast video of RUR-PLE in action which probably sums it up pretty well)

Thomas Armagost commented on Mon Sep 18 22:17:40 2006:

Planet Gnome is a blog for adults, but it paradoxically seems to be designed to hook precocious kids. Brin should visit Planet Gnome.