

BicaVM: A JVM in JavaScript - arturventura
https://github.com/nurv/BicaVM

======
robterrell
A few years ago I found the Orto javascript runtime impressive. Seems more
complete than BicaVM.

<http://ejohn.org/blog/running-java-in-javascript/>

Edit: Seems to be missing from the web. I'm pushing my local copy to github:

<https://github.com/robterrell/orto>

~~~
vog
That github page says: "Nothing to see here yet. Move along." Are you sure you
really uploaded it?

~~~
robterrell
I trusted the damn GitHub desktop app to do the work... and it's still
spinning in that window. Damn GUIs. I've now committed it from the console.

------
struppi
wow, atwood's law at work :) [http://www.codinghorror.com/blog/2009/08/all-
programming-is-...](http://www.codinghorror.com/blog/2009/08/all-programming-
is-web-programming.html)

~~~
oinksoft
Do we have to hear this every time somebody recreates something in JavaScript?

~~~
struppi
Yes? ;)

No, sorry. I guess it really was a redundant response. Anyway, _I_ used this
reference for the first time. I said it because I think a JVM written in JS is
remarkable - This is something I would not have expected anyone to do. Not at
all. Yet, technically, it was predicted by said law.

------
_delirium
I wonder if JVM bytecode would be a viable alternative intermediate language
for compilation-to-javascript, as compared to the LLVM IR that projects like
Emscripten use.

~~~
ConstantineXVI
We tried this before. The JVM lost.

~~~
_delirium
I'm not sure I expect a "real" JVM to end up back in the browser, but everyone
these days _does_ seem to be trying to compile everything else to JS by hook
or by crook, so anything that serves as a halfway plausible IR for that is
interesting. The LLVM IR, for example, is used more or less because it was the
least-bad option, not because it's _great_ for the job (the Emscripten list
has a lot of discussion of how not-really-platform-independent it is).

------
king_magic
It's technically impressive, but I cannot see any real world application. A
native Java runtime is heavily, heavily optimized for performance. Why would
you run Java code through an interpreted/JITed JavaScript environment?

However - I can appreciate the technical challenge :)

------
devongovett
As always, here is my perspective on Badass JS:
[http://badassjs.com/post/12648021003/bicavm-a-jvm-
implementa...](http://badassjs.com/post/12648021003/bicavm-a-jvm-
implementation-in-javascript) :)

------
yatsyk
applets 2.0 :)

------
nickand
This is backwards. It should be JavaScript syntax driving the JVM. Because
Scala and Groovy are way to small for anyone to care, but the JVM is an
awesome way for people to write play-anywhere applications. Java is one of
those languages that could have been dynamically typed from the beginning, but
they chose to force us to be static to be academic (or something...). People
can do a lot more in JavaScript than in Java FASTER. Make a version of
JavaScript that drives the JVM and you win. Perhaps you can even use one of
the current ECMA Standards. They probably already have some 'make window'
syntax defined somewhere.

If this project already exists please let me know. I have tons of uses for it.
Thanks.

~~~
kodablah
Oracle announced Nashorn recently that is not yet open sourced, but should be
released for Java 8 and compile to bytecode (w/ the help of invokedynamic)

~~~
nickand
Probably the most promising answer, but it looks like for now the only safe
bet is writing straight up java.

