Python not a Very High-Level Language?

Eric S. Johansson esj at harvee.billerica.ma.us
Sat Jan 1 22:37:41 EST 2000


Ajith Prasad <aprasad at magix.com.sg> wrote:
> http://www.oreilly.com/news/vhll_1299.html is an article by Greg Wilson
> casting doubts on the effectiveness/value of Python and other very high
> level scripting languages. Wilson comments that:
> "Over the past few years, I have done several medium-sized projects using
> both Perl and Python. At first, I was very excited by what these Very-High
> Level Languages (VHLLs) let me do, and how quickly. The more I played with
> them, however, the less satisfied I was. In particular, I no longer believe
> that they deserve the 'V' in their name. This article explores why, and
> suggests some ways in which they could evolve." Worth responding to as it
> includes detailed criticisms of Python in particular.

interesting article and a good set of commentary from other folks in
this thread.

for me, most of the suggestions were of the "yup, good ideas that will
be ignored" type.  He left out one thing that I think is very
important from Eiffel which is the concept of the "obsolete" keyword.
It's a very useful device which allows you to tag what public names
are going away so that users of your toolkit can get reasonable
notification before the names actually vanish.  There is a school of
thought that says that no functions or public names should ever go
away but I believe that's a reaction to the lack of a mechanism for
notification.

Of all the things he suggested, I personally want to see programming
by contract support.  I've done it in C/C++ using assert.h and it's
wonderful for picking out bugs in your thinking as well as your
implementation.

The XML based code suggestion was also fairly interesting.  The
reminded me of my experiences with literate programming, another very
powerful but underrated tool.  Using literate programming techniques,
I was able to generate code some 50 percent faster with higher
reliability because the technique mapped to how I think of software
blocks.

A life changing event has significantly altered my relationship to
software development.  About five years ago I was injured from too
many hours on the keyboard and I am now dependent on speech
recognition for most computer use.  As a result, I've developed a
strong interest in speech driven programming techniques.  Shifting
from the keyboard focus to a vocal focus highlights some of what Greg
Wilson was talking about in terms of high level vs. very high-level
languages.  It has also altered my thinking to the point that people
suspect me of consuming way too many mushrooms when I talk about
programming by voice.  ;-)

If you can, try the experiment of stepping back from using your
keyboard when writing code.  Think about and vocalize what you would
tell someone to write your code for you.  Another time, think about
how you would write code differently if you had an intelligent aid
looking over your shoulder and filling in detail for your shorthand.

Some of things the come out of this is the necessity for an editing
environment to be aware of context, being able to separate the
difference between "type" and "purpose", smart abbreviations
(proforms) based on your context and name scope rules, smart help for
function definitions, schemas which let you alter one data element
within the schema and then reflect the change throughout the entire
schema.

The world gets very strange when you move away from a keyboard focus.
You find yourself wanting to operate at a very high level with big
chunks and let the context fill in the details.

--- eric

-- 
Eric S. Johansson    esj at inguide.com	esj at harvee.billerica.ma.us
This message was composed almost entirely using NaturallySpeaking



More information about the Python-list mailing list