some comments for Python 3000

Alex Martelli alex at magenta.com
Mon Aug 14 12:39:57 EDT 2000


<lobozc at my-deja.com> wrote in message news:8n793u$pfe$1 at nnrp1.deja.com...
    [snip]
> And speed is not all. From all reports Eiffel is very fast (C++ class)

It's been a LONG while since I seriously benchmarked the best
Eiffel and C++ compilers, but, those many years ago, a performance
difference of 20% to 30% in favour of C++ was average.  Same class,
yes, but enough to make speed-junky programmers dubious.

> and obviously so much better

Nothing obvious about it.  Syntax more verbose, OK, what do I care;
syntax sugar is the last AND least aspect of a language (for the
purposes I was evaluating C++ and Eiffel [and other languages]
for: main production language for highly-professional, extremely
experienced programmers).  *Deep* syntax differences may be
another thing (but that's basically about LISP and friends, Prolog &c,
functional languages...; imperative languages with a measure of
Algol heritage, except maybe Algol-68, don't really have that many
deep-syntax differences).

Basically C++ is about "all power to the programmer" -- fully
including the power to do very, very bad things.  Eiffel is about
more rigidity in an attempt to constrain programmers away from
doing very bad things.  Nothing obviously "better" about either
approach -- when you're targeting a segment of programmers
with extremely high professionality, at least.

> yet nobody's using it. Because it tried to
> attack established langauge (C++) in its niche.

Nope.  Back when I was doing the above-mentioned benchmarking,
there was nothing "established" about C++.  We didn't have even
one single line of C++ code -- not even prototypes, much less any
production code.  Our main development language then was Fortran,
with production code migrating to C.

So we did some pilot-projects, etc.  What definitely tilted the
balance in favour of C++ (though we didn't move any _production_
code to C++ until things had stabilized much more, years down
the road) was the "plays well with others" factor.  C++ let us
move stuff incrementally, easily taking full advantage of system
libraries, easily using new/migrated subsystem from old ones
(thanks to some extern "C"), and so on; no "big-bang" with all
of the attendant risks.

Now, C++'s complexity is definitely taking its toll, but I do
not think the complexity would have been substantially lesser
with Eiffel.  And the "plays well with others" aspect continues --
it's definitely easier to use C++ to develop, e.g., Python
extensions (thanks to the excellent CXX setup, or the excellent
ATL framework and some COM, for Windows-specific components),
than even C (I have no idea how easy or hard it would be to do
it in Eiffel, but, well, I have my doubts).


It's definitely not true that "nobody's using" Eiffel -- Eiffel#,
just like Python .NET and Perl .NET, were given equal time with
Fujitsu Cobol at the PDC as "languages being migrated to .NET by
third parties".  But, also, the "obviously so much better" claim
needs (IMHO) to be taken with a *BIG* grain of salt.


Alex






More information about the Python-list mailing list