Java: The long journey
Brian Goetz rallies army of nine million Java wizards at JAX 2014 keynote, earmarking arrays and Value Types as burning issues.
Back in 1995 when Java first came to life, Fortran and C were the undisputed language giants. The youthful Java differentiated itself as a “blue collar” language, as opposed to these “ivory tower” behemoths.
The tactic proved successful, and steadily, a blend of both ‘risky’ and conservative features found their way into the language during this era. Things like garbage collection and JIT, which though theoretically useful, had yet to be properly implemented in the real world. James Gosling noted wryly that, whilst these were things customers were crying out for, they were also features that made them fearful.
Regardless, Java has gone on to become a force to be reckoned with, with Goetz proudly declaring that one of the best things about his job is having “nine million wizards” working with him for the continued betterment of the language.
As of 2014, along with a veritable nation of users (roughly analogous to Sweden in terms of population and GDP, as Goetz noted), there are about three billion units running Java. But whilst this represents an incredible testament to the strength of the platform, it’s also a poignant daily reminder to him and his team of the huge weight of responsibility that they carry.
Factors such as compatibility, security (as users will be well aware), as well the necessity of consistently generating productive code are at the forefront of these concerns. There’s also the fact that Java doesn’t exist in a vacuum, and now more than ever, there’s a need to respond to changes in the markets as they happen. Adapting to issues such as hardware shifts and demographic fluctuations are all a part and parcel of the considerable challenges the team face.
“Reading code is more important than writing code” Java core language principles, Brian Goetz #jaxcon — T. Martin Wenzel (@gangoffive) May 13, 2014
Goetz then moved on to looking at Java 8, which put readability into the core of its design. This makes sense when you think that, in the most critical moments of a developer’s workflow (such as looking for a bug or similar gremlin in the system) nothing is more frustrating than incomprehensible code. This undermines productivity, and ultimately, the success of the developer.
It was this emphasis on developer productivity that led to the introduction of features such as lambas, method references, and the java.util-stream package. Although lambdas have brought an aspect of functional programming to Java, Goetz joked that the “F word” remained a taboo in Oracle Towers.
To close, Goetz laid out the future plans for Java. Although Java 8 was widely lauded as a huge leap forward for the language, there’s still work to be done. Pain points with things such as arrays continue to irk users, although there was no mention of the big bad modularity issues.Along with solving these problems, Goetz revealed that the next big goal on the agenda is Value Types. Although there are issues to solve, the pressure on the team to fix them is ample proof of the immense energy bubbling within the Javasphere. From a grim prognosis in its last days at Sun to the excitement around Java 8 five years on, the renaissance is well underway – even if the masterpiece remains to be completed.