Salon is running a story wherein author
David Brin complains that the computer world's deprecation and collective purging of the
BASIC programming language (which of course he grew up with) is somehow hurtful to the technological development of today's kids, including his own. He seems to think that BASIC is a low-level programming language that helps kids understand how the machine works. Of course, the only way BASIC is low-level is that it encourages use of
goto, like machine language and unlike modern high-level languages. Otherwise it is designed to insulate the programmer from the machine.
It seems to me that Brin is stuck thinking that the way he learned things is the only way to learn them, and he doesn't seem interested in modern options. I grew up on BASIC too, but I got away from it as soon as practical, and I wouldn't recommend that as a way for anyone to learn programming today.
If Brin wants his kid to learn something close to the machine (his major professed goal), he should choose
C. If he wants his kid to learn a language that lets him ignore the machine and do higher-level algorithm work (part of the original goal of BASIC), he should choose
Python or
Ruby.
Responses at Salon also mentioned
programming TI-82 calculators,
Lego Mindstorms, and other options that modern kids have and were unavailable to past generations.
On top of all that, today's technically-interested kids can put Linux or BSD on their computers and not only choose from a wide selection of programming languages to use (rather than the BASIC interpreter built into the computer and whatever else their parents could afford, as the previous generation did), but also delve as deep as they want into how all the pieces of the software and operating system work.
In one sense, however, Brin has a point. He mentions that his son's math textbook includes BASIC programs to demonstrate the algorithms. Since the computer world has rejected BASIC (a message the textbook writers seem to have missed), there is no single universally-accepted replacement. But that's mostly because of Microsoft - unlike every other common operating system today, Windows doesn't come with any development tools since they deprecated
QBasic starting with Windows 95. On the other hand, MacOS, Linux, and BSD usually have
Perl,
Python, and others either built in or readily available for download.
Perl may be the closest we have today to a universally-available programming language -- it's an
easy download and install on Windows, is generally built-in everywhere else, and is quite mature and popular. Many complain about its syntax, though
most of that weirdness is obsolete and easily avoided.
Python would be second (and a better first language), but it too has its quirks (well, one major quirk plus an object-orientation annoyance). Maybe
Ruby is the way to go these days.