Possible Duplicate:
Do you think that exposure to BASIC can mutilate your mind?

BASIC, and related dialects, have long been branded "bad". I've seen it said by some of the best programmers I know, professors at Stanford, and even one of the most brilliant computer scientists:

It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration - Edsger W. Dijkstra

Now, I think that quote may have been taken slightly out of context, and was meant to be something of an exaggeration, but at the same time, anyone who says something along those lines clearly does not like BASIC.

When I started programming a while back, I started with BASIC and I don't consider myself a bad programmer, and I know of many good programmers who also started with BASIC.

Now, the obvious reason for dislike is that it teaches bad habits, skills, and methodologies. I'm just wondering why people say that, and if it's even correct to say that.

In my opinion, any programmer who is bounded by their language is a bad programmer, and that even if BASIC was somehow the boogeyman everyone made it out to be, it still shouldn't significantly hamper someone's "programming life".

tl;dr - Why do people consider BASIC a bad programming language (especially for beginners) and why do people say it teaches bad skills? What is the "mental mutilation" that Dijkstra speaks of?


1 Answer 1


To be accurate, you need to qualify bad with an a specific application and also which version of BASIC. Today's MS VB.NET is not bad for learning OO or for creating business applications for the web and for the desktop. Microsoft still uses VBA for automation of its Office line of products and thousands of macros are running on it every day.

In the 80s, BASIC lacked pointers (which was a big thing for C developers), had line numbers (which to some was considered ugly) and had a GOTO (some implemenations did not allow IF/ELSE nesting so GOTO was very important) also Error handling was not cool (ON ERROR GOTO).

Also, at those days, BASIC was not OO. As far as I can remember, in the old days, BASIC did not have a way to access databases and only used Sequential and Random Files (Random Files,uses numeric keys only).

The above issues together with the fact that on the old days C and UNIX were the coolest couple in the block might have contributed to the image of BASIC. Nevertheless BASIC was popular to a great extent. Lots of games and business applications were written in BASIC and countless books were published about its different dialects. So it can't be too bad :)

  • 1
    A spontaneous question that comes to my mind is: why is it still called BASIC if it has become so different?
    – Giorgio
    Jan 1, 2012 at 21:35
  • 1
    It was even worse: it didn't have structural programming facilities. IIRC in C64 BASIC there was no if/begin/end, only if...goto. There were no functions/procedures, only gosub (which didn't have any way to pass arguments). Lack of OO wasn't that significant.
    – liori
    Jan 2, 2012 at 18:03
  • @Giorgio: While a VB.NET port of a program written in 1960s-era BASIC would be rather unpleasant, one could without too much difficulty have converted it to most versions BASIC that appeared up until the one preceding VB.NET (Visual Basic 6, often called VB6); such a program would be "poorly-written" by VB6 standards, but it would not be hard to make it work. VB.NET loses all but two of the control structures from 1960s BASIC, since by the time it came out better structures were available and almost all code used them.
    – supercat
    Oct 23, 2014 at 19:25

Not the answer you're looking for? Browse other questions tagged or ask your own question.