As one who was writing BASIC interpreters from 1973 through 1986, I can positively affirm that indeed it is short for DIMension. Just like REM is short for REMark. (I think that's still allowed even in VB
.NET, for compatibility with ancient history.)
The original Dartmouth BASIC (yes, that's where the language came from...and did you know BASIC is an acronym? Beginner's All-purpose Symbolic Instruction Code. Want to bet that the name came before the acronym? I'll take the bet and give you odds) allowed only two kinds of names: A,B,C,A1,A2,...A9,B1,B2,...B9,...Z9 were all numbers. No distinction between integers and floating point. All math was done in floating point. And then A$,B$, C$, A1$,...Z9$ were all strings. You never had to DIM a standard variable (not even sure it was legal) because the name of course implied the type. You only used DIM to create arrays, and hence you declared the DIMension
of the array.
As late as the 1980s, this kind of syntax was still the standard. The variable name implied the data type. By then, most BASICs had extended the names to many characters and the number of data types by adding different extensions. e.g., Value#
was a floating point number, Index%
was an integer, etc. I dunno if Visual BASIC [and yes, BASIC should always be capitalized, since it is (hah!) an acronym] was the first to start allowing DIM to specify a data type, as opposed to just an array size, or not. But certainly VB
is the language that made this usage of DIM the standard.
p.s.: Yep, I just checked in Visual Studio and not only is REM
still accepted as equivalent to the ' for starting a comment, it's even recognized as soon as you type REM by turning to the comment coloring. (Note that if you use it on the end of a line, you have to precede it with a colon, as in
Dim foo As Integer : REM counts how many widgets we have
Now...anybody want a history of how strings were DIMensioned and the two rival factions and who won? <grin/>
p.p.s.: And who needs Wikipedia when you have a living fossil sitting right here? <grin style="sheepish" />