3 ms·
Does anyone know why JIT-ing Python isn't given more "institutional" support (by which I suppose I mean mostly Google, since they employ Van Rossum after all)?
by paulbaumgart 18y ago
Does anyone know why JIT-ing Python isn't given more "institutional" support (by which I suppose I mean mostly Google, since they employ Van Rossum after all)? It seems like the logical next step to make Python more generally useful.
As I see it, speed is the last big advantage Java has over Python (and I do realize that a dynamically typed language makes achieving efficiency harder).
Apparently PyPy has some financial support from Google (http://en.wikipedia.org/wiki/Pypy#Project_status http://en.wikipedia.org/wiki/Pypy#Project_status), but it really seems like basically any company that uses Python would gain so much from robust JIT compilation in the interpreter that I'm surprised there's not a more concerted effort to make it happen.
- russell 18y agoYou bring up a good point. It bothers me a great deal that companies aren't actively supporting the software that they depend on. The Python Foundation will take your donations. A thousand dollars a year is peanuts and the dividends are huge.
- moe 18y agoMaybe because raw excution speed matters so little in most applications that they're rather focussing on lower hanging fruits such as improvements to the core language or standard library. - But that's just a wild guess.
- mojonixon 18y agoRaw execution speed matters when dealing with Google sized data sets, but Google and organizations with similar requirements can just throw more hardware at it.
- anamax 18y agoGoogle uses C++ for compute-bound stuff. Google's problems are big enough that constants matter.
- ankhmoop 18y agoRaw execution speed does matter, but like any incremental cost, is often ignored. Off-the-cuff benchmarks I ran on our Scala-based webapp on a four-core desktop system demonstrated 5,000 req/sec @ 2ms/request after the JIT warmed up. 5,000+ requests/second -- scaling up with available CPUs -- means not having to worry about performance, complicated caching, and the slew of other things that developers do to eek performance out of frameworks based on poor interpreter implementations.
- moe 18y agoIt's not really an incremental cost but rather a constant overhead. The idea is that if you're worried about performance and scaling then you'll have to find a way to distribute your load over multiple physical machines anyways. At that point it doesn't matter so much anymore whether one of your nodes handles 5000 reqs/sec or 2500 reqs/sec. Hardware is cheap.
- ankhmoop 18y ago"Hardware is cheap" is a false dichotomy. The implication is that hardware is cheap, but development is not, and performant architectures require expensive development. In reality, neither hardware or development are cheap, and performance does not inherently necessitate more costly development. The mantra and the dichotomy are false.