On 07/11/2015 12:15, Ben Finney wrote:
Bartc <b...@freeuk.com> writes:

To my mind, Python allows far too much freedom in being able to change
anything at any time.

You're welcome to that opinion. I don't see you present a reason why it
should affect anyone else's opinion of Python, though.

Not just my option. From this 2010 paper for example ('High performance implementation of Python for CLI ...' by Antonio Cuni):

"As a language, Python is very hard to implement efficiently: the presence of highly dynamic constructs makes static analysis of programs extremely difficult, thus preventing ahead of time (AOT) compilers to generate efficient target code."

Yet Python has to assume 100% of the time that it could have been
changed. Think of the opportunities for optimising if the probability
was 0%.

Such a pity that Python is missing all those opportunities for
widespread adoption, by not hewing closer to your preferences.

Plenty of other people working on faster Pythons appear to have trouble with its being so dynamic.

(Earlier this year, I was upgrading my own language to be much more Python-like in its internal workings. But I gave it up because I was losing so many nice features that also made it easy to implement efficiently.

As one example of many, named constants (the 'const' feature earlier in the thread), were used for 'switch' statements. Without 'const', then I couldn't have a fast 'switch'.)

I suppose my coding style is just different from people who write Python. When I define a function f(), then it's always going to be function f and is never going to change. A call to such a function can therefore be streamlined.

If I ever need it to be dynamic, then I use a function pointer:

  g=f

f is still the static function, g is a now a reference to it, and is a little slower to call. But the /vast majority/ of function calls are going to be static.

--
Bartc

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to