
BASIC at 50 - WoodenChair
http://www.dartmouth.edu/basicfifty/
======
astral303
When I was little, back in post-Soviet Russia (circa early 1990's), the
prevailing progression of a developer was "learn BASIC, learn Pascal, then
learn C". And, if you were extra badass, you'd learn assembly. BASIC was the
first step, simple and easily accessible on most computers of the day (ZX
Spectrum, MSX, Atari, GWBasic/QBasic on MS-DOS).

Best of all, being an interpreted language meant that you often had the source
available to tinker with--"open source" of sorts. I remember tweaking
GORILLA.BAS when I was 12, altering colors, inserting extra screens and text
and silly stuff like that.

I think there's a whole generation that grew up on BASIC. I wonder what
today's generation growing up on?

~~~
vivin
> "learn BASIC, learn Pascal, then learn C"

So much of this! I remember the older kids talking about Pascal (they were
using TurboPascal at the time) and to me it was some mystical, highly-advanced
form of magic, a sort of "more complex" BASIC. However, I never actually
learned Pascal or used it, because I jumped directly from BASIC to C (actually
ended up doing both for a while). The reason I even found out about C, was
because I asked my computer teacher in junior high how people made games, and
she told me that it was a language called C. So that summer I got myself an
ANSI C book and started teaching myself C.

It was very difficult at first but I slowly got the hang of it. By junior year
of high school we were doing C++, and having done C it was really easy for me
to switch to C++.

~~~
cleversoap
> how people made games

In my experience this is the common question amongst everybody (myself
included) that started programming young. Some adult somewhere (how sad that I
don't remember) took me seriously enough and gave me some books so I started
writing in C, BASIC, and assembly and I was too stupid to realise that it was
supposed to be too hard for a 9 year old.

Today (as in literally this moment in time) I am still writing C for games.

------
vivin
I starting learning how to write code in '91 (I was 10). My first language was
LOGO, but after that I started learning BASIC. I remember trying to find any
sort of books I could from the library, that talked about BASIC. It was tough
going. I didn't have access to the internet (much less knew what it was). So I
had to make do with these books that were often for different dialects of
BASIC.

In those days I was enamored with graphics and the idea of creating games, and
it was dead simple to do simple graphics in BASIC.

Although I haven't written any code in BASIC in over 10-12 years, it still
holds a special place in my heart since it was the language that I used to
realize my passion for programming and computers in general. I most definitely
wouldn't be where I am today, if it wasn't for BASIC (and QBASIC).

------
crusso
I'll never forget standing in a K/Wal Mart when I was about 12 years old,
standing in front of a Commodore 64. My older brother showed me a simple
program that he typed in:

    
    
       10 PRINT "I AM THE BEST!!!"
       20 GOTO 10
    

I fell in love.

~~~
diydsp
There were a number of epic one-liners similar to the above. If anyone is
interested in the phenomenon, you can read our book 10 PRINT
CHR$(205.5+RND(1));:GOTO 10 which we give away free at [1] and has LOTS and
LOTS of details about the history of BASIC.

[1] [http://10print.org/](http://10print.org/)

------
rst
"At 4 a.m. on May 1, 1964...", says Dartmouth, "time-sharing and BASIC were
born."

Well, BASIC was --- but the CTSS timesharing system had already been in use at
MIT since the summer of 1963:
[http://www.multicians.org/thvv/7094.html](http://www.multicians.org/thvv/7094.html)

There are other earlier systems: JOSS, which featured a rather BASIC-like
language, was in service by January, 1964:
[http://en.wikipedia.org/wiki/JOSS](http://en.wikipedia.org/wiki/JOSS)

And both JOSS and CTSS had been demoed in earlier form before going into
general service --- in fact, the first primitive CTSS demo was in 1961.

------
peterevans
Thinking back on BASIC, what stands out most to me are the line numbers. At
the time, I never understood the point; I mean, sure, you needed them for GOTO
and GOSUB. But it just seemed like so much labor. And, of course, why not
labels, names for subroutines? Other languages had them.

But when you think back on how assembly looked and worked at the time, you
realize that the line numbers are sort of analogous to addresses in memory. If
you were on a 6502, you might JMP to a point in memory. You'd do the same in
BASIC, except instead of a point in memory, it was an arbitrary number you
used for the line.

So, weirdly, my thoughts on BASIC today is not that it was really BASIC. Not
even that it was necessarily a great beginner language, though some people
treated it that way. It was an easier shorthand for assembly.

~~~
munificent
> Thinking back on BASIC, what stands out most to me are the line numbers.

Because in most computers at the time, you didn't have an editor that could
edit an entire source file. I remember writing BASIC on a TRS-80 and an Apple
IIe. Those just had line editors.

Line numbers let you identify which line in the program you want to edit.
Typing in:

    
    
        20 PRINT "HI"
    

meant, "replace line 20 with that".

You spaced out your numbers (usually multiples of ten) so that you had some
available numbers if you need to insert some code between two lines. If that
got crowded, typing in "RENUM" would renumber all of your lines and neatly
space them out again.

At a child, I remember thinking RENUM was the most magically complex algorithm
I could imagine.

~~~
dalke
I both agree and disagree with you. The sticky point is "at the time." BASIC
came out in 1964, and other programming languages, like Fortran, COBOL, Lisp,
and Algol, didn't need line numbers for each line.

I suspect it had something to do with the display technology. Fortran and
COBOL were designed with punch cards in mind. Lisp and Algol were designed for
research computer scientists; I don't know what they used for I/O or hardware,
but I suspect it was significantly more advanced than the line printers that
Dartmouth students used.

I think this helped make BASIC a good match as the first micro language a
decade later where, as you say, most of those computers couldn't handle
functionality beyond a line editor.

I remember putting off RENUM as long as possible, because it forced me to re-
learn where all of the useful GOTO/GOSUB targets were located.

------
Zardoz84
My first approach to programming was Sinclair BASIC of a ZX Spectrum +3 . I
learn soem stuff with a books of "BASIC for childrens", and the ZX spectrum +3
manual. I remember doing a program to study multiplication tables, printing
it, and then asking me for the values... Good old times.

~~~
blt
Funny how people perceive programming as way more advanced than
multiplication, but you could write this program before you memorized the
multiplication tables.

I think the sequence of topics in math education is really wrong. Another
example: in the USA, "discrete math" is a college class at the same level as
calculus (or higher!), even though it mostly builds off elementary algebra.

~~~
vidarh
I learned symbolic differentiation by reading a book about Prolog that used
some of the rules as an example and translating it into Pascal (I didn't have
a Prolog interpreter) and then adding additional rules from my maths textbook.
I then figured out operator precedence parsing because I got annoyed at having
to manually translate the math to something the rules engine could handle.

To this day, my preferred way of understanding maths is by looking at
implementations of the algorithms - I find mathematical notation and every
maths textbook I've seen to be extremely tedious and overcomplicated compared
to code (of course with the caveat that at least some of this is because I've
spent far more time learning to understand programming, though I still found
that route easier when I was in school)

------
_sh
The story of Sweet 16, Steve Wozniak ports BASIC to the Apple II.

[http://www.6502.org/source/interpreters/sweet16.htm](http://www.6502.org/source/interpreters/sweet16.htm)

"While writing Apple BASIC, I ran into the problem of manipulating the 16 bit
pointer data and its arithmetic in an 8 bit machine..."

------
softbuilder
I'm currently reading "The Dream Machine"[1] and coincidentally at the point
where BASIC is being invented. What I found interesting is how closely linked
LISP and BASIC are in motivation and the spirit of the era. Not to mention the
direct connection of Dartmouth, McCarthy, and time sharing.

[1] [http://www.amazon.com/The-Dream-Machine-Licklider-
Revolution...](http://www.amazon.com/The-Dream-Machine-Licklider-
Revolution/dp/0670899763/ref=sr_1_2?ie=UTF8&qid=1396904315&sr=8-2&keywords=the+dream+machine)

~~~
peapicker
That book is fantastic, rates very highly on my list of excellent histories of
computing.

------
gshubert17
My first programming experience was with BASIC running on a GE time-sharing
system in 1971. We worked on teletype machines and used paper tape to store
and load programs. I remember that the user manual was fairly small and
reasonably helpful. Performance wasn't too bad late at night when the folks
who used the GE machine had gone home.

------
EvanAnderson
I think John Kemeny, co-inventor of BASIC, was a pretty interesting guy. He
worked with computers under Feynman during the Manhattan Project. He argued
for widespread computer literacy in the mid-1960's. He's worth reading about,
for sure.

I happened into a copy of Kemeny's book "Man and the Computer"
([http://www.amazon.com/Man-Computer-John-
Kemeny/dp/0684130432](http://www.amazon.com/Man-Computer-John-
Kemeny/dp/0684130432)) sometime around 90-91, and it fascinated me. I've gone
back and read it since and, while many of Kemeney's predictions didn't hold
up, the tone of the book is definitely inspiring.

------
pjmlp
Started coding at the age of 10 with ZX Spectrum BASIC, followed by a little
of Z80 then again GW-Basic, Turbo Basic, and then lost count how many
programming languages I have learned and used ever since.

------
keyle
The original BASIC Manual, circa 1964.

[http://bitsavers.trailing-
edge.com/pdf/dartmouth/BASIC_Oct64...](http://bitsavers.trailing-
edge.com/pdf/dartmouth/BASIC_Oct64.pdf)

------
transfire
BASIC has been rather remarkable for it adaptability. Microsoft's Visual
Basic, for instance, has managed to become a rather modern object-oriented
typed language. As much flack as it gets from "real" programmers, probably
more code is still written in VB than most other languages combined (although
that is certainly starting to change now with the rise of open source
scripting languages as well as the rise of Javascript.)

~~~
etfb
Read a statistic once that the language with the most lines of code written in
it was probably Excel's version(s) of BASIC. Not sure when that was or how
reliable.

------
protomyth
I miss Antic and the other magazines that came with programs to type in and
modify. I learned about checksumming from those magazines :)

~~~
voltagex_
Here you go: [https://archive.org/search.php?query=collection%3Aantic-
maga...](https://archive.org/search.php?query=collection%3Aantic-
magazine&sort=-publicdate)

~~~
vidarh
There's another fantastic collection of old computer magazines here:

[http://www.bombjack.org/commodore/](http://www.bombjack.org/commodore/)

And this one: [http://www.atarimania.com/list-atari-
magazines.html](http://www.atarimania.com/list-atari-magazines.html)

(though they say Commodore and Atari respectively, both of them have some
magazines that are more generic)

~~~
etfb
There's a PDF there of Programming The PET/CBM, by Raeto West. I loved that
book - read it from cover to cover, drained it of all its knowledge. I can
still tell you random things about the CBM-8032's memory map and ROM code,
twenty five years after the last time I touched one.

I looked up Ray West recently, wondering if he's still alive. Turned out he
was until recently, but he'd turned into a mad, racist, tinfoil-hat-wearing
crackpot, paranoid about Jewish conspiracies and government hoaxes. Fluoride,
fake moon landings, the whole nine yards. So sad. That guy was my hero, and he
just went off the rails and, as far as I could ever find, completely
disappeared.

ETA: nope, he's still around, and still antisemitic. Ah well.

------
excitom
Nostalgia break:

Learned BASIC in 1973, first computer class at my high school. Pascal,
FORTRAN, and COBOL in college. Started working at IBM in 1978. "High level
languages are for wimps". Assembly all the way baby!

Ah those were the days.

