Python not a Very High-Level Language?

lobozc at my-deja.com lobozc at my-deja.com
Sun Jan 2 02:53:28 EST 2000


1. I fully support a thesis that Python is _not_ a very high level
language. There are many ways in which the level of the langauge can be
defined. Halstead's for example - but not only. Looking from the point
of view of many popular languages [C++, Java, JavaScript, Pascal, Perl
etc.] it is obvious that Python shares most of the (primitive)
mechanisms and approach of such languages.

2. Compared to higher level languages, like ICON, Mathematica etc. it
is obvious that some higher level concepts, like goal-directed
evaluation, coexpressions and many others are missing. Most of the mind-
share of improving Python seems to be going towards clarifying it's
type system and making it more OO. This direction is not bad in itself,
it's just that it hits the law of diminishing returns: makes Python
more of a me-too language in that space.

3. Unlike Java [and a couple of others] Python has a _potential_ to
became much higher level language than its competition. Functions as
first class objects, list/tuple handling by Python as well as lambda
definitions open a way to move Python quickly to another level. One
could write a lot here about it, but enough to say this: in a high
level language Haskell the quicksort algorithm takes one short (and
readable!) line - and it is mathematically provable that it does what
it should. In other words: using higher level concepts than looping and
jumping [a staple of contemporary languages] we can express much more
in much less code - as well as making it safer and less error prone.

4. Some work [by Greg Ewing? apologies if the name is spelled wrongly]
aims to extend Python with list comprehension mechanisms, thus allowing
big jump in expressivity of Python. From language level point of view
this is definitely the most important work. [Still, it seems to be that
this direction is also very underappreciated by many Pythoners.]

5. It must be noted that I'm not trying here to talk everybody into
using Haskell, as 99.9% of programmers will never accept functional
languages. But Python has an opportunity to acquire some of the
powerful mechanisms well tested in functional languages - and stay the
traditional, imperative programming language. Thus allowing
easy 'natural' startup for entry-level (VB-trained :-)) programmers but
enabling also some powerful coding by professionals.

6. I'm not sure I understand the relationship of the XML/DTD proposal
to the 'language level'. It seems to me that it may make for 'better
ide' but not necessarily for a better language. It's one thing to have
some additional notation for comments, it's another to have a language
which needs less coding, therefore less comments. I'm not talking here
about APL-like conciseness (unreadable two days later...), more about
Haskell-like expressiveness - originating from higher level abstraction
mechanisms of formal computing.

[For more information on details I can recommend the book by Simon
Thompson Haskell: the craft of functional programming; as well as Ralph
Griswold's The Icon programming language and books by R. Meader about
the Mathematica programming language].

In article <84i4bn$rqh$1 at clematis.singnet.com.sg>,
  "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.
>
>


Sent via Deja.com http://www.deja.com/
Before you buy.



More information about the Python-list mailing list