BASIC vs Python

Andrew Dalke dalke at dalkescientific.com
Fri Dec 17 01:49:00 EST 2004


Adam DePrince
> During the 1980's BASIC was the language to embedd into the ROM's of the
> computers of the day.   This was in a misguided effort to make computers
> understandable to their target audience.  The goal of the day was to
> build a system that a manager would want to buy; it was believed that
> the only way for a manager to see the value of a system was to make the
> language understandable to said manager.

That doesn't sound like the 1980s I remember but I was biased
because I those included my teenage years and I wasn't a manager.

I though part of the market was for parents of kids like me.
In my case I learned from the book that came along with the
computer.  I remember how confusing arrays were ("By default
it only takes numbers between 1 and 10, so I should be able
to use 2.5, right?").  I don't think I could have handled
UCSD Pascal on my own nor the other languages available at
the time.

Editing BASIC is also dead simple to read and to implement
on a machine with a few K of RAM.  Compare to EDLIN for
DOS or other editors of the era.  That's the era of WordStar
and the ^K^B and ^K^K control character commands.  Again,
not something a beginning solo student programmer can
likely pick up easily.

The BASICs of my youth also supported graphics and sounds.

  PLAY "CGFED>C<GFED>C<GFEFB"

  HGR
  HPLOT 0,0 to 20,40

Twenty, yes *20* years later there's still no standard
module for Python for doing the sound effects I could do
on my old TI 99/4A, even without the hardware speech
synthesizer (fun for Parsec and a few other games :)

> In BASIC you literally list the steps the computer will follow.  Each
> step gets a line number.  Decisions are controlled by jumping to
> different "line numbers."  No where in the language was there any notion
> of or ability to make your program remotely abstract.  You know those
> jokes on slashdot.org that read:

True, for the basics on those microcomputers.  In 1987
or so (maybe 1986) I switched over to Quickbasic which
got rid of those problems, included an IDE, and produced
fast compiled code.  TrueBasic was also available in 1987.


> That is BASIC in a nut shell.   Sure, modern versions have gotten a
> little better, dispensing of evils such as line numbers and the like,
> but they are only marginally better.

Modern = last 15+ years.  My experience with with the now
very dated Quickbasic which I last touched in .. 1993?  It
seemed quite comparable to Turbo Pascal in its capabilities.

> Each language carries with it a philosophy.  BASIC stands alone in being
> so utterly perverse that learning it will render you completely
> unmarketable, except as a basic programmer, as you unlearn its
> limitations and learn how to think in the abstractions of every other
> language.  

Which was just fine with me.  I learned Pascal in Sr. High,
C in college (and C++ and Fortran) and didn't get paid to be
a full-time programmer until 3 years after I graduated college.


> Perhaps I can best illustrate the difference between the two with an
> analogy.  Suppose you came to me and asked which was a better way of
> learning a foreign language, the python way or the BASIC way.  

> The Python way would be how a language is taught in any normal class
> you might find at a local college.  You learn the vocabulary, grammar,
> history and culture of the language.

Let's try this recasting of your analogy.

Suppose you had to learn Latin without a teacher or without
access to Latin speakers.  The only way you had to get feedback
was by typing a letter to the Latin Language Institute, fortunately
staffed by very patient folks but they only reply in Latin.
All you have is a book that came along with the typewriter.

You don't at this point know there is a culture or a history.
Rome?  What's that?  But you like horses so you start writing
about equus.  The LLI responds with a bit more about horses.
A conversation starts.  After a lot of practice you learn
you can do more with Latin than talk about horses and find
there's over 2,500 years of recorded history in Latin, including
stories about horses.

Finally you move to a place that has a language teacher and
you learn Latin more rigously, that it's "Romani ite domum"
and not "Romanes eunt domus", and find out about Greek, and
Swedish, and Japanese, and all sorts of other interesting
languages.

Given the hardware constraints of the early 1980s, which
language do you think should have been used instead of BASIC?

				Andrew
				dalke at dalkescientific.com




More information about the Python-list mailing list