Basic Language

Beginner's All-purpose Symbolic Instruction Code.

The original BASIC language was Dartmouth Basic, invented by Thomas Kurtz and John Kemeny around 1964. Its Tele Type-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, Is Basic Easy?

PRINT "Enter a number, zero to stop:";

INPUT A

IF A = 0 THEN GOTO 70

LET A = A + 10

PRINT "The number plus 10 is "; A

GOTO 10

STOP


BASIC variants still popular today

Chipmunk Basic www.nicholson.com (has links to many, many other Basic variants - some of them run on PalmOS)

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.

These Multi Value basics are descendants of Pick Basic,

Blitz Basic and Dark Basic, focussing on game programming

Emergence BASIC (www.ionicwind.com ) - Modern BASIC compiler supports procedural and OOP programming.

Creative BASIC (www.ionicwind.com ) - A language that is suited for beginners.

PowerBasic (www.powerbasic.com )

Liberty BASIC (www.libertybasic.com ) - Popular in schools and with hobbyists

True Basic (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 Structured Programming features like functions, subroutines, and loops.

Microsoft Quick Basic

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 (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.

Online Apple-BASIC emulator, in Java Script (www.calormen.com )


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) Quick Basic (not Visual Basic), though I can't remember... given that I learned to program with Atari Basic, but hadn't touched basic for a long time, it was interesting...

Apple Soft Basic

Gw Basic (what WikiName works for BASICA?) Basic Ayy, or Fonzie Basic

Atari Basic (not to be confused with St Basic and Gfa Basic both on the Atari St and later)

STOS Basic (Atari)

AMOS (Amiga)


The original Smalltalk Seventy Two implementation was written in BASIC, as BASIC was the only interactive computing system available to Dan Ingalls at the time. "I'm not ashamed, I got it going quickly." - video.google.co.uk


"Most BASIC languages written for 8-bit microcomputers were variants of Microsoft Basic."

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.) Microsoft Basic was a replacement BASIC.

Ignorance is bliss, I guess. But deadly to a convincing argument. Commodore Basic and Apple Basic (not Integer Basic, 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 Dartmouth Basic anyway.


A basic BASIC interpreter (Ha Ha) is fairly trivial to implement: Basic Emulator In Java

Actually here is an article on implementing BASIC using Java - www.javaworld.com


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 Commodore Basic; 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 Apple Basic against Commodore Basic 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 Language For Teaching, however, it was badly designed for that. Pascal Language and later Oberon Language, and Scheme Language are good languages designed for teaching, since they implement important concepts and enforce good practices in programming.

Actually, Oberon Language was not designed for teaching. Like Modula-2, it was designed to actually be used in a production environment. --Samuel Falvo

However, Basic was very easy to implement (there is even dds, an entry to the 1990 International Obfuscated Cee Code Contest 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., Amiga Basic and Gfa Basic), 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 Pascal Language 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 Lisp Language or Smalltalk Language, both of which existed at the time too, and had both demonstrated clear superiority over other languages for supporting GUI work. --Samuel Falvo)

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.

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 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).

Visual Basic is a monster. It is the typical wrong thing that sells. No Real Programmer would program in Visual Basic. It spreads like a cancer because of the sheer power of Microsoft. It is possible that Csharp Language is a cure for it, but Visual Basic has demonstrated a very long and unexpected life, when analysed from different quality perspectives.


Why is Turbo Basic not mentioned as actually in use (I think it's Borland's [I just went through the Turbo Pascal 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. -- Pieter Jansegers

Turbo Basic was actully written by Robert Zale who reacquired the license for the product and sold it rebranded as PowerBASIC. www.powerbasic.com --- George W. Bleck


Yoda-BASIC:

"HELLO WORLD", 10 PRINTS GOTO 10, 20 DOES

Human-BASIC for comparison:

PRINT "HELLO WORLD"

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 Basic Like Glue Language


See original on c2.com