Nashorn works in real life
Tal Liron
tal.liron at threecrickets.com
Sun Oct 13 22:22:47 PDT 2013
More good news: Diligence now also works on Nashorn. It is a powerful,
scalable MonogDB-driven web framework:
http://threecrickets.com/diligence/
MongoVision, an Ext-JS-based front end for MongoDB, now also runs on
Nashorn:
http://code.google.com/p/mongo-vision/
To allow for this involved refactoring the MongoDB Rhino driver to now
be a MongoDB "JVM" driver that can support various JVM languages, with
the same for the extensible Rhino JSON dependency. It all works directly
with Nashorn internal objects for high-performance BSON/JSON
conversions. Here are the newly refactored projects, now with Nashorn
support:
http://code.google.com/p/mongodb-jvm/
http://code.google.com/p/json-jvm/
So, now the entire Three Crickets stack can be run on either Nashorn or
Rhino.
Phew! It's been a long week. And now March 2014 can't come soon enough.
On 10/10/2013 01:33 AM, Tal Liron wrote:
> After reporting various bugs and complaints on the list, I have some
> good news for a change. :)
>
> The complete Prudence stack, which includes a *lot* of JavaScript code
> developed for years to work in Rhino, now runs perfectly fine on
> Nashorn. (The exact same code base also works in Rhino.)
>
> Prudence is a powerful REST and web platform. With it, you can use
> JavaScript (as well as many other JVM languages) to write RESTful
> resources and dynamically generated, cached web pages.
>
> I hope this will allow you to test Nashorn performance in server-side
> environments, and to compare it with Rhino in this respect, too.
>
> Nashorn is now a fully supported language in Scripturian (an
> alternative to JSR-223), so any other applications that use
> Scripturian can also now leverage Nashorn. I should point out that
> Scripturian also works with the nashorn-backport project, so the whole
> stack can work on JVM 7.
>
> I did need some hacks:
>
> 1. I patched Nashorn for the "NPE in DebugLogger.levelAbove" bug I
> reported.
> 2. I patched mozilla_compat to support multiple arguments in
> importClass (again, as with the bug I reported).
> 3. I had to implement a rather ugly hack in Sincerity to deal with
> Nashorn's current inability to coerce string arrays (I actually do a
> string.split(",")...), and also moved a static method to become
> non-static for the sake of Nashorn's strictness. Sigh.
>
> (And also some other small JavaScript changes that work fine in Rhino,
> too.)
>
> I would also love for Diligence to run on Nashorn: Diligence is a
> full-blown server-side JavaScript web framework built on Prudence and
> MongoDB. However, this would require more work, because the
> JVM/JavaScript MongoDB driver I wrote is currently Rhino-specific. I
> will update you in the future on this progress, as it would allow for
> even more avenues for testing.
>
> Keep up the good work! And hopefully listen to my advice on how to
> move Nashorn forward: I speak from quite a bit of experience with
> dynamic languages on the JVM, and JavaScript especially.
>
> -Tal
More information about the nashorn-dev
mailing list