Why Python is like BASIC (and why this is a good thing)

Elton M. Labajo elton at mybizlinks.net
Fri Feb 15 21:13:19 EST 2002


I like the idea of lite and full version :)
> Reading the first few chapters of _How to Think Like a Computer
> Scientist_ (http://www.ibiblio.org/obp/thinkCSpy/ for those who haven't
> heard of this book), I was struck by how Python resembles BASIC in some
> ways that make it a very good language for teaching:
>
> * Interpreted, so there's immediate feedback. Students can just type
>  'python' at the command prompt and start coding, receiving *immediate*
>  feedback on the effects of what they type.
>
> * Non-scary assignment and output statements. In fact, Python and
>  BASIC's output statments look identical. "Print" is a natural choice
>  for ease of understanding. Using sys.stdout.write can come later, once
>  students begin to realize that they don't always *want* a newline or
>  space appended to their output.
>
> * No need to declare variables. Use them and they are immediately
>  created for you, ex nihilo.
>
> All three of these things make for a very low barrier-to-entry for
> people who've never done any programming before. I'm sure there are
> other similarities as well, that maybe someone else will point out. Of
> course, Python goes beyond BASIC in many ways:
>
> * NO LINE NUMBERS! Enough said.
>
> * Rich control-flow statements. Of course, this is available in more
>  modern versions of BASIC, but back when I was first learning to
>  program (at age six, using BASIC), all I had was conditional GOTO. You
>  know, IF condition GOTO line-number. Or, for the advanced students, IF
>  condition GOSUB line-number (I never did understand the necessity for
>  that kind of statement until well after I'd stopped using BASIC
>  entirely and moved to more "modern" languages like... Pascal).
>
> * Batteries included. This is the big one, which makes Python more than
>  just a toy language suitable for learning. The richness of the
>  standard library makes Python incredibly useful, and I for one would
>  like to see it continue to grow. I understand the concern that people
>  developing Python-based programs for distribution would like their
>  users to be able to run a 100k script without downloading a 10M
>  distribution, but I don't want to see that cause a reduction in the
>  standard library. Instead, we could make make two Python
>  distributions, a "full" install containing everything and a "lite"
>  install containing only the interpreter and maybe -- *maybe* -- a
>  couple of essential modules like os and sys. Then people developing
>  Python programs like, say, a pygame-based game, could distribute a
>  single package containing the "Python lite" distribution, their own
>  code, and any other modules their code depended on -- all in one
>  easy-for-the-end-used-to-install package.
>
> Anyhow, I hope this helps develop some ideas.
>
> --
> Robin Munn
> rmunn at pobox.com
> --
> http://mail.python.org/mailman/listinfo/python-list







More information about the Python-list mailing list