Oracle Proposes Removing Nashorn from Java ‘Because it’s hard.’
When Oracle purchased Sun Microsystems and thus took over custody of the Java programming language, many of us in the community were concerned that Oracle’s tendency towards side-tracking projects it didn’t find profitable would affect the venerable language.
In it’s latest lazy, bone-headed move, the decision to remove Nashorn from Java in JDK 11 should be a warning to all that the widely-used language is in peril.
Why?
Because: JavaScript For the Win!
Look, let’s be clear: Technology trends are moving towards functional languages like JavaScript, not away from. Next-generation languages like Go and platforms like NodeJS are clearly evidence for this trend. The Internet-of-Things (IoT) runs largely on these languages, and make extensive use of JavaScript. The rapidly emerging trend to use Artificial Intelligence, Machine Learning and Predictive Analytics all rely heavily on functional languages like JavaScript.
Again: why?
Because they are functional.
And when you’re talking about generating random forests quickly and on the fly, you really need a functional language like JavaScript.
So when Oracle originally deprecated Rhino and integrated Nashorn directly into the JVM, I was thrilled. Finally, the procedural limitations of a strictly-typed language like Java could be integrated with the loosely-typed, come-as-you-are functionality of JavaScript. It was a beautiful marriage, in my opinion: Java and JavaScript, living together in harmony. The marriage of these two opposites into the quasi-hybrid language that is Nashorn JavaScript was a truly visionary move, that appears to have been de-railed by bureaucrats and sloth.
In short: It’s a foolish move that will ultimately hurt the language. Java needs Nashorn to be able to compete with Next-gen languages. Without this evolution — which should be enhanced rather than side-lined — the language will wind up on the scrap heap with it’s forefathers, COBOL and FORTRAN, etc.
You remember those languages, right?