Academics vs. Engineers: PyPy vs. V8

It's interesting to see how academics attack a problem and how engineers do it. In this post I'll take a look at the two approaches.

The two fighters

In the red ring corner you have PyPy - an implementation of Python in Python itself. The project is ambitious and at some points obscure (for example, they dig into Prolog to get some experience with JIT compilation).

In the blue ring corner you have V8, the JavaScript VM that's used in Google Chrome. The lead of the project is Lars Bak, who has more than 20 years of experience implementing virtual machines.

Their status?

PyPy has been underway for a long time (around 6 years) without producing anything that can be used in production. Their goal is quite ambitious and their ways of exploring the space is at some places innovative and uncommon. Their end-goal is to produce a fully compatible Python implementation. So far they don't have a fully compatible Python, but only a subset.

V8 has not been that long underway and they have a solution now that beats old JavaScript implementations by large margins. Their end goal is a working JavaScript implementation that's very fast - - and so far they have succeeded in their goal. In V8 they use some old research, like hidden classes that was used in Self in 1989. The Google team mostly focuses on the implementation and not so much on the theory.

The conclusion

It's two very different ways of attacking a problem. The academics attack it to gain new insights, while engineers attack the problem to solve it using currently available knowledge. It should be noted thought that engineers might also gain new insights while solving a problem, Lars Bak has for example 18 patents in VM technology.

14. Jun 2009 Code · JavaScript · Life · Python
© Amir Salihefendic