Blog archive

Java at 20, Part 3: Q&A with JCP's Patrick Curran

More on This Topic:

Java turned 20 last week and I've been talking with Java mavens and industry watchers about the history and current state of the language and platform at the end of its second decade. I was especially glad to hear back from Patrick Curran, who has served as the chairman of the Java Community Process (JCP) since 2007. He worked at Sun for 15 years before that, where, among other things, he led the Java Conformance Engineering team in Sun's Client Software Group. That group was responsible for developing Technology Compatibility Kits (TCKs) for Java SE and Java ME. (There was a separate team for Java EE.)

When he was at Sun, Curran reported to Onno Kluyt, who was the previous chair of the JCP. "Onno wanted to move on to other things," Curran told me, "and he passed the job on to me."

The JCP, of course, is the standards-development organization for Java. That group has gone through some significant changes of its own since Oracle acquired Sun in 2010, including a multi-year effort to reform its governance and processes with such initiatives as JCP.next, and the merging of two JCP Executive Committees. The organization is now wrestling with the challenge of revising the Java Specification Participation Agreement (JSPA), which Curran has called "big and scary."

I talked with Curran via e-mail.

Waters: What has been the most significant change in the Java language and/or platform in the past 20 years?

Curran: I'd nominate the introduction of Generics in Java SE 5 as the most significant language change, since this enabled the creation of a type-safe collections framework. As for the platform, the use of annotations in Java EE 5 greatly simplified the programming model by eliminating the need for XML descriptor files. Looking forward, I believe that the introduction of modularity in Java SE 9 will also prove to be extremely significant, quite possibly in ways that we cannot currently predict.

Waters: The JCP is a little younger than Java itself, but it has seen some significant changes of its own since it was establishe -- in the past few years especially. You have told me that its core mission has remained intact, and that those changes were made to better fulfill that mission. But Java has come such a long way from its webby, applet-making origins to become an essential enterprise technology. I guess I'm wondering what it is about the JCP that has allowed it to continue supporting Java in all its forms.

Curran: The strength of the JCP is the fundamentally simple model of a group of interested experts defining specifications through a formal process that includes public review and oversight by an Executive Committee (EC). The process has always been flexible enough not to define exactly how the Expert Groups should do their work. This has permitted a natural evolution (with a little help and direction from the EC in the form of revisions to the Process) from the early days of relatively private deliberations by representatives of large corporations to the current, much more open and collaborative model. It's a Community Process, and that's its strength.

Waters: What is it about Java, the language, that has allowed it to evolve and thrive all these years?

Curran: Its simplicity, ubiquity -- thanks to the wide availability of virtual machines -- and its compatibility (Write Once Run Anywhere).

Waters: How important was the development of the Java platform?

Curran: It's difficult to over-estimate the importance of the Java platform. Basing it on the Java Virtual Machine, which could be (relatively) easily ported to different hardware and OS environments, made it possible for the first time to develop applications that, in turn, would run in all of those environments. Before Java, it was difficult if not impossible to port programs between environments. Now it's no longer necessary, and we can run identical programs on everything, from the smallest embedded processor to the largest supercomputer or cluster.

Waters: I know this is tricky, but who, besides James Gosling, makes your list of the most important figures in the evolution of Java?

Curran: Rather than call out a small number of people I'd prefer to recognize the very large number, many of them anonymous or certainly not well-known, who have helped to make Java what it is today through their participation in the JCP and in open-source development projects. Java has been successful precisely because of the collaborative way in which it has been developed. James Gosling started it, but it's the community that has developed it and made it successful.

Posted by John K. Waters on May 29, 2015