It seems like the biggest point here is that compatibility with the extension API in Python is the anchor dragging down performance. Similarly, Ruby suffers from continued compatibility with its extension API. In the paper they compare with Lua and JavaScript, but it's worth noting that JavaScript doesn't have an extension API (well, JavaScript proper...not saying anything about node.js), and the team behind Lua are notorious for not caring about breaking API compatibility between versions.<p>I guess what I'm trying to say is, while this is a laudable effort, it seems what Python (and Ruby) really needs is a way to free itself from the chains of extension API compatibility.
If the goal is to get performance without giving up on Python's existing libraries, why not use Steven Johnson's PyCall (<a href="https://github.com/stevengj/PyCall.jl" rel="nofollow">https://github.com/stevengj/PyCall.jl</a>) package for Julia?
While this paper is quite easy and occasionally funny to read, being a total math idiot, I need somebody to help me out how to read the benchmarks at the end. The author claims that on average converting stack-based bytecode to register-based bytecode results in an average of 25% performance improvement, I have trouble finding where that number comes from. The charts are said to be a comparison of optimized code relative to unoptimized code, my question is, how come the unit on the y-axis is a percentage, and the unoptimized code isn't used as a base-line all labeled as 100% or given an absolute average time-took? The tiny gaps between unoptimized and optimized code are confusing me.
It would be good to compare Falcon with Numba: "Numba’s job is to make Python + NumPy code as fast as its C and Fortran equivalents without sacrificing any of the power and flexibility of Python." Like Falcon, Numba is compatible with CPython and whatever extensions you want to use with CPython.<p><a href="https://github.com/numba/numba" rel="nofollow">https://github.com/numba/numba</a><p>Intro to Numba, parts 1 and 2:<p><a href="http://continuum.io/blog/numba_growcut" rel="nofollow">http://continuum.io/blog/numba_growcut</a><p><a href="http://continuum.io/blog/numba_performance" rel="nofollow">http://continuum.io/blog/numba_performance</a>