
Fifty Years of BASIC - srikar
http://time.com/69316/basic/
======
bjourne
Soapbox time!

Basic has a bad rep almost everywhere in the industry because it is
interpreted (yes there are compiled variants), case-insensitive, optional
brackets and doesn't lend itself to structured programming very well. But ask
any talented developer in his 30-40:s (yes we were almost all men!) how he got
started? Basic! QBasic, Commodore Basic, Amiga Basic (and Amos) etc.

Here is how you put a white pixel on the center of the screen in qbasic:

    
    
        SCREEN 13h
        PUTPIXEL 160, 100, 15
    

That's how easy it was and what got me hooked and I still remember it by heart
over 20 years later. I feel sorry for the kids starting out today with Java,
C# even Python and Ruby requires more knowledge to get stuff done than what
qbasic did. And you have to know about them and their packages, while qbasic
came with everything you needed preinstalled with the computer. Computer
programming is unquestionably much less beginner friendly today than it was
two decades ago.

And no, Javascript isn't the answer.

~~~
higherpurpose
What's your opinion on Scratch or similar kid-friendly languages?

~~~
dragonbonheur
No full screen - full resolution applications. As if MIT never thought beyond
320x200.

~~~
higherpurpose
Ok, but I didn't mean Scratch per se, rather the style of Scratch, and if it's
useful for learning. MIT has taken over Google's App Inventor for example, and
there are others like that.

[http://appinventor.mit.edu/explore/](http://appinventor.mit.edu/explore/)

------
valarauca1
>BASIC was first successfully used to run programs on the school’s General
Electric computer system 50 years ago this week–at 4 a.m. on May 1, 1964, to
be precise.

Sounds like the project deadline was May 1st. Glad software engineering hasn't
changed much in 50 years.

~~~
notacoward
The developers actually called it "April 31" because they were supposed to
ship in April.

------
Spearchucker
My favourite language. Started with a ZX Spectrum, then did GW BASIC at
school. My first job (1990) was maintaining Thoroughbred BASIC apps. Now using
Visual Basic for the biggest project I've ever worked on
([https://www.wittenburg.co.uk/Entry.aspx?id=0a505400-5bf6-4a6...](https://www.wittenburg.co.uk/Entry.aspx?id=0a505400-5bf6-4a6d-b107-6b4b797f33ae)
). In the years this project has been going I've written over 500 KLOC of
VB.NET code. The current desktop app (third re-write, only about halfway done)
clocks in at 40 KLOC of VB.NET code. No libraries. Just Visual Basic and the
.NET framework.

------
wprl
REPLs are great way to teach kids about coding. For me:

Applesoft BASIC (Apple ][e) -> Level I BASIC on TRS-80 -> FutureBASIC (Mac
68k)

Those are the BASICs I learned before moving on to Java, C#, then JavaScript.

FutureBASIC was really ahead of its time. You could drop into assembly, make
direct system calls, didn't need line numbers, it supported proper functions,
and it was event-based and somewhat asynchronous. For ~$300 it was a pretty
big deal for Mac users at the time. I think MPW was still several thousand
dollars and open source compilers were largely unavailable.

~~~
forinti
BBC Basic (from 1981) let you mix 6502 assembly in your code.

But you had to have line numbers and this caused me a bit of a headache when I
got to learn Pascal. Things just seemed to be floating around. Which is funny,
because Perl is now my weapon of choice.

~~~
antimagic
Ha! I'm glad I'm not the only one that found the lack of line numbers
disturbing (I also went from BASIC to Pascal). It just felt weird - mostly
because I hadn't yet got my head around not using GOTOs. Once I got how
functions worked though, there was no looking back.

There's a very good emulator of my original computer available online:
[http://compucolor.org/emu/ccemu.html](http://compucolor.org/emu/ccemu.html)

It boots you straight into the BASIC REPL. There are still games that I can
write from memory for that thing :D

------
VLM
On a slight side tangent a discussion of related old fads in IT might be
interesting. Some eternally reoccur like a wheel, some haven't returned...
yet.

Whats changed since then, is more than just the syntax of if/then statements.

GOTO

automatic / implicit strong typing of variables (and believe it or not, a
FORTRAN "feature" to change how the automatic name based typing operated
resulting in eternal confusion from that day onward)

Intermediate code (tokenized basic, pascal P-system, JVM). And unlike the
p-system or JVM, virtually every tokenized basic was incompatible with every
other tokenized basic.

Line oriented program editing and its companion, the line number. I think the
concept of a line number might freak out modern noobs more than the concept of
line oriented editing, hard to say.

To some extent, backward compatibility is seen less and less as a feature as
time goes on.

Your computer powers up and boots in less than a second to a REPL for BASIC.

Numeric / non-humane usernames

Direct access to hardware with no "OS" in the way

------
coldcode
Learned to program in Dartmouth Basic on a teletype in 1974 in school.
Teletype = clanky uppercase only terminal that printed on paper at 110 baud
and saved to paper tape. The world sure has changed since then.

~~~
rootbear
Pretty much my story as well. A teacher at my High School in 1972 had an
account on a local time sharing service. He sponsored a computer club,
probably unusual for the time in a High School. We dialed up the service with
an acoustic modem connected to an ASR 33 teletype. I still have some sheets of
the old yellow roll paper with my first BASIC programs on them.

------
spingsprong
One of the best things about BASIC in the 80s was the immediate and
interesting results.

Just a couple of lines and I could get colourful graphics, and interesting
sounds. It grabbed my attention very easily as a kid.

If I had to jump through all the hoops you have to today, there's a good
chance I wouldn't have got into programming.

------
pjmlp
My first programming language!

ZX Spectrum 48K BASIC back in 1986.

~~~
Jare
48K eh? Ahh rich kids... :)

What blew my mind shortly after getting my hands on a ZX Spectrum was to find
out that most computers of the time (Dragon, Oric, Apple, Commodore, etc) had
significantly different versions of BASIC.

The next thing that blew my mind was to learn that editing computer programs
could be done full screen instead of line by line and that, in fact, most
programming environments did not use line numbers except as visual aids.

~~~
gadders
Dragon 32, with the basic interpreter written by Microsoft. Helped me a lot
when I had my final year university project in VB 1.0.

~~~
dmoo
First basic used was on the oric-1
[http://en.wikipedia.org/wiki/Oric#Oric-1](http://en.wikipedia.org/wiki/Oric#Oric-1)

Also had the joy of VB 1.0 for work
[http://en.wikipedia.org/wiki/Visual_Basic#History](http://en.wikipedia.org/wiki/Visual_Basic#History)

~~~
fit2rule
Great to hear of another Oric-1 user! :) Did you know its still getting
software written for it? (Please tell me you didn't already know about
[http://forum.defence-force.org](http://forum.defence-force.org) and
[http://oric.org](http://oric.org) .. in case you didn't, and you loved your
Oric-1 like many of us do, then you're in for a _great_ surprise..)

------
fit2rule
I'm still using BASIC. I use it to teach my 6 year old son (and his 3 year old
brother) to use computers. We have many, many solid quality hours as a team,
huddled around my still-working old 8-bit machine, typing in programs, playing
existing games, and so on.

The old 8-bit machine is the only system in the house that I can reliably
leave my two boys with, knowing they won't get up to any mischief (no
Internet!) and which they can fully control, themselves.

I'm constantly having the thought that its sort of a travesty that 8-bit, low-
power machines like this are out of style - they're still highly useful
machines. And I'm pretty sure my kids will know how to push pixels before most
of the other kids in their social group even get their first XBox ..

------
DanBC
I've mentioned it a few times before but here's a project where a simple
computer (using VGA and a PC keyboard) runs BASIC.

[http://geoffg.net/maximite.html](http://geoffg.net/maximite.html)

> The Colour Maximite is a small and versatile single chip computer running a
> full featured BASIC interpreter with 128K of working memory and eight
> colours on a VGA monitor. It will work with a standard PC keyboard and
> because the Maximite has its own built in SD memory card and BASIC language
> you need nothing more to start writing and running BASIC programs.

~~~
fit2rule
In the same spirit, you should check out LOAD81 (from antirez, the redis guy):

[http://github.com/antirez/load81](http://github.com/antirez/load81)

Really wonderful toy!

------
markbnj
BASIC was my own personal intro to programming. First on an HP3000 mainframe
while in high school in the seventies, and later GWBASIC on a Columbia
luggable in the 80's. Someone... I think it may have been David Brin, wrote a
great article a few years back about the lack of an ubiquitous, easy to access
interpreted language that any kid with a computer could discover and begin
using. I think it's a valid complaint, but probably not addressable given all
the platform and library dependencies these days. Python comes close.

------
configX
BaCon is a nice BASIC to C converter: [http://www.basic-
converter.org](http://www.basic-converter.org).

~~~
laumars
A tool to convert BASIC to C seems more niche than 'nice'. I mean, I'm not
normally one to criticise other peoples choice of languages, but I can't think
of many occasions when I'd find such a tool useful. And if I was forced to
recommend a simple language with C-like performance, I certainly wouldn't
suggest BASIC even with this converter. But each to their own I guess.

~~~
pjmlp
Not to mention that back in the day we had real BASIC compilers.

~~~
laumars
You still do today. There's a modern version of Qbasic (QB64) which compiles
to standalone executables.

~~~
pjmlp
Yes, but it does not offer the features we are used to in modern environments.

~~~
dragonbonheur
Such as?

~~~
pjmlp
Something like Real Basic (now Xojo it seems) provides a much better developer
experience, while offering native compilers.

If I am not mistaken, QB64 is just a plain command line compiler, from what I
could find.

~~~
dragonbonheur
As long as it can call external DLLs it's OK. It would not be hard work to use
IUP or GTK+ with QB64 if one wanted to. QB64 offers a better environment than
python so it's not that plain - one does not need to look for an external
library to make games for example. It's a compiler that can compile to Windows
and Linux too, as well as Android. A very versatile tool.

~~~
mkd1964
No, I don't work for them but, has no one here heard of PowerBasic?

it started out as BASIC/Z, the first interactive compiler for CP/M and MDOS.
It was then extended MS-DOS/PC-DOS and was then published in 1987 as Turbo
BASIC by Borland. When Borland discontinued it - the Author, Bob Zale, re-
released it as PowerBasic.

A very modern compiler with extremely similar syntax to QB (at least in the
text-mode version). Comes in a Windows version as well.

Both compilers are written in assembly. No runtime. Extremely small, fast
executables. Supports inline assembly (mix BASIC and assembler in the same
procedure). Windows version creates stand-alone executables or DLLs. Supports
user-defined marcros. Regular Expressions. Supports both OOP and procedural
style programming. Too many features to list here. Complete manuals available
for free on their site (powerbasic.com)

This would be a good BASIC to start a kid off with.

Check out the forums. Especially the source code forum. There are some very
talented people there.

Not free but _very_ reasonably priced compared to MS products.

------
lotsofcows
Not a single mention of BBC Basic. I get that Time's US-centric but it still
leaves me a bit sad.

