Cliff, babe ... Chill out! The fate of the free world doesn't really hang
on what I think of Python performance. I've been refraining from
responding to the last few postings in this thread, but really now ...
It would be nice if people actually read the postings instead of reading
their own views *into* the postings. First, I never said or suggested that
Python sequences were implemented as *linked* lists. I'm perfectly aware
that they are not. And I never said or suggested that the performance
issues would involve looking up objects in an array of GUI widgets. Was
there *any* mention in my posting or was there *any* example pertaining to
"referencing GUI objects in an array"? No. The performance issues
pertain to the implementation of a variety of fairly complex algorithms and
processes in computational linguistics and text processing (Brill taggers,
Abney parsers, etc.). And they involve very large corpora and very large
ontologies. In these contexts, 100,000 iterations is *nothing*. A single
ontology itself will have over 100,000 terms -- never mind what you want to
*do* with it. And lexicons can easily have half a million entries (not to
mention morphological variants). You can end up having finite state
automata with *millions* of states. And that's just the beginning of the
problem
Have I done any formal studies of Python performance for these things? No.
Do I have some definite knowledge and experience of how these algorithms
behave under a variety of implementations? Yes. Do I have experience with
how Python behaves in implementing similar algorithms? Yes. Do I have any
experience in implementing such things in a variety of contexts and using a
variety of languages? Yes -- among that experience, about 20 years
designing and implementing commercial production compilers, testing them,
and and tuning them against the competition.
You're right that "for most end-user applications, people would be
hard-pressed to differentiate between a C/C++ app and a Python app". And
for those parts of my application for which that is true, I'm perfectly
happy with what the usual Python approach has to offer. But this isn't one
of "most end-user applications". Are there *some* applications in which
performance *really* matters? Yes, indeed there are. I'm afraid you'll
have to excuse me if I'm less than totally relieved by your anecdotes
<wink>.
Someone asked why I would care about using an array instead of a sequence.
I gave a reasonably coherent and objective answer (actually quite
consistent with various approaches to defining true array types in various
existing Python libraries). But don't be concerned. Whatever I think will
have absolutely no impact on the future of Python or your love of it. I've
appreciated all the advice and speculation.
But enough now, eh? This is the *wxPython* list and I have no complaints
about wxPython performance.
ยทยทยท
--------------------------------------
Gary H. Merrill
Director and Principal Scientist, New Applications
Data Exploration Sciences
GlaxoSmithKline Inc.
(919) 483-8456