Letters posted here are associated with the following article:
The letters thread is now closed.
What's wrong with TI-BASIC on calculators? Texas Instruments are the standard graphing calculators used in most schools, and its version of BASIC is simple to grasp and reasonably effective for math applications. Plus, it comes on a machine a teenager has a decent chance of using again.
And to all those who praised BASIC's ability to interact with the underpinnings of the operating system with PEEK's and POKES, I would like to point out the "/proc" filesysem on Linux:
echo "parameter" > /proc/thing/I/want/to/change
Lets you tinker with the underpinnings of just about any part of the operating system. And you don't even have to resort to a book to figure out what memory address to POKE to.
David, I love your Science Fiction, your writings on privacy, your understanding of how technology affects humanity in so many subtle and unsubtle ways, but....
I think you had some fairly large blinders on when you wrote this article. Or didn't put enough effort into coming up with arguments that would convince your likely target audience.
Mark
Maybe some of the BASIC-bashing comes across as snootiness, but the venom just comes from having lived with it, and then having tried something better. I'm just trying to spare other people the pain is all.
Some people think that while BASIC might not be a good thing for a pro, it's still good to start with. I disagree--some commenters here ascribe good qualities to it, but those exist elsewhere just as much, or more:
1. "It's simple, and doesn't require compiling." First of all, BASIC as I learned it (GW-BASIC) wasn't really all that simple. PEEK, POKE, CALL, and GOTO are like chainsaws, except not as useful. In other words, BASIC has some sharp points lurking in it that really aren't helpful from a learning perspective.
When you're starting out, you don't have to use those, of course, but the same is true for other languages: when you're starting out, you use a small, simple subset of them. BASIC is "limited", but that's not the same thing as "simple"; a language like Python is simple and pretty easy to start with (you can do line-by-line programming in it just fine, you don't have to compile it, and I'd say the basics are easier than they are in BASIC). With Python, though, it's easier to move on to more interesting things.
2. "It was universally available." Today, the internet is about as available, and through the internet you can very easily get all kinds of good programming tools. Google is your friend; search for "python", click on the "download" link, click on the "Windows Installer" link, or on the "Python for Macintosh OS X" link if that's your thing. You do have to consciously choose to do it, but if that's the barrier for you, then you've got bigger problems than learning to program. DrScheme is about as easy to install. There was a time when getting this stuff was hard, but those days are gone for good.
You shouldn't need a "computer expert" to tell you where to download Python; once you've got the recommendation (one of the first ones to show up here, and I'm sure Dr. Brin has heard it a hundred times) it's extremely easy to do.
3. "Other languages are arcane." Here's some Python:
>>> print 1 + 1
2
>>> message="Hello world!"
>>> print message
Hello world!
Clearly, we're talking advanced computer-fu here. Scheme is slightly stranger to look at, but if you can get over the syntax it's very simple (if you've ever used RPN on a calculator you're halfway there). If you can't handle it, you're probably old ;-)
Seriously, though, I think a lot of people here underestimate how easily kids learn. This means two things: first, today's languages really aren't that hard for kids to pick up, and second, many people here with fond memories of BASIC acquired them when they were young. BASIC wasn't really that great, honest; you were just that good at learning.
4. "It was the only game in town for beginners" --or words to that effect. This meant that it could be added to math textbooks. This is true, as far as it goes. The explosion in software means that there are a lot more options now. Several of those would work well in a textbook context, if the textbooks were kept reasonably up-to-date.
One thing that's not going away any time soon, though, is the rate of change in software. That change is the real rub between a math textbook and a programming tool. And the speed of change in software is mostly a good and necessary thing. If you really want programming in your math curriculum, perhaps it could be included in a small supplemental paperback or on a web page. Putting it in a book that has to last for a while is not a good idea, though.
A one line Google search for "basic compiler os x" yields a page of links, here is the first:
http://www.nicholson.com/rhn/basic/
"Ron's BASIC Programming and Chipmunk Basic Home Page"
And it's free
And there are more Basic implementations, for Mac OS, OS X, Windows, Linux, DOS, you name it. The free ones are probably just fine for getting started.
What a silly article, and what blathering about it.
Jeffrey Harris
Man, this article hit home. I could not believe it when I saw the title; right away I knew exactly what it was going to be about as I have had these thoughts for so long. In the seventh grade at a private school, one of the parents wanted to teach a computer class. So he asked who was interested. I went to check it out and he said we would need to get a Commodore 64. I went home and told my dad, "We need a Commodore 64 for this computer class at school". It really didn't occur to me whether or not we should get one - the teacher said that is what we needed and that was good enough for me. Fortunately, my dad didn't even balk at this and he got me one. We programmed all sorts of things, from little algorithms all the way up to a database to track movies. We even played around with the 2D sprites (little graphics that you can move around the screen) and the built-in sounds that you could use to make music. Just letting us play around with that helped us learn logic. And I think doing that at that age is important. They say your brain is still forming, and I believe that doing these exercises while your brain is still developing prepares you better. Anyway, that lasted a couple years and I went to a public high school and didn't do too much with computers besides using my C64 here and there.
We had the C64 for a while (my dad was even using the C64 for writing things up for his work, and power fluctuations would sometimes make him lose what he was working on). Finally, relatives convinced him that it was just a "toy" and he needed to get a real computer. An IBM compatible PC. So we did. I remember turning it on and seeing the black screen with the C:\ prompt. I tried typing basic commands; of course nothing worked. My uncle finally got it through to me that the only thing I could do was change directories or run existing programs. I was anticipating that this much newer computer would be able to do so much more. So I wanted to see graphics. It was EGA (16 color) and actually another uncle thought that was overkill and we should have just gotten CGA (4 color). There was no builtin support for sprites and so I was not finding anything that animated like my C64. Fine, let's hear some sound. Oh, you can't do that without getting a sound card. By then I was getting pretty disillusioned with this PC concept. Since then I have never found the PC to be as inviting as my C64 that you could just turn on and program.
I went to college and learned FORTRAN and C++. Now I program in Visual Basic and Python and create web pages with ASP, link them to Oracle with packages/procedures in PL/SQL and create dynamic web pages that query the data and display the results using SVG that is updated without needing page refreshes using AJAX. But no matter what language I use, they all boil down to having : IF this THEN do that, DO this UNTIL that, etc. Sure you can make things object oriented and more elegant, but the fundamentals are still the same.
I don't know if I would have been as computer oriented without my experience with the Commodore 64 and I feel sorry that other kids don't get this type of exposure. I will always be grateful that that one parent decided to get some kids together and show us the world of BASIC on the Commodore 64.