Nashorn works in real life
Jim Laskey (Oracle)
james.laskey at oracle.com
Mon Oct 14 02:11:38 PDT 2013
Three cheers.
Sent from Jim's iPhone
> On Oct 14, 2013, at 2:22 AM, Tal Liron <tal.liron at threecrickets.com> wrote:
>
> 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