Oracle prepping its Nashorn JavaScript engine

05.10.2011
Oracle's Project Nashorn is focused on developing a JavaScript engine for the company's JVM (Java Virtual Machine) that is intended to leverage JVM libraries and offer higher performance than the current Rhino JavaScript engine, a company official said on Wednesday.

Pronounced naz-horn, the engine is planned for inclusion in the Java SE (Standard Edition) 8 in 2013. Jim Laskey, from Oracle's Java platform group, said the company wants to leverage scripting in the JVM and take advantage of JVM libraries for capabilities like database access. He presented on Project Nashorn at the JavaOne conference in San Francisco.

"We want to use scripting because of its dynamic style," and to bring developers over to the JVM, Laskey said. Oracle wants to leverage JavaScript because it is suitable for different types of applications and because it is in the best interest of the JVM to support multiple languages. The company envisions that Nashorn would be initially for server-side scripting.

Rather than simply modify the Rhino JavaScript engine now shipping with the Java Development Kit, Oracle opted to start its own faster JavaScript engine, based on the ECMAScript 262 standard. "It was written from scratch," said Laskey. Nashorn performance is three to five times faster and the engine is five times smaller than Rhino. "One of the problems with using Rhino is it's considerably slower than a lot of the current JavaScripts that are out there."

Nashorn is built on top of Java and takes advantage of standard Java security measures. Fine-grained security is enabled within applications. Also, Nashorn uses Java's InvokeDynamic capabilities for method invocation. "We use InvokeDynamic wherever we call a site," Laskey said. Additionally, Laskey noted that Nashorn tries to maintain a thin layer between Java and JavaScript because "we don't want to do a lot of conversions of data types." Potentially, Nashorn could support data binding and multithreading.