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
- MicroSoft VisualBasic
- MicroSoft VisualBasicDotNet
- Chipmunk Basic http://www.nicholson.com/rhn/basic/ (has links to many, many other Basic variants - some of them run on PalmOS)
- http://allbasiccode.com/ (seems to have a lot of free source code)
- DataBASIC (Acronyms may vary) is currently used in a group of database systems called Post Relational or Multi value. Lots of commercial software running and still being developed in this BASIC variant.
- BlitzBasic and DarkBasic?, focussing on game programming
- Emergence BASIC (http://www.ionicwind.com) - Modern BASIC compiler supports procedural and OOP programming.
- Creative BASIC (http://www.ionicwind.com) - A language that is suited for beginners.
- PowerBasic (http://www.powerbasic.com/products/)
- Liberty BASIC (http://www.libertybasic.com/) - Popular in schools and with hobbyists
- PureBasic? (http://www.purebasic.com/)
- DarkBasic? (http://darkbasic.thegamecreators.com/)
- TrueBasic (http://www.truebasic.com/) - Created by Kemeny and Kurtz (creators of the original Dartmouth BASIC) after they saw how BASIC had been mutilated in most microcomputer implementations. Includes StructuredProgramming features like functions, subroutines, and loops.
- FreeBasic, from the GnuProject
- Microsoft QuickBasic
- Microsoft Professional Basic is a complete Basic development system with all the features of high level language development system like overlay, library, real time kernel, etc. The ultimate version 7.1 was nearly bug free. It is still used in real time application because it is very fast and easy to maintain.
- Gambas "Almost Means BASIC" for GNU/Linux (http://gambas.sourceforge.net/) Gambas is a free development environment based on a Basic interpreter with object extensions, a bit like Visual Basic™ (but it is NOT a clone !).
- TI Basic for Texas Instrument's line of graphing calculators.
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?) BasicAyy?, or FonzieBasic?
- 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
Actually here is an article on implementing BASIC using Java - http://www.javaworld.com/article/2076921/learn-java/how-to-build-an-interpreter-in-java--part-1--the-basics.html
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?)
Commodore 64 Basic was acutally widely criticized for the lack of built-in graphics and sound commands (you had to program VIC and SID registers directly with binary using PEEK and POKE commands). On the contrary, ZX Spectrum and Atari Basics where quite capable in this respect.
- 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
was actully written by Robert Zale who reacquired the license for the product and sold it rebranded as PowerBASIC. http://www.powerbasic.com/aboutpb.asp
--- George W. Bleck
"HELLO WORLD", 10 PRINTS
GOTO 10, 20 DOES
Human-BASIC for comparison:
10 PRINT "HELLO WORLD"
20 GOTO 10
. . . . . . .
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