Letters posted here are associated with the following article:
The letters thread is now closed.
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.
Thanks, Detroit's Black Helicopter, you've illustrated the point well. In your VB example, what is wscript? What's does the construct wscript.echo do? I'm a generation older than the writer (close to 50) but I was taught Pascal in college. The problem with starting with a OO language like VB is the lack of transparency. Yeah, I know, what's the difference between a function call and a method call? Well, if you have to ask that, why are you programming in an OO language?
I've been disturbed by what passes for programming these days. Take a look at any web page source - what is this? Its not programming - clearly no one person typed all of this...crap in! Its all cut and paste. I believe that the web is destroying programming more than anything.
So on one side, things look so complicated that its hard to understand what's going on under the covers but on the other you have companies trying to sell their products as no programming needed (sheesh, try making Access do anything useful!).
I find it distressing that big business (ie M$) is trying to sell programming as a process akin to manufacturing (and one that can be done better by a cheap off shore company) rather than the often creative process that it is.
The author implies that BASIC is an integral layer that lives between assembly and higher-level languages; in fact it's an evolutionary dead-end. A student learning BASIC would have to learn concepts such as line numbering and GOTO statements which are not only deprecated today, but are "considered harmful" and produce brittle, unwieldy code.
Basic isn't available anymore? Cry me a river. Rather than saddling the poor kid with C++ or dragging him back to the stone age with an Apple II, hook him up with a $15 a month hosting account and a PHP book. No, it won't be the same way that you learned but people (including kids) who have an interest programming will take whatever route is available to them.
While I agree with the essence of your article - that understanding the 'bits that wiggle' is important (as my first manager post-graduation described it) I don't understand why it has to be basic.
Is it only because 'old' books have basic examples (implying there are no/few examples in other languages)? Or the simplicity of typing on a terminal, typing 'run' and seeing the results? Or because basic is pseudo assembler like, with its 'goto' control flow?
It's interesting you mention Python, albeit discarding it summarily. Personal experience has shown it to be very well suited as a teaching / introduction / exploration language.
[An aside: My wife is a teacher, and through her I got chatting to the computer science teachers. They were having problems introducing students to programming: someone had decided that C# in visual studio was the way to go. Perhaps unsurprisingly this wasn't working well. I suggested they try python instead - the language was, after all, designed for teaching. The feedback was this proved very successful; running the interpreter provides the immediacy you mention above with the same level of learning curve. The language was both accessible and powerful enough to support all levels of ability (the brighter students moved into 3D courtesy of Visual Python).]
So I'm interested in knowing, why Basic specifically?