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

Reply via email to