A few years back, the University of Chicago hosted a great event. Students organized several day of panels and discussions, with luminaries in many fields coming to discuss the issues of the day. On a panel about technology, a friend of mine asked whether the panelists were worried that more people from our generation weren’t involved in hardware, soldering whatzits and making hobby computers.
One panelist (the only person on the panel that I remember was Bruce Perens, and it wasn’t him) said that he had learned to fix the carburetor on his ancient pickup back in the Stone Age, and he was entirely glad that his children didn’t have to do the same. Things are easier now, and that’s a good thing.
This piece about a father’s bizarre quest for a BASIC interpreter would obviously disagree, and it is deeply wrong-thinking. The motives are sound, at least:
For three years — ever since my son Ben was in fifth grade — he and I have engaged in a quixotic but determined quest: We’ve searched for a simple and straightforward way to get the introductory programming language BASIC to run on either my Mac or my PC.
Why on Earth would we want to do that, in an era of glossy animation-rendering engines, game-design ogres and sophisticated avatar worlds? Because if you want to give young students a grounding in how computers actually work, there’s still nothing better than a little experience at line-by-line programming.
Yes. Good. Learn to program. But not on BASIC. It encourages bad programming style and inefficient ways of thinking about program flow. In 1995, a computing great wrote that BASIC’s main mechanism for controling program flow “goto” should be “considered harmful.” Why inflict that on a child?
The idea that there’s some programming language about which it can be said “nothing even remotely like [whatever] can be done with any language other than BASIC” is absolutely laughable. The freakish constructions that Mark shows off on Fridays are all as capable as any other language. Pascal was designed as a teaching language, use that. The author just embarrasses himself by writing: “The ‘scripting’ languages that serve as entry-level tools for today’s aspiring programmers — like Perl and Python — don’t make this experience accessible to students in the same way. BASIC was close enough to the algorithm that you could actually follow the reasoning of the machine as it made choices and followed logical pathways.”
It’s true that more advanced languages make certain things easier. Perl gives a lot of ways to avoid repetitive, mind-numbing busywork. But the Perl motto is “There’s more than one way to do it.” If you want to write out a program that does everything the hard way, you can.