Letters posted here are associated with the following article:
The letters thread is now closed.
I don't think anybody under the age of 30 can really understand what it was like having a computer in the 80s. If you wanted to play around with computers in the most casual sense, you were introduced to programming. Sure, there were cartridge games and cassettes, but a good many of us got our computer games out of books. We could spend an hour hunt-and-pecking something into our Co-Co 2s and 64s, hoping it worked as promised. We'd play it, then we'd mess around with it, changing things and seeing what happened. From there, it was not far to creating our own games, or any programs we wanted. I once wrote one that attempted to pick racehorses using information from the racing form.
And it wasn't just that we all programmed. We all programmed in essentially the same language, whatever machine we used. That was what made it possible for this to spill out into other areas of our education, such as the textbooks quoted in Brin's article. And it was so easy. We picked it up fast. By high school, I knew guys who had already moved on to C and beyond. These guys didn't have to look for a program that did what they wanted, they just wrote it.
Less than ten years after I graduated high school, I asked a guy in his senior year if they still taught BASIC. He said "Yeah, basic computer skills." Right. The computer course he took involved using prepackaged software. When I did it, we learned programming.
Today, kids can use computers for hours a day and not have the first clue what makes them work or how to make them do something else. In general, the world seems to have become a place with no user-serviceable parts. Or at least it has become such that only the more curious of us are willing to try and understand it.
Knowledge is power, but people today use a lot of things they really know nothing about. And it's getting easier and easier for people to live that way. And so much of it gets wrapped up in ideas of new and better vs. old and obsolete. That's not what it's about at all.
Thanks, David Brin, for saying what needs to be said.
Many of you are slamming BASIC and pointing to other solutions you have found on the 'net.
People, you are missing the point. When computers "in the old days" were turned on you were residing right at a command line that understood a programming language, almost always BASIC. Because of this the kids that used them were forced to learn about the computer before using the computer. Because of that process they are much better informed and knowledgable about computers today.
I am a high school computer Instructor - no, not the kind that teaches prepackaged M$ apps, thank goodness. I teach A+ and CCNA skills, getting into the way a computer actually works, right down to binary, hexadecimal, IRQs and DMAs. These kids that come into my class think they are computer genuises because they coded a simple web page or used a registry tweak they read about to change something in Windows from the 'norm. These kids today have no clue!
When I started teaching 7 years ago I was getting students in my class that were from the tail end of the DOS era. Remember Qbasic? It came with DOS up to version 6.22. The students from that era, compared to the ones now, are like night and day! I would even argue that being forced to use a command line interface is far superior, in terms of learning, than using a GUI is.
I see it first hand people. Talk all you want about languages being better today. I agree, they are. But they do nothing for the youth of today buying a prepackaged idiot box full of M$ wares with nothing to do but surf the net, download porn and lop heads with their favorite virtual sniper rifle.
There is no greater reward for someone interested in computers than to learn how to program one. Problem is ... how do kids today accomplish that if they do not even know it exists?
(*I accululated a lot of responses and compiled much to say, so this will have to be done in two parts. Thanks for your patience.)
Part 1.
Yes, I got a LOT of mail about the Salon article “Whay Johnny Can’t Code.” Direct letters to both my web site (http://www.davidbrin.com) and blog as well as to Salon itself. What shocked me was the degree of passion... no, in some cases bilious rage(!)... that my effrontery provoked. In comparison, mere politics and religion seem to have mild effects!
A majority were rants about the benefits of a particular language for teaching programming to kids. Everyone had a favorite. Very few seemed willing to step back and see the big picture. Which is that - no matter the nenefits of this or that language - the simple fact is that 99% of kids currently never see any of them. At all. Moreover, they cannot.
To a large degree, many letter writers appear not to have even bothered to read the article, leaping to a wrong conclusion that I was touting BASIC as somehow better than other, later languages, or line coding in preference to object oriented programming. There are, indeed, both logical and historical reasons why at least some exposure to the simple syntax and direct implementation of algorithms might be very good for students to have at least tasted, sometime. But that was NOT the article’s point, at all.
Only a small minority seemed at all interested in even looking at my core idea, which was how to create a nice, comfortable and widely shared starting ground for millions of kids, so they could all (all!) use their computers to do a little COMPUTING for mild classroom assignments, and so get an introduction of this way of looking at the world.
Indeed, the tiniest fraction seemed to grasp how valuable it once was (but no longer) for ALL kids to be able to easily type in little illustrative examples at the end of each math or physics chapters. Nearly everyone seemed to assume it could still be done. But it cannot.
I’ll repeat that. It simply cannot be done.
It does no good to preach what languages kids SHOULD have access to. Or how trivial the letter writer feels that it is to download this or that from some specialized site, or to probe the inner sanctums of the Unix Kernel or hidden layers of MSVB. Again, most kids and parents aren’t download-geeks or layer detectives. In EFFECT most don’t have easy and direct turorial access to any computer language. Period.
A few writers were actually calm enough to step back and contemplate this weird situation, in which we’ve distributed hundreds of millions of computers that cannot compute. Earnest folks did offer a few solutions that might plausibly address the problem in a practical way.
1) Somehow persuade Microsoft to care. In which case, with a fingernail’s effort, they could offer micro-implementations of Basic, Python, Scratch, and half a dozen other excellent introductory languages as a public service, in versions tuned precisely to be usable as classroom and homework demos. Each could even come with a “launchpad” to purchase and download expanded versions, if the kids’ interest is sparked. Nobody would mind them making some money downstream. Especially since the upstream, initial cost in both money and onboard memory would be trivial.
2) Some place with an historical interest in Basic (like Dartmouth) could create a slimmed version, along with maybe a hundred little 12-line programs that illustrate everything from statistics to galilean laws of motion to PONG, and offer this “perfect turnkey download” for text publishers to link to. (BTW, did you know that TrueBasic http://www.truebasic.com/ is still being offered? I didn't know myself until 30 seconds ago. 40 bucks for the dumbed down version. Includes some demo programs, apparently. Sounds like no solution, alas.)
3) A small scale attempt worth noting: KidBASIC http://kidbasic.sourceforge.net/ appears to have been inspired by this article! It aims to be an easy to use version of BASIC designed to teach young children the basics of computer programming. It's a strictly line-oriented language, which helps kids easily see how program flow-control works. It has a built-in graphics mode which lets them draw pictures on screen in minutes, and a set of detailed, easy-to-follow tutorials that introduce programming concepts through fun exercises.