One thing I can't help but notice in reading all these letters is that the people who object the most to Mr. Brin's article are invariably programing experts, and that although they speak of Basic with contempt they all learned it extensively before anything else. One thing many of them may not fully appreciate when giving advice on perl, Python, and HTMl is how utterly arcane these things are to a layman. Basic represents the absolute ground level in terms of ease of access (it was right there when you turned on the C64, for God's sake!) and universal familiarity. You didn't need to worry about compiling it, and you didn;t need a computer expert to tell you where to download it from (at least until said experts read his article. My thanks for pointing out the availability of QBasic, by the way).
One other thing people may wish to consider is that, at least until the early 90's, basic was universal. I can imagine math books with Basic programming code. It is harder to imagine math books with python, perl, html, C, or (God help me) C++, because those languages are so much more arcane.
In other words, the hurdle can be cleared, but the bar has been raised too high for the beginners who have no easy source of advice. This is a significant point, and Mr. Brin ws right to raise it.
Yes, there is some academic writing on Scheme that would be tough for a newcomer. I forgot to include a link in my first comment:
http://www.drscheme.org/
I'm sure there are some introductions to scheme that are easier to digest than that jargon-laced description.
For those who still find Scheme too pointy-headed I recommend giving it a go anyway; I don't use it much anymore but I still think about it fairly often. It really does do a good job of presenting the basics in a way that's uncluttered.
If learning to be a programmer isn't your long term goal, then the suggestions that other people made for Ruby or Python are good ones. If you're really interested in the low-level details, C is tough to beat, though that's not how I would choose to start out.
BASIC really is pretty awful, though. It's where I came from but I'd never go back there.
These days there is some great stuff freely available out there. Part of the reason reading this article was so jarring for me is that we're pretty much in a golden age software-wise; if anything the problem is that there's too much stuff. The solution to that problem is to pick one of the very good current alternatives, though, not to try and bring back the days when one crappy option was the obvious choice.
Wow ... some of these letters are like New Math all over again.
Brin wants the classic BASIC precisely because of its limitations. The moment you say the word 'compiler' you are at least one order of magnitude too complex. Your modern programmer can probably do algebra in their sleep -- but kids still get shown two apples and two more apples and asked how many apples they have now. The point of the ultra-limited BASIC was not to enable the accomplishment of useful tasks, but to help the development of useful ways to think about the world.
Most of the more modern languages are also vastly less redundant in their coding style, with Perl and C being good examples. BASIC, by contrast, gives you lots more surface area to read and understand what the computer is doing for you, even while it reduces the possible range of what it can represent. This lack of efficiency is the kiss of death to a professional programmer, but it is exactly what a 9 year old needs.
Line-by-line programming is like learning to speak sentences. Eventually we want them to plan out that book report, but first we just want a good sentence to come out of their mouths. At some point, kids might write a program too big to be comfortably understood in BASIC. At that point, it will be time to move on.
David,
I understand where you're coming from, but I disagree pretty strongly that the interfaces of perl, or shell, or python, or ... fill in the blank with your favorite scripting language - somehow don't give you the simplistic, do-it-yourself interface that BASIC did.
I, like a lot of my generation, grew up on the Pets, the TRS-80's, the Vic-20's, and the C-64's. I first learned assembler on a Commodore 64 when I was 12 or so, and I agree that it was much easier for me to get to that point because I was able to experiment with the BASIC language. But then, unlike a lot of my peers, I took a 10 year hiatus from programming, and didn't get really back into it until grad school. Learning C was a huge pain in the butt for me, C++ even more so, to the point that I gave up on programming altogether and focused more on the application integration side of things & experimented with security subsystems that were more fun (and simple) to play with.
For me, BASIC was the thing that allowed a 12-year old kid to program a computer. It was wonderfully liberating.
But I disagree pretty stringently that the same, simplistic interface isn't available on any modern computer. Throw in a knoppix CDROM (no installation required), and an 8-year old boy can figure out how to make just about any computer become a linux workstation that features a native interface that includes one of the most simplistic programming languages I'm aware of - the bourne shell.
The 8-year old boy of my example throws in a knoppix CDROM to his parent's computer (or starts up his $100, MIT-provided, laptop if he happens to live in the thirld world), clicks on a terminal icon, and starts typing:
VAR="Hello World!"
echo $VAR
And see's his computer screen show:
Hello World!
How different is that from a bit of basic code? How hard is it to use "printf" to move a dot across the screen? And even perl (or perlsh, for the adventurous) offers a fairly simple interface.
I really don't understand why you're fixating on the need for BASIC when very many common, simple program languages are just a few feet away from you in the form of knoppix CD.
Mark
Much of the initial coverage about Fort Hood turned out to be wrong. Is there anything wrong with that?
The accountability imposed by another country for the CIA's kidnapping and torture reveals much about our own.
Fox News' morning show plays to type, talking about whether Muslims in the Army should face "special debriefings"
The Maine fight was supposed to be the dress rehearsal for repealing California's Prop. 8 -- but gay marriage lost
Once one obtains Seriousness credentials in the Washington media, they are irrevocable no matter one's conduct.
Salon headlines in your mailbox