Programmers that know BASIC; are you embarrassed about that? Why?

I’ve noticed in a few threads about programming languages - most recently this one, that there seems to be a bit of embarrassment about admitting you know BASIC - it seems to come across as “Yeah, I did BASIC when I was younger, but I didn’t inhale” (or maybe “…but I didn’t use GOTO”).

So… Programmers who know BASIC; are you embarrassed to mention it? If so, why?

Hell no. I cut my teeth on MS Basic, and I’m proud of it.

I went on to learn COBOL, PASCAL and Modula-2, too.

I still use VB, but that is much more like Pascal than C++, and not much like the old QuickBasic. I don’t really know C or Java or C# - they have lots of shortcuts that are efficient but hide detail, and I prefer the clarity (which is why I like Python, which enforces block indentation via syntax).

No embarrassment here. Its a useful base to learn other languages from, and there are a lot of flavours of it floating around - several in active use.

And, yes, I used GOTO. There was no other way to create looping structures in the first version I encountered, so a lot of “do while” or for loops were created as Goto/If/Iteration combinations. (And now I feel really old).

edited for spelling

I think BASIC has had a bad rap due to its humble origins. Remember what the acronym stands for: Beginner’s All-purpose Symbolic Instruction Code. It was developed for engineer-types who wanted to get a computing job done, but didn’t want to become computer whizzes in order to run a small program.

The idea of computing the values of a complex curve by writing a 20-line program in the days when each line was a separate computer card was a pretty good idea.

It worked pretty well for that, but as programs grew, the limitations became more obvious. BASIC has matured a lot since then, but it has a history of allowing or even encouraging what are considered bad programming practices.

In contrast, Pascal was developed to teach good programming practices and force progammers into structure that was logical and well-organized.

I first learned programming in object code (no, not assembly, object code!), which is totally structureless. The logical upgrade was BASIC, but when I learned about structured programming concepts, I saw it was too lightweight to handle complex jobs that Pascal, C or other specialized languages did much better. I’m sure many others did the same thing.

I know it has a reputation for that, but I’m curious/dubious as to how much of that is rooted in fact - consider the GOTO thing, for example. The command, or a functional equivalent, exists in nearly all popular languages - even, I understand, in C++, but poor old BASIC seems to be the only language that regularly gets tarred and feathered over it.

Let’s see now:

10 Let i=1
20 Print “BASIC is a great programming language!”
30 Let i=i+2
40 IF i=10, GOTO 50 ELSE GOTO 20
50 END


Yep, the one thing BASIC did not have was a DUCK command :wink:


Well, when Dijkstra and Wirth complained about the GOTO, they were talking about FORTRAN, not BASIC. And their beef was not with the GOTO per se, it was with the low level of clarity that people used it with. A DO…WHILE or REPEAT…UNTIL makes it easy to see the terminating conditions.

The other issue with BASIC is that it was line edited and interpreted, so you could not use block structuring as later languages specified. This meant that you didn’t see the whole as a structure, and because you could address any line, people took short cuts.

Oh, and all variables are global, and types are defined by name (and poorly enforced).

It is not a good teaching language, but it got many people started. PASCAL is better as a teaching language. Even VisualBasic is better, as it is a very structured language with a high degree of clarity (that owes little to original BASIC). I don’t even think people should be taught C++/Java as a first programming language - they embody a lack of clarity that scares me sometimes.


Naw. It’s not like I’m a web programmer or something. :stuck_out_tongue:

It shows one’s age. Of course, I started life as an assembler programmer. (Wheezed the crotchety oldster thru toothless gums.)


I see no problem knowing basic. The people that can’t operate Windows are the same that couldn’t write a basic program. Not being able to write a Basic program, when you tried, is am embarrassment. I even wrote in machine language, and before that binary code to execute on the processor. The biggest pain I ever had was entering my first ML compiler in binary. After it worked you could modify and compile it.

LDA 1500,Y
STA 1500,Y

That multiplied a number by two, and it has it’s limitations, but it shows I still know it.

I taught myself Basic when I was 15. I got very good at it. I had for fun written a 5000 line text game program. I did not go into Programming as a career until I was 25. By that time, I had Fortran under my belt for Engineering. I had played with QBasic and VB a lot over the years.

Knowledge of Basic helped out a lot in learning Cobol & RPG. It still helps with VB scripting.


How’s that any different from

int i=1;
    System.out.println("Java is a great programming language!");
    i += 2;

An algorithmic error is nothing to do with the language.

There’s nothing better than BASIC for writing a dinky kludgy program that does some simple task. Just the other day, I was looking for some integer solutions to a[sup]2[/sup] + b[sup]2[/sup] + c[sup]2[/sup] = d[sup]2[/sup] (never mind why), and I was able to throw together a BASIC program to do what I wanted in a minute or two.

And the other other day, I wanted to take some spreadsheet data that I had save in comma-delimited text format and generate a simple report from it. Again, it was a matter of a couple of minutes to code a BASIC program to do what I wanted to do.

But then, I came of age in the era of home computers for which BASIC was the way of telling the computer what you wanted it to do.

I managed a playable game of Pongo in basic using one line of basic to run the game. The game board and sprites were all poked into place before the game ran the decision tree. I could never have changed it later, but by streamlining the logic it was fun to play verses to slow to play.

To begin my Computer Programming degree I took a class to learn Fortran 90. Why god, why?

I cut my teeth on Applesoft Basic, like a lot of other people. I still do a bit of programming and I mostly have the Basic to thank for the ease that I picked up more modern languages. Spending all that time as a kid hacking my way through code really made my life a lot easier down the line.

But here is what Dijkstra said about BASIC

Cite. I think I still have the SIGPLAN notices where that appeared squirreled away somewhere.

The real problem with GOTOs is that there unconstrained use can lead to disaster, and spaghetti code. The benefit of teaching programming using a language like Pascal is that you can forbid students from using the goto, thus forcing them to get used to structured programming methods before they can get freed to use it when necessary. Pascal doesn’t have a loop exit statement, and one of the questions on my oral was designed to show how the goto is sometimes necessary to make your code not so ugly in those circumstances.

When I TAed a PDP-11 assembly language class, the first assignment was a Pascal program. We zapped people who didn’t use structured methods. The goal was to have people design their assembly language code in structured blocks, so they’d have some hope of getting it right. It worked pretty well, and we let them drop the lowest grade so those who messed up could still do well. This was when structured programming was just beginning, so a special effort was required.

As for BASIC, I’m not ashamed I know it. I learned it from a book when I was reading any book on computers I could find in the library. I first used it when I visited my future wife at Dartmouth, where they used it a lot (it having been invented there.) I used it on my C64 also. I learned Fortran in class in high school, and used machine language there, so I had so unlearning to do when I first used Pascal. I was a much better programmer for it.

No, it got a bad rap because it’s a generally horribly inexpressive language that makes it difficult to structure your code, let alone build a reusable library of routines. At best, you’d have to constantly renumber everything. At worst, you’d have to change every single one of the variable names because classic microcomputer BASIC had no local variables.

All that said, I’m not ashamed to know BASIC. I’m not ashamed to know any language I know. It’s just that some languages I’m not going to use for anything because there are better options.

I picked up BASIC in early high school (self-taught, mostly). In late high school I started using VisualBasic, and thought I was quite good with it. When I got to college, I made the mistake of admitting that my first programming experience was with BASIC…the professor and most of the class couldn’t stop laughing. I managed to stay in computer science until I hit the assembly language course.

When I got into mechanical engineering, I ran into a few courses that required a program as part of an assignment; the professors there were quite impressed with my VB skills…for an automotive engineering class, for example, I made one program calculate stiffness matrices, and another to draw an involute curve based on values input by the user. (I had taken a Fortran 90/95 class soon after changing my major; it was incredibly easy, but wasn’t my first choice for completing those assignments.)