> <i>The Vereenigde Oostindische Compagnie (VOC), or Dutch East India Company, is often considered the be the world's first multinational corporation. ...</i><p>Ah, trivia time! The VOC also had the world's first entirely privatized army. The "monopoly" cited in the README basically included a license to kill. Think "Google Armed Forces", but then scarier. The army was mostly used to keep a grumpy unpaid workforce "motivated", to keep the spice coming, and thus to keep that lovely 18% annual dividend payout reality.<p>Basically, the VOC made current evil multinational corps (e.g. the oil companies, monsanto, blackwater, etc) look like cute cuddly charities.<p>That said, it's been centuries, not sure getting worked up about the name makes sense now. It's a compiler, not a guidebook about how to traffic humans. I just thought the README section made the VOC seem a "little" awesomer than they were.
So well, one interesting question as to why this is at the top of hackernews is - do people not know about jython? Jython does exactly that - it compiles python into java (I think it emits bytecode and not Java source, but don't call me on that) with a lot of runtime so it can support proper semantics. It has been around for over a decade now too and it supports full python (with usual caveats)
How are the differences in the execution model handled? The defining quality of Python execution is that anything can monkey-patch anything at any time, using "setattr()". This means the obvious implementation has dictionaries for everything, and optimizers, as in PyPi have to work very, very hard.<p>So what did they do here? Is every object a dictionary to the Java runtime? That's easy enough to do, but no gain over CPython. Did they weaken the ability to modify objects so they could map to Java objects? That gets a performance win, as with Shed Skin, but a lot of Python code won't work. They're probably not doing all the stuff PyPi does; that's hard and took a decade of work by many people.
This can be very useful. I wonder what the plans are for supporting C apis, given that a lot of Python core libraries depend on C, in my neck of the woods numpy and scipy being the first contenders. There are long running projects <a href="http://www.jython.org" rel="nofollow">http://www.jython.org</a> and <a href="http://www.jyni.org" rel="nofollow">http://www.jyni.org</a>, which, to the best of my knowledge, have not yet managed to fully support Python C extensions on the JVM.
They also have an in-browser bytecode runner: <a href="https://github.com/pybee/batavia" rel="nofollow">https://github.com/pybee/batavia</a>
Can someone give a valid reason for wanting this? I'm kind of confused as to why mixing and matching python and java source with some central compiler would be useful.