Better than BASIC?

David Brin complains about the difficulty of obtaining BASIC for modern computers, in a piece published yesterday on Salon. He’s been trying to teach his son to code, starting with simple algorithms and developing a good sense of what the computer is doing as it processes each step. Java and C++ are considered too complex for this purpose, and he seems to consider most scripting languages to be too high-level:

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. BASIC was close enough to the algorithm that you could actually follow the reasoning of the machine as it made choices and followed logical pathways. Repeating this point for emphasis: You could even do it all yourself, following along on paper, for a few iterations, verifying that the dot on the screen was moving by the sheer power of mathematics, alone. Wow!

I’m not convinced. Sure, some versions of BASIC let you get pretty low-level with PEEK and POKE, but there’s a perl library that will give you that level of access. And while Perl, Python and Ruby will provide a lot of high-level features, most of the time you don’t have to use them. You can go back to the core of most algorithms and, yes, follow the reasoning.

Meanwhile, you get an easy transition to more refined programming techniques. As a BASIC programmer who wanted to switch to OO techniques, you had to learn a whole new syntax. Learning new languages is a good thing, but it’s nice to be able to encounter new paradigms in a familiar environment.

Of course, for those who insist on BASIC, you can always follow Brin’s lead and buy a Commodore 64 on eBay, or there’s BBC Basic for Windows.

Tags: , , , , , , ,

1 comment

  1. I thought I’d let you know that David Brin replied to my blog about his article with some good clarification about “Why Johnny Can’t Code”. Maybe he’s shifting his point a little, but he’s now emphasizing that there just is no easily accessible way that a beginner can just start programming on any computer they happen to sit down in front of. That’s a true point, and isn’t answered by any of our various favorite technologies at this point. I’ve linked the blog exchange at my name’s URL. Seperately, from his web page: “What I didn’t expect was the flurry of intensely passionate replies!” 🙂