An Oracle blog about Java Technology

Project Avatar Update

Guest Author
Project Avatar began 3+ years ago as a client side JavaScript project in an effort to participate in and learn from the JavaScript community. With client-side JavaScript frameworks evolving at a rapid pace and leaders starting to separate from the “pack”, we leveraged our Middleware strength and added a server-side component. Project Avatar was released to the community at JavaOne 2013, and delivered an end-to-end JavaScript programming model who’s server-side component was aligned with Java EE compatible containers like GlassFish and WebLogic. Avatar.js, the Node.js compatible runtime, provided the ability to use Node libraries within Java EE compatible containers like GlassFish and WebLogic.

However, we ran into Node.js compatibility issues with this approach, performance issues (tuning for Java EE and Node in same VM), and the programming model we introduced achieved some limited interest in the Java EE community and the Node community. With that in mind we began work on what we call “Avatar 2.0”, which focused on Node compatibility and running in its own JVM, along with continued Java interoperability and Java EE-related interoperability like layering a JavaScript library on top of JPA.

What we began to find is that the services that were of interest have begun exposing functionality via RESTful APIs directly. For example, the Oracle Database Node.js Driver makes direct Java interoperability with Java EE for Node applications less interesting. Rather than trying to reinvent Avatar again, we have decided to put it on hold and let the market evolve a bit. We’ll continue to track the industry and re-evaluate down the road.

With that being said, we have learned a lot about JavaScript and Node.js in the process, and the Avatar work has been leveraged within Oracle more than meets the eye. For example, the early need for WebSockets within Avatar resulted in Tyrus, the WebSocket implementation in GlassFish and WebLogic today. The performance improvements Avatar really needed out of Nashorn have been delivered to Nashorn users within multiple JDK releases, including the forthcoming JDK 8 Update 40. Last, we realized just how important the Node.js community is. While Avatar is being put on hold, we are ramping up our investment in Node.js with the planned delivery of the Oracle Node Cloud Service in 2015, built on native Node.js. In addition, we do see a lot of tactical interest in using Nashorn within Java Applications, as described for example by InfoQ and Adam Bien.

We'd like to thank those who have provided us feedback throughout the life of Project Avatar. It has been very much appreciated and helped us us more than you know.

Avatar and Avatar.js project pages, along with the code and related binaries, will remain available for folks to learn from and leverage.

Join the discussion

Comments ( 1 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.