Letters posted here are associated with the following article:
The letters thread is now closed.
OMG, already over 200 posts. Well maybe someone will see this.
*sigh*
I earned my bachelor's degree in math with a minor in computer science in 1998.
In one of the CS classes I took, we studied assembler coding. We had an assignment to write a small piece of code in assembler. We were given multiple options of assembler compilers to use.
And we couldn't get a single one to work. NASM, TASM, I don't remember what else. And none of them worked. The instructor had to cancel the assignment, because we couldn't compile our code to test it.
I managed to come up with a copy of MASM, MicroSoft's assembler compiler. I was able to get it to work, and was therefore one of 3 students who completed the assignment successfully. But it wasn't a commercially available compiler, it was one I "borrowed" from a classmate. In other words, 8 years ago, actual CS students in college didn't have access to low-level coding tools.
After graduation, I went to work for a software company. Our two main goals with any new release were: 1) that the install worked properly; and 2) that we didn't break any old features that had worked previously. New features that worked properly were a plus, but not required.
I taught myself BASIC programming in high school in the 70s. Those people just aren't graduating from college these days.
Dear Sir/Madam,
I thoroughly enjoyed reading this article. As someone who teaches programming at university, I was sad to find out that most top UK institutions begin by teaching students Java. Java has its merits. But it is an awfully large and complex beast for someone who has never programmed to master.
Most students are confused for ages and flounder. Languages like BASIC or Pascal where designed for teaching programming. Java was not. Nor was C or C++. Scheme or Haskell are already better choices to start with, although they already have powerful forms of abstractions, losing the connection to what the computer actually does. Most CS courses don't even seem to offer assembly courses any more.
I hope that articles like yours will be seen by both educators and operating system vendors. The beauty of systems like Linux/BSD/OSX is that they come with compilers for free, that are easy to install. It might not be BASIC, but at least you have the tools to start with something.
Best Regards,
Damian Dimmich
Canterbury, Kent.
I loved this article. I could relate to so many aspects of it.
I learned to program using BASIC when I was 14 -- back in 1977 - when my dad, an engineer at Hewlett Packard in Rancho Bernard (CA) would bring home a terminal with an accoustic coupler. I would connect to the HP 2000 at the main office, and play "Adventure" -- the first text adventure game (created by Will Crowthers).
Shortly therafter, I discovered a book by David Ahl (still available on Ebay) called "101 Basic Computer Games" and I was off and programming in days! I started programming my own text adventure games. I even programmed a poetry program that wrote one of my favorite (albeit random) poems called "Our Fresh Death" (second only to another poem it wrote called "A Dirty Life"). I recently found these in a box in the garage and read them to my wife, and we had a good laugh!
ANYWAY, I wanted to write and say that I found and downloaded a version of QBasic that runs on windows XP. Here's how to do it . . .
• Go to: http://www.geocities.com/area51/5967/qbasic.html and download QBasic (Olddos.exe)
• Create a C:\qbasic folder
• Copy the file into that folder
• Run it – and extract the files.
• Once the files are extracted, you can run the QBASIC.EXE file and it will run!
David Brin's analogy of working on cars is well taken -- how many of us can fiddle around with the computer-controlled components under our cars' hoods anymore? It's not like the old days of fiddling with my mustang's carb using a screwdriver . . . Object-Oriented languages and .NET has come a long way -- but there still should be an exciting a fun way for kids to get into programming . . .
I guess I'll show QBasic to my son this weekend -- but he'll probably consider it strangly simplistic, shrug, and instead log back into World of Warcraft. My hat is off to David Brin's son for enjoying the simplistic-yet-fascinating world of programming in BASIC!
- Paul Wade (San Diego, Calif.)
1). Try JustBASIC. It is a free download, and they have an active message forum. It puts me in mind of what QuickBASIC would have become in a Windows world.
2). It'll cost a bit, but investigate the Parallax BASIC Stamp. There are arguably better implementations of the concept, but not as widespread or popular, and it will fit the bill both for learning a BASIC dialect, and getting close to the metal. You can pick up a starter kit at Radio-Shack (#276-625) for eighty bucks.
I think that while some of what you say is true, you are missing some of the other interpreted languages that are available.
Mac OS comes be default with Perl. A very easy to learn interpreted language. Windows users can install ActiveState Perl.
Many young web developers are getting their start with PHP.
This is another easy to use interpreted language.
While I admit that BASIC was my first language and where I learned to code as a kid, I think their are alternatives for the interested and initiated. Maybe the text books should replace Basic with Perl....maybe.
I also grew up with BASIC but bringing it back would be a mistake. People no longer write code that runs line-by-line; they work with objects, functions, subroutines, data structures, and so on. BASIC programmers eventually have to unlearn everything they know, and shed themselves of GOTOs and line numbers. It just doesn't make sense anymore.
How about an alternative: Every computer comes with a web browser and a text editor, allowing anyone to write some simple HTML and Javascript. Why not use the web browser? Javascript is a fairly full-featured language that even allows you to do math and display results, and its syntax is enough like C, C++ and Perl to be a good enough language for beginners.