A few years ago I wrote a Java decompiler. Not to actually decompile code but to learn how to use my weapon of choice (Java) at a deeper level.
I never finished. The only code I ever bothered decompiling was code I had written to test the decompiler. But I learnt a heck of a lot about how the JVM works, about Java byte code, and about some data structures and analysis. And I learnt exactly how the Java class file is defined.
It is something I'd highly recommend trying for your language of choice.
This is something I have been trying to find the time to do.
Something like this is great to learn how the JVM actually works, and can improve the way you code Java. I always found it incredibly boring to read language/vm specs but building something like this makes the abstract and obscure, concrete (at least for a programmer's brain)
It's definitely totally fine to build these things for fun, but with a landing page like this, it seems like the author built it for some purpose beyond that, otherwise I don't see the point in presenting it in this form.
If the author wanted to learn _and_ get publicity, a blog post or at least including a "why" section that says "just for fun" on the landing page would seem suitable to me.
There probably is some interesting motivation for doing this, it's just not clear what it is.
So I have to wonder.... why? If I was you I would put the link to https://github.com/andrewromanenco/pyjvm/blob/master/WHY.md front and center. That's great that it was done for academic purposes but I didn't understand that from the main page.
That's an interesting take of the Python and Java relationship and although it complements well the landscape (with Jython, JPype, Pyjnius, and Py4J), I'm not sure what the need is.
(shameless plug warning) When I created Py4J (http://py4j.sourceforge.net/), I wanted to decouple the two ecosystems as much as possible so that both could evolve independently. There is no jni, no re-implementation of bytecode or interpreter, just plain sockets working on linux, mac, windows and most versions of Python and Java.
Does anyone make a JVM that can save its memory image in the style of Smalltalk and Lisp VMs? This would give a potential solution to the Clojure startup time problem. (There was a JVM on Smalltalk named Frost.)
And if I recall correctly Graal, the next generation Java JIT Oracle is working on is also working on Python support. By far not there yet but pretty cool to see them take their compiler efforts beyond Java.
Dead? Python 2.7 seems to be Good Enough(TM) for much of the industry titans that I don't think we'll ever see widespread Python 3.x adoption within the heavy-weights' infrastructure.
Python 2.7 is far from dead, and the changeover to Python 3 seems to be similar to Perl5->Perl6 -- or, more to the point, not happening at all.
>Short version: Python 2.x is legacy, Python 3.x is the present and future of the language
>Python 3.0 was released in 2008. [6 years ago] The final 2.x version 2.7 release came out in mid-2010 [4 years ago], with a statement of extended support for this end-of-life release. The 2.x branch will see no new major releases after that. 3.x is under active development and has already seen over four years of stable releases, including version 3.3 in 2012. The next release is the upcoming Python 3.4 in early 2014. This means that all recent standard library improvements, for example, are only available by default in Python 3.x.
Windows XP still seems to be Good Enough for the industry titans. (My desktop machine is still XP, due to move to win7 in the next few days, granted, but I'm typing this on XP)