So what's the point in taking away the good part, and keep the cumbersome one? If you just want to program a Synchronous server in the JVM,just stick to Java.
And if you want to program an asynchronous server on the JVM in Java, all of the major and minor servers also support an asynchronous model (you merely lose the ability to program against the Servlet API, which pre-3 was bound to threads).
There's no reason at all to bring JS in for asynchronous behavior.
You can run many different languages on it, all nicely contained within the virtual machine.
As far as I know Twitter replaced their Ruby/Rails with Code on top of the JVM for these reasons.
Also I don't think it's good to religiously stick to async/"just one thread" and sync/"one thread for everything". The most performant answer depends on the real world scenario and almost always lies somewhere in between.
I don't agree. The power of Node comes from being able to run the same code on the browser and the server (without transpiling performance penalties).
With something like Avatar-JS [1] you can even run some NodeJS apps without modifications on the JVM.
[1] https://github.com/purplejs/purplejs/search?utf8=%E2%9C%93&q...
I think there are just people who will never understand or fully grok the beauty, power and simplicity of functional programming and will always seek to replace it. I feel sorry for them.
As usual, @munificentbob explains it best: http://journal.stuffwithstuff.com/2015/02/01/what-color-is-y...
https://en.m.wikipedia.org/wiki/Day_of_the_Tentacle
https://images-na.ssl-images-amazon.com/images/I/514Q95XGV8L...
* jooby [1]
* Vert.x [2]
* Rapidoid (I can't find the exact link where JS was used) [3]
I'm just not entirely sure why you would trade a language that is generally much safer for one that is known to be problematic at scale particularly since Java 8 has lambdas so you can do callback async style if you like. I mean I suppose you could use typescript but at that point why not stick with Node and if you need JVM stuff just make some sort of microservice to access it from Node.
If it is a learning thing than (as Java is complicated) than Clojure is far better option (I'm always amazed how easy it is to learn any Lisp as syntax becomes a non issue).
[1]: http://jooby.org/
[2]: http://vertx.io/
https://discuss.enonic.com/t/purplejs-an-alternative-to-node...
That doesn't include the disconnect from the rest of the JS ecosystem which has centered around npm at this point (at least for the package repository itself, baring the yarn front end).
Once the docs are written... https://github.com/purplejs/purplejs/wiki/Embedding
purpleJS would be javascript bindings for some Java framework.
At least, that's my read of the project.
but maven repo is what you have out of the box which contains all (mostly) the libraries for java