The amount of brainpower that has gone into making JavaScript fast is amazing.
The amount of brainpower that has gone into making JavaScript fast is amazing.
Most noteworthy one is Unladen Swallow from Google:
https://www.python.org/dev/peps/pep-3146/
And Dropbox's now dead Pyston.
While both are pretty dynamic, Python has a rich ecosystem of C-extensions, which exposes a lot of interpreter details to developers, making moving away from the CPython implementation much harder or straight impossible if compatibility is required.
Pyston was better supported, but I think just too ambitious - IIRC it was initially intended to be a full rewrite and to be compatible with C-extensions.
You have a point though, no company can replace javascript , the cost is straightly forbidden. But Python as mainly a backend language at the time, it can be more realistically replaced, with newer more performant alternatives like Golang, and to some extent node.js.
But it has its own stronghold, which is data/ml land stuff. However, that community has gotten around with Python in its own way, either they are tolering the slowness because that happens behind the scene, or they are bypassing the performance bottleneck to c-extensions.
So in the end, I guess people love complaining about Python's performance, including myself, but it never reaches the break point where they said enough is enough.
Hundred of millions have been poured at chrome, ie and firefox. The best specialists in the world in the field of interpretters and JIT worked on them. For years.
The Python projects were mostly personnal initiatives approved by the companies.
However, compatibility is certainly not:
Scipy/scikit-learn/pandas/matplotlib/h5py aren't supported, and all the packages depends on them, which makes it not an option for probably the most important segment of python's user base.
It really is, and it really makes me sad that the manpower wasn't instead invested in a better underlying language.
If only Eich had been allowed to implement a Scheme for Netscape Navigator! I really dislike Scheme (it's under-specified, and has some poor design decisions like a single namespace), but having a homoiconic language available within every browser in the world would have been amazing. The manager who squashed that is single-handedly responsible for setting back the development of computing by at least twenty years (and more likely thirty, since I predict that it'll be at least another decade before we're able to escape the JavaScript rut).
What we want instead is:
- general concurrency
- access to any (garbage collected) JS variable/object from any thread.
- a garbage collector that works across all threads.
- no global locking of threads by the runtime system
I think JS is making the right call here: a small subset just to engage the extra cores.