Java at 20: Its successes, failures, and future
InfoWorld: Oracle has been in charge of Java for not quite five and a half years. What does the 20th anniversary of Java mean for Oracle
Saab: We've tried to shepherd things along and make sure the community continues to be vibrant and engaged and moving the technology forward. Oracle as a company, of course, is a huge user of Java, so we're quite pleased to be celebrating this milestone and for Java to be where it is as we're reaching the 20-years-young mark and looking forward to the next 20 years.
Java's major milestones
InfoWorld: What do you see as the major milestones in Java's 20 years of existence
Saab: You can go back and look at the different major releases that have come out, and you can see early on a period of starting out with a vision of Java and what it could be and, of course, prior to the initial release that was sort of a technology [envisioned] as something that could be used in set-top boxes and other kinds of embedded devices.
In its fledgling period, the class library and so on were fairly small and were really getting built out, so it was popular as the Web was starting to take off with how it could be used, for instance, in the browser.
From the initial maturation and expansion of the libraries into the form it is today, really the largest release from that perspective was 1.2. Then I think the introduction of EE [Enterprise Edition], which was quite a big milestone.
Where Java is heading
InfoWorld: What's coming up for Java We had functional programming capabilities in Java 8, and you have modularity in Java 9. Is there a road map for Java that we haven't already heard about
Saab: You can go and look at the OpenJDK JEP (JDK Enhancement Proposal) process page, and that lists all of the [proposals] out there with ideas that are being discussed.
A few of the JEPs that have been proposed are around the major area of better layout for Java object in memory. Basically, there's a very interesting project called Valhalla, which is looking at value type for Java. This is essentially doing something that is in between Java primitive and Java object.
InfoWorld: What else might we look forward to in Java in upcoming years
Saab: Another area that looks very promising is a new version of the Java Native Interface, which allows for being able to share data structures between Java and native code [such as C or C++] and basically making it simpler and easier to call in between different languages.
InfoWorld: Where do you see Java in five years or 10 years or maybe even 20 years
Saab: We're certainly excited about where things are going in terms of the Internet of things. Java has a lot to offer there in helping to take a fairly fragmented space and making it simpler for developers to begin to explore. In many ways, some of the challenges that exist there today are similar or even more so than the environment that Java initially came into and became popular in.
We have the added challenge in that space of end-to-end systems, where you have a device, you may have a gateway, then you have some kind of back-end cloud service to deal with all this, and Java is one of the few technologies that can quite gracefully span all the way across this environment and promise a single solution that is really easy for people to get into.
Java's biggest disappointments
InfoWorld: What would you say are the biggest disappointments of Java over the past 20 years
Saab: There was quite a challenging period there after JDK 6, where it took quite a long time until we got to the point of doing Java 7 and so on. To some extent, that can be explained by some of the economic challenges that we were going through at the time but also because there was quite a good deal of time and attention being paid to taking the code base for the JDK and opening it up and forming OpenJDK.
It was disappointing in the sense that it took a long for the next major release to come out, but at the end of the day, that's part of what resulted in the OpenJDK community that we have today and dedicated 7 and 8 coming out as they did.
InfoWorld: Oracle has had a lot of issues with security in Java. Does Oracle have that under control or is it still a big problem
Saab: Security is something that we always take seriously, and it's something that you need to remain ever-vigilant about. I think that we've done a good job investing in both our capability in dealing with issues that come up but also in addressing things proactively, making sure we have good processes in place so that new features we develop are reviewed from a security standpoint and are as good as they can be as they come out.
We are also trying to make sure that the facilities are there for people who are developing in Java to have APIs that, if they use them, can help make sure their applications are secure.
If you look at our track record of delivering security in the quarterly critical patch update releases, they contain significant numbers of fixes, and in recent releases, that number has been going down -- not because we're doing less work in this area, but because we've worked through a significant number of issues.
How Java fits with other languages
InfoWorld: How does Java stack up against some of the trendier languages coming out -- JavaScript or Google Go or Dart or some of the others There are a lot of languages on the JVM itself. How is Java going to win the hearts of developers, given all the choices they have in languages
Saab: We are in favor of there being a lot of languages. One thing that's good to remember is that we're the stewards of the language that has the greatest use, the largest number of actually active applications in use. We have a great deal of responsibility. It would be irresponsible for us to go out and experiment with stuff that isn't necessarily going to work well. It's appropriate for Java not to be the one that's on the bleeding edge of trying a bunch of different things.
Rather, we are charting a course that makes sure that new advances and new techniques are made available to an extremely broad set of users after having taken the time to make sure that we're doing it in a way that is elegant, is easy to understand, is easy to use, that's going to be able to be done in a way that performs and is scalable. We've seen a few such cases, for instance with lambdas in Java 8.
Of course we're always very happy to see [languages] running on the JVM, and I think there's a lot of good dialog among people working on many of these languages, so that's pretty exciting to see.