Letters to the Editor

Letters posted here are associated with the following article:
Why Johnny can't code BASIC used to be on every computer a child touched -- but today there's no easy way for kids to get hooked on programming.
The letters thread is now closed.
  • Simply confused

    Like many other posters here, I am simply confused by this article. Never in the history of computing has there been so many opportunities to customize, learn about, and program your computer as so many previous posters have already pointed out.

    Is he intimidated by the complexity of modern computers? Is this why he is reluctant to try new things and new languages?

    I'm glad that Johnny is not following in his father's footsteps and is putting himself on the line and playing with all these neat, new (for him) toys.

  • so true - and not only in the software...

    but also in the hardware! indeed, in the last few years, with the disappearance of the lowly parallel port from almost every computer you can now buy, we now have the absurdly frustrating situation where you can have an insanely powerful computer in your lap, and yet be unable to do the simplest possible logical operation with it. I speak of simply wishing to use the computer to control a single bit in the outside world; to use the machine to either supply +5 volts or not; to control an external device by a 1 bit electronic signal. You cant do it any more. Now, to do this you are forced to know about USB controllers, or firewire, or other things that should simply not be needed just to SET A SINGLE BIT.

    Forest. Trees. And all that.

  • And how to tie knots

    David Brin wrote:

    I also plan to teach him how to change the oil and fix a tire!

    And how to tie knots -- bowline, taut-line, and square.

  • BASIC is horrendous ... and open source delivers

    I'm a hard core coder. I live and breathe the stuff. I support myself and my family writing open source Java software (I'm the creator of two succesful Java project: Apache Tapestry and Apache HiveMind). I'm almost 40 and have been coding since I was 12 ... first in BASIC and 6502 Assembly, then pretty much everything in between.

    I would never teach someone programming using BASIC. It's a horrendous language. Ugly and clumsy. It would be like teaching someone architecture by giving them an erector set and a blow torch. Nothing good would come of it.

    Two languages I have been using to teach new programmers:

    Inform 7: http://www.inform-fiction.org/I7/Welcome.html

    This is a natural language programming environment for creating Zork-style text adventures. Just beneath the surface is a full object oriented system, lovely state machines, and even aspect oriented programming. And yet, it is fast and very, very fun, and terrific built in documentation.

    On a more serious note: Ruby http://www.ruby-lang.org/en/

    This is an object oriented scripting language. You can use it with an editor, you can use it from the command line. You can use it inside a web browser. You can play with Ruby, or you can build serious systems with it. Or you can play and end up with a serious system. It's also fun, and has terrific documentation (on line and in print).

    Both of these are free (Ruby is fully open source, Inform is free-as-in-beer). They are easy downloads, as easy as downloading any game demo (and much smaller). Parents may be daunted by having to download, kids don't think twice about it.

    Don't lament BASIC. It is irrelevent in the new order. And it was never as much fun as either of these two languages.

  • STAMP and ROBOTS

    Excellent options for line by line coding are the many STAMP based robot kits. Also excellent are the Lego Mindstorms robotic kits. These options give the added benefit of physical feedback--the robots DO something!

  • Python, Perl, PHP for a 9 year old?

    These languages may be great and all for a kid in high school, or maybe a bright middle school student.. but for a kid in elementary school I don't see them as being nearly as accessible as BASIC or Logo. At that level it's more about being exposed to simple logic, arithmetic and algorithmic thinking than leveraging the power of your computer.

    I understand that BASIC is dead in terms of being a stepping real programming language, bit it still has use as a learning tool.

  • Another idea

    How about just giving him one of those Diebold machines? I hear they are pretty easy to reprogram.

  • Awfully confused

    I have to admit to being awfully confused by this article. In about 30 seconds of web searching I found several open source implementations of very traditional BASIC. Here, for example, is the home page for Chipmunk Basic, which seems to be just what the author is looking for:

    http://www.nicholson.com/rhn/basic/

    and as the bottom of this page shows, there are literally dozens of other basic and basic-like languages available for free for nearly so.

    So what am I missing?

  • Too hard to figure out?

    The great irony of this piece is that in the middle of a paen to the joy of figuring things out, we find out that the barrier that kept Misters Brin from using the better alternatives out there was this: they were too hard to figure out!

    Extremely limited, but helpful. All of the others, every last one of them, was either too high-level (missing the whole point!) or else far, far too onerous to figure out or use. Certainly not meant to be turn-key usable by any junior high school student. Appeals for help online proved utterly futile.

    Too hard to figure out, or else, too "high level". There's a fundamental tension here--low level things are more complicated. Hiding that complexity is the whole reason "high level" things exist. If you don't wan't "high level", you have to deal with the complexity.

    No one is telling today's kids that they should "simply be consumers of software"; there is, however, a big push to hide the complex details, largely because of old farts complaining that things are too hard to figure out.

    I learned programming using BASIC, and I write software for a living now. I've learned a variety of other languages, and if I had a child that wanted to learn to program, I'd keep them as far away from BASIC as I possibly could.

    There really are much, much better ways to learn now. Among technical people who actually care about programming (as opposed to those who just do it for a living) BASIC is widely considered a source of brain damage. Not because it's too low level, or because it's not "fancy" enough, but because it really is obsolete. It teaches bad habits that will make it that much harder for little Johnny to actually understand what the machine is doing and how best to make it do what you want.

    I'm sure Mr. Brin has heard lots of suggestions for what the alternatives might be, but since he's rejecting them for being too high level, too limited, or too hard to get going, I'll limit my suggestions to one: Scheme. If you were to take all of programming and reduce it down to the fundamental basic ideas, you'd end up with something pretty close to Scheme. This makes it a good place to start learning. Everything else can be comfortably built on top of that foundation.

    Some people criticize Scheme for being too "high level" in that it's pretty far from the bare metal of the machine, but I think it's easiest to start with the abstract and save the nitty-gritty details for later. Some people might criticize Scheme for being too "low level" in that it doesn't always provide all of the built-in functionality that other languages do, but Mr. Brin isn't looking for whiz-bang functionality, and in any case implementing some of those things yourself is a great way to learn.

    Part of the problem is that Mr. Brin has been asking "senior Microsoft officials" and "the masters of IT", who almost certainly have axes of their own to grind here. I suppose an article like this is the best way to ask for this kind of help; the answers you'll get are from the people who actually care about the your problem.

    As far as the "lingua franca" thing goes, software is just moving too fast at the moment. Keep the code out of the textbooks for a while until things settle down some (or, alternatively, make the textbooks electronic so that they're easier to change). Until then, you're just going to have to figure some things out for yourself.

Most Active Stories

Read More

Letters Help

Daily Delivery

Salon headlines in your mailbox