Tuesday, June 29, 2010

BASIC Training

I was intrigued by this recent tweet from Roger Ebert for an article entitled "Why Johnny can't code". The article, which was written by science fiction author David Brin almost four years ago, is disappointing. The entire article is built on the false assumption that there are no freely available line number BASIC interpreters available for modern personal computers. The author concludes that because of this, the kids of today will never learn how computers work and therefore, as a society, we've all but guaranteed our descent into a digital dark age.

A quick Google search invalidates the author's base assumption. He's correct in that most of today's programmers cut their programming teeth on BASIC (myself included), but to argue that it's the classical Greek or Latin of computer science is highly delusional.

Of course, even if computers came loaded with an interpreter for a modern BASIC-derived programming language he still wouldn't be happy because he's completely fixated on the original line numbered version of BASIC. He seems to think that line number BASIC is closer the actual machine code than other languages or BASIC dialects that omit line numbers while at the same time being the only language that is easy enough for a beginner to grasp. Line number basic is no closer or further from the metal than any other variant of BASIC. I don't think it's any easier to learn line number BASIC than a more modern dialect, and relying on line numbers leads to really bad programming habits and obscures a lot of the mathematical elegance that he talks about.

His dismissal of widely available modern scripting languages like Perl and Python is also confusing. He claims that they are too high-level to allow you to follow the logical flow of the program. If anything, languages like Python that provide an interactive shell are even easier to experiment with than BASIC since you can execute your program one line at a time and see exactly what is happening inside the computer.

I don't know if the world is headed for a shortage of computer programmers, but if it is, the availability (or perceived lack thereof) of line number BASIC interpreters on modern personal computers is neither the solution to nor the cause of this problem.