Letters to the Editor
-
While I agree...
While I agree with the author's premise, the real point isn't just the ease of BASIC as an entry point, a "gateway" programming language, it's harnessing the simple, operational concepts of low-level development that's important. There is a belief out there that all comp sci students, or the non-academe as well, should study Assembly language. Are web developers writing byte code or operating systems? No. But learning efficient programming techniques and memory and resource management makes you an even more effective programmer.
I also have to ask: What about finding BASIC through LOGO (remember making the turtle move?) or using product's like LEGO's Mindstorm?
-
Rlogo
I agree with many things Mr Brin is saying.
My solution was to teach my kid rlogo using this site:
http://embry.epcs.com/rLogo/
-
Emulators
¿Didn't you think about C64 Emus for MAC / PC?
-
The future is bright, but we aren't there yet
Perhaps writing science fiction for too long has led Brin to expect that the future is predictable. The reason 'we' can't see a great wave of technological empowerment that will come out of the new technology is that it isn't here yet. Those sorts of things are only ever obvious in hindsight.
Personally, I'd be far happier for a child of mine to learn programming using an environment like StarLogo, which would teach make them familiar with the fundamental mathematics behind computing - turtles aside logo was actually a fairly powerful Lisp dialect. On the other hand there are more important things that computing, the abstract thinking that reading teaches, the discipline that learning music teaches, the team work that sports teach.
Finally, I'm rather suprised that Brin didn't realise that the easiest way to get a C64 would be to download one of the many open source C64 emulators.
-
Why Johnny can't build a crystal set radio
Is because we don't use those any more. Johnny can go to Target and buy a radio imported from China for a couple of dollars. It's not interesting.
Before this particular writer was coding in BASIC, his father might have been building a radio out of the pages of Popular Mechanics, and getting his HAM license. And his father before that was building an airplane out of the pieces of a chicken coop. And his father before that was... you get the idea.
Kids in any generation who have a bent toward building things and geekiness will use whatever is at hand to expand their understanding of it. They do this naturally. Give a kid a screwdriver, and you'll have whatever it is in pieces all over the floor. If you're lucky, Johnny just might figure out what the pieces are for and put it back together again.
Many posters have pointed out good reasons why BASIC is obsolete. Let him use the tools that are here today, relevant today (a lot of excellent suggestions for HTML and Javascript), and let him fly. Don't lament that the tools the previous generation learned on aren't available any more. He'll surprise you with the results.
-
Horowitz & Hill?
There's a great lab manual that goes with the classic introduction to Electronics by Horowitz and Hill.
Over a series of lab projects you build a small computer more or less from scratch. The "final" is to program your computer in machine language (motorola 6800) to do something useful.
You more or less learn exactly how a computer works.
After you finish, move to a higher level language like python. You'll appreciate it's sophistication but you'll understand how it all works underneath.
-
I agree with the author
The author's article brought back memories of my early tinkering with the various programming languages.
To tell the truth, I never liked BASIC. That is not important. What's important is exactly what the author
is talking about:Having his son learn the rudiments of programming while stepping through a language. The other key point
is not having to load a GUI and learn what all the menus are. Sit down and write code. Fun. Learn. Period.
I also used BASIC on my Commodore 64 to work out the mathematics before I committed the code to punch cards in my FORTRAN class.
As a programming language I can't stand it. As a pedagogical tool for young people it's excellent.
Truth be told I'm an embedded systems programmer who also writes apps in C#. I know colleges are now teaching Java and/or C#
as first programming courses and I feel that's a wrong way to go. Object-Oriented software is cool. However if you have no
context for why it's cool you'll never get it. When you have to struggle with organizing and packaging C code into larger
meaningful units you can appreciate the beauty of OO. You can also write clean and efficielnt code.
Some of the commentators decry BASIC's GOTO statement and how it leads to spaghetti code. Precisely the point. The admonition
to never use a GOTO in procedural languages makes no sense unitl you've used a GOTO and debugged your code. Context is everything.
(To the author: I still have my Motorola 6800 trainer that I bought and built from Heathkit and used to teach myself the rudiments
of programming. I've been looking for a good home for it for nearly 25 years. I have all the original manuals as well).
-
JavaScript BASIC interpreters
I agree with various letters that BASIC is a terrible language to learn programming from, and no one should be encouraged to do so. But trying out a 5-line math algorithm isn't really "programming," and command-line interpreted BASIC allows a student to get an initial exposure to algorithms with essentially no training. I'm sure some will say that this will poison the student's mind. Actually math algorithms in books are rarely "structured" like a modern computer language but are full of "if a < b, then go to step 7." Look at the classic in the field, Knuth's Art of Computer Programming, for example. BASIC often can let the student see clearly the relationship between the book's algorithm and the code, which might be obscured with a structured, object-oriented language.
There are simple BASIC interpreters written in JavaScript which you can run in your browser, for simple "Try this in BASIC" problems in textbooks. I don't endorse any specific one, but the first Google hit was http://www.eder.us/projects/jbasic/ and there are probably others. No downloads, no installation - just go to the site and start typing!
