3 ms·
keep in mind that, apart from the money throw at js runtime interpreters by google and others, there is also the fact that python - as a language - is way more
by _ZeD_ 10mo ago
keep in mind that, apart from the money throw at js runtime interpreters by google and others, there is also the fact that python - as a language - is way more "dynamic" than javascript.
Even "simple" stuff like field access in python may refer to multiple dynamically-mapped method resolution.
Also, the ffi-bindings of python, while offering a way to extend it with libraries written in c/c++/fortran/... , limit how freely the internals can be changed (see the bug-by-bug compatibility work done for example by pypy, just to name an example, with some constraint that limit some optimizations)
- pansa2 10mo ago> python - as a language - is way more "dynamic" than javascript Very true, but IMO the existence of PyPy proves that this doesn't necessarily prevent a fast implementation. I think the reason for CPython's poor performance must be your other point: > the ffi-bindings of python [...] limit how freely the internals can be changed
- eru 10mo ago> Very true, but IMO the existence of PyPy proves that this doesn't necessarily prevent a fast implementation. PyPy pays for this by having slower C interaction.
- nikisweeting 10mo agogenuinely curious, doesn't JS's proxy objects and prototype-based MRO have a similar performance impact in theory?
- cpburns2009 10mo agoYeah, I don't see how Python is fundamentally different from JavaScript as far as dynamicism goes. Sure Python has operator overloading, but JavaScript would implement those as regular methods. Pyrhon's init & new aren't any more convoluted than JavaScript's constructors. Python may support multiple inheritance but method and attribute resolution just uses the MRO which is no different than JavaScript's prototype chain.
- pjmlp 10mo agoUrban myths. Most people that parrot repeat Python dynamism as root cause never used Smalltalk, Self or Common Lisp, or even PyPy for that matter.
- pjmlp 10mo agoSee Smalltalk, Self and Common Lisp for highly dynamic languages with good enough JIT, the first two having their research contributed to Hotspot and V8.