Letters posted here are associated with the following article:
The letters thread is now closed.
If you check the following link you'll find a plethora of Apple II emulators for Mac OSX.
http://dmoz.org/Computers/Emulators/Apple/Apple_II/
Similar should be available on the Windows platform. Wouldn't these allow you to run BASIC software without buying old hardware?
I had the great fortune of first self-learning programming (in the early 80s) by playing around with simple programs. In my case the tools was HyperCard, whose HyperText language is very similar to BASIC. In fact HyperCard still runs on my Mac (OSX 10.3.9) under the Mac Classic emulator, even though the software is probably 12 years old now.
Thanks for the interesting article.
Tom
By now, I assume that I won't add anything new to this discussion, seeing already 256(!) replies.
The topic is actually one, I frequently rant over, when having a beer with my other aging geek friends.
As I see it, when we started with computers (mine was a TRS-80 Model I), we switched it on, and where ready to go. If it were python, we'd all learned that, but in that time, it was basic.
It got us directly attached with the underlying machine. 'peek'ing keyboard-values out of the memory-mapped IO, 'poke'ing characters into the memory-mapped screen, using in/out to access IO-Ports without the need to know how to open a device, or what the hell a viewport is.
So, if anybody would create a machine that boots into a python-interpreter, more power to them, and put lots of these things into the schools, so upcoming generations of programmers won't be completely ignorant of the underlying architecture of a computer, as it's quite common these days.
As someone who wrote his first program in BASIC, I feel David Brin's pain, but it's more nostalgia than anything else. The fact is, BASIC was a really awful programming language. Today's languages are far, far better, and several of them CAN be simple and easy-to-learn -- at least easy-to-learn to do some very simple stuff you would expect kids learning BASIC in the old days to be doing. Plus they have the added benefit that you're getting your feet wet with something that can be stretched and scaled to something really useful the more you continue to learn about it.
Try Java. Try PHP. Both can be as simple and easy to use as BASIC if you stick to the basic (no pun intended) elements and don't get too fancy.
What is needed is not a return to BASIC, but a kid-oriented stripped down set of instructions for existing code books that, instead of overwhelming the reader with all the possibilities of the code, gets a newbie set up with half a dozen simple programs and instructions for doing some very basic things.
Somebody should write a "PHP for Kids" book. Or if somebody already has, would they please send David a copy?
Steve Bolhafner
There is a way for kids -- or interested adults -- to get this kind of entry-level exposure to programming. Check out Runtime Revolution. It's an x-talk scripting environment that allows the user to create applications (complete with nice-looking GUI elements) of their own with a scripting language that is quite intuitive. Project development can be very rapid, as you can script and test and re-script and re-test very easily in an integrated development environment. A simple app can be created in a few minutes, even by a newbie, and very complex apps that manipulate text, databases, images, sounds, and movies are possible for more sophisticated users. A growing number of professional programmers are using it to develop solutions commercially.
Even an interested amateur like me can do amazing things: I have developed an app that allows me to track patients and their medications, write prescriptions, enter and print a formatted note, etc. -- a click of a button and I can open a pre-formatted letter template addressed to the patient, export the current meds list, check drug interactions, view past meds prescribed, check a website for a formulary list, count the number of patients currently on a particular medication and so forth.
Revolution is available for the Mac OSX and for Windows and Linux.
Note: I have no ties with Revolution and own no stock -- I have no axe to grind. I'm just an enthusiastic user. More people should know about this.
Maybe robotics is not on the radar screen in some places, but US First Robotics; http://www.usfirst.org/ is big with 28,000 High School participants this year and is growing fast. US First is sponsored by NASA, many top-notch engineering universities and fortune 100 companies, and 45,000 mentors and volunteers.
These kids design, build, program, and control a 120 pound robot to participate in a new game each year that utilizes real engineering principles and challenges. And as in the real engineering world where there are more skill sets needed than just designing and building things. The First challenge also includes web and animation competitions, and has major awards for team professionalism, spirit, and outreach activities.
I work with a local robotics club for middle and high school kids who participate in the US First Robotics and Lego Mindstorm competitions, and I am constantly amazed by what they accomplish. Pining for a world of basic line programming seems silly when these kids are packing their computing skills, our programming skills, and our dad's mechanical skills into a bag of tools and accomplishing things undreamed of just 10 years ago. They are literally leaping from our shoulders into the future, we needn't worry.
I also taught myself programming in BASIC. On a TTY in the UCSC computer room, when I was in high school. From there I used it on Trash-80s, Comodore PETs, and then didn't use it again until after I graduated college, where several of my first professional programming projects were in BASIC.
When compiler time and memory were expensive, a tokenized BASIC was a reasonable solution to allow programming in resource limited environments. In many ways JAVA is the BASIC of the 1990's.
I didn't really learn to program until I wrote some assembly language programs. Lately, I've become quite enamored of the ARM assembly language. It's a very pretty little instruction set. I may even like it better than PDP-11.
I don't think that BASIC is really any better than, or even as good as, a lot of modern options that are easily available. When I was in college I taught an introduction to progamming class, through the "experimental college" at UC Davis in Pascal, rather than BASIC, because I realized that PASCAL was as good of a language as BASIC for learning. These days, I'd suggest C (or C++) or JAVA rather than Pascal.