Beginner's All-purpose Symbolic Instruction Code.
The original BASIC language was DartmouthBasic
, invented by ThomasKurtz
around 1964. Its TeleType
-friendly editing approach is probably one of the biggest reasons for its long-standing success.
So BASIC apparently was intended for beginners. This raises the question, IsBasicEasy
10 PRINT "Enter a number, zero to stop:";
20 INPUT A
30 IF A = 0 THEN GOTO 70
40 LET A = A + 10
50 PRINT "The number plus 10 is "; A
60 GOTO 10
BASIC variants still popular today
Nostalgic BASIC variants that were once popular
- About 12 years ago, I was an intern at a software company that did add-ons to Peachtree, a popular accounting package. Development was done in (I think) QuickBasic (not VisualBasic), though I can't remember... given that I learned to program with AtariBasic, but hadn't touched basic for a long time, it was interesting...
- AppleSoft Basic
- GwBasic (what WikiName works for BASICA?)
- AtariBasic (not to be confused with StBasic? and GfaBasic? both on the AtariSt and later)
- STOS Basic (Atari)
- AMOS (Amiga)
The original SmalltalkSeventyTwo
implementation was written in BASIC, as BASIC was the only interactive computing system available to DanIngalls
at the time. "I'm not ashamed, I got it going quickly." - http://video.google.co.uk/videoplay?docid=2409496407757723940
"Most BASIC languages written for 8-bit microcomputers were variants of MicrosoftBasic
HA! Most 8 bit BASICs had nothing to do with Microsoft's "MBASIC." They were all quite independent. And incompatible with each other...
- Generally, the basic interpreters that came with the various 8-bit micros were developed by the companies that manufactured the computer (Apple, Atari, Commodore, etc.) MicrosoftBasic was a replacement BASIC.
Ignorance is bliss, I guess. But deadly to a convincing argument. CommodoreBasic
, however) were both produced by Microsoft. Commodore used Microsoft BASIC from the first release of the PETs, as far as Google is able to tell me. Atari opted not to use Microsoft BASIC on the basis that it'd require 2K more than they could fit in ROM (10K versus 8K; note that about 2K of the Commodore 64's Kernal ROM is dedicated to BASIC). It turns out Atari's BASIC was a closer match to DartmouthBasic
A basic BASIC interpreter (HaHa?
) is fairly trivial to implement: BasicEmulatorInJava
As I understand it, Bill Gates' original BASIC became Microsoft "MBASIC", which ran on 8-bit CP/M systems.
It was similar, in my opinion, with DEC "BASIC*PLUS", which ran under RSTS on PDP-11 systems (and possibly other platforms; I really wouldn't know).
It had competition on the 8-bit CP/M platform - CBASIC - which was a really nice pseudo-compiled language that did *NOT* require line numbers on every line.
Actually, it would be more accurate to say that most BASIC interpreters for 8-bit micros had at least some code from Microsoft. Even CommodoreBasic
; note the copyright screen from the Commodore 128 says "Copyright 1977 Microsoft."
That's not quite right either. It's just that Microsoft widely licensed its Basic. They charged $100k for a source code license circa 1980. If you saw a copyright notice like that, there's every reason to think that Commodore simply licensed MS Basic, not that they used "at least some code" from it.
Nope -- it is absolutely right.
In 1977, Commodore purchased an implementation of, and a royalty-free license to (re)use, BASIC from Microsoft, which Microsoft implemented as CBM BASIC 1.0. Subsequent versions were modifications, admittedly by Commodore, but the basic software was Microsoft's work. Compare the raw assembly listings of AppleBasic?
and you'll see a huge
amount of common overlap. Even the GETCHR routine, placed in zero-page memory (albeit at different locations, IIRC), is identical.
It's been said that the royalty-free licenses were the biggest financial mistake Microsoft has made back then. It's likely this "mistake" that has significantly influenced future corporate policies at Microsoft, making them into the mean-as-hell monster that it is today.
What exactly are you disagreeing with? I said "to think that Commodore simply licensed MS Basic", and you seem to be in vehement agreement.
As for the royalty-free issue, I disagree, but that would appear to be a matter of opinion.
Basic was designed as a LanguageForTeaching
, however, it was badly designed for that. PascalLanguage
and later OberonLanguage
, and SchemeLanguage
are good languages designed for teaching, since they implement important concepts and enforce good practices in programming.
Actually, OberonLanguage was not designed for teaching. Like Modula-2, it was designed to actually be used in a production environment. --SamuelFalvo?
However, Basic was very easy to implement (there is even dds, an entry to the 1990 InternationalObfuscatedCeeCodeContest
that implements a Basic interpreter in only 8 lines of C). Because of that, every microcomputer in the 80s came with Basic installed. This remained true until Macs and Windows appeared, since any programming library is difficult to implement for a windowing system and Basic would be the worst choice of language for it.
(Arguably false; what makes BASIC any less applicable to a GUI environment than, say, Scheme? Or C? Indeed, C is far and above the worst possible language to use, because the structure of the language is fundamentally opposed to how GUIs work. Meanwhile, with BASIC, you can add keywords to support the constructs (e.g., AmigaBasic? and GfaBasic?), making your life substantially easier. And, yet, C ended up the language of choice due, in large part, to fad. Remember, MacOS was written in PascalLanguage at first. If you want a language that's awesome to work with in a GUI context, I suspect you'll want none other than LispLanguage or SmalltalkLanguage, both of which existed at the time too, and had both demonstrated clear superiority over other languages for supporting GUI work. --SamuelFalvo?)
- I think I agree that Basic was actually a good choice; it was implementable in much less code than a full C implementation, and e.g. Commodore 64's had good integration of graphics and sound with Basic, such that doing simple animations was quite easy.
- I disagree with your comment about C, though; it wasn't "fad", it was that it was (and still is, today) a good language for *system* programming. Its use in application programming is more debatable, but for serious apps, for a long time its main competition was Pascal, which was loved by some but widely hated for good objective reasons -- the Pascal dialects that did not have those objective defects tended to have other issues that limited their adoption (e.g. availability on only one platform).
is a monster. It is the typical wrong thing that sells. No RealProgrammer
would program in VisualBasic
. It spreads like a cancer because of the sheer power of Microsoft. It is possible that CsharpLanguage
is a cure for it, but VisualBasic
has demonstrated a very long and unexpected life, when analysed from different quality perspectives.
Why is TurboBasic
not mentioned as actually in use (I think it's Borland's [I just went through the TurboPascal
page, I know the same firm had a Pascal compiler too, and also one for C I believe]). Compiled Basic really isn't demoded! I did learn to program on a Commodore 64. So BASIC is at my programming roots. -- PieterJansegers
"HELLO WORLD", 10 PRINTS
GOTO 10, 20 DOES
Amazing how much "Yoda-Basic" looks like Forth...
May the Forth be with you. -t
Indeed, to see just how extensively distributed Microsoft's BASIC became for the 8-bit community, just look at this article:
Non IT co-worker: "Your code there must be for morons. It's fall of DIM, SUB, as in sub-human, and STRING, like string and chicken-wire. I bet there's a DUCT TAPE command in there also. It even has to beg: "LET"."
Moved discussion about a new tool's scripting language to BasicLikeGlueLanguage