|By Janice J. Heiss|
Steven G. Harris, Oracle's Senior VP of Application Server Development, who oversees product development for Java EE, gave a talk on January 24 at the International Oracle Users Group Community (IOUC) Summit. Harris, who for years worked at Oracle as the point person between Oracle and Sun Microsystems, and now runs the Java server development team, presented a clear and incisive overview of the state of the Java platform, the challenges it currently faces, and Oracle’s vision of Java’s future.
He identified recent changes since the 2010 JavaOne Conference, fleshed out and firmed up earlier Java roadmaps, and shared Oracle’s perspectives on the Java Community Process (JCP). Harris very candidly acknowledged that while JavaOne was successful in terms of content and continuity of purpose, the developer feedback on logistics and forums suggests that Oracle has significant room for improvement in those areas. He directly solicited feedback from attendees about JavaOne in an effort to understand how it could be improved, and he praised Java User Groups as a “real asset for Java developers across the world,” noting that JUGs had spawned such leading conferences as Devoxx.
Harris explained that Oracle’s overall strategy is to deliver a complete, open, integrated stack of hardware, infrastructure, database, middleware, and business applications. “The goal,” he said, “is to make hardware and software work together to provide better manageability, serviceability, and so on. So buy from us and you get more value for your money.” Harris explained that he wanted Java developers to understand Oracle’s larger scale motivation in making money. In the effort to creatively integrate and optimize hardware and software, he explained that Oracle strongly supports the open source Java community.
"We really want Java to be successful, so keeping Java open, and having developers working in Java is really critical to our success."
Senior VP of App Server Dev, Oracle
According to the Tiobe Community Programming Community Index, Java remains the world’s most popular programming language. Though Java has substantial distribution through the company, its language and platform work best in Oracle’s middleware organization. “All of our middleware -- when we talk about Fusion Middleware -- is written in Java,” Harris noted. “So here’s the message: If Java is not successful, we will fail. We really want Java to be successful, so keeping Java open, and having developers working in Java is really critical to our success.”
He pointed to the estimated 14 million Java developers in the world with some nine million using Java regularly during the work day. “One of the great things about Java overall is that if you learn the language, learn the platform and the libraries, then you have an incredible variety of deployment options and ways you can target the things you are developing -- whether for the enterprise, desktop, or mobile and embedded space.”
Harris remarked that Oracle is committed to making Java successful across the board and is strongly focused on growing the developer base and rate of adoption. He acknowledged that Java has been criticized as advancing too slowly and for overly cumbersome and bureaucratic processes. But he insisted that, “We are very committed to accelerating it and making Java more competitive, making it the kind of language you choose to develop with because of the advantages it gives you.”
He emphasized the need for Oracle to stay connected with the ways people are consuming, developing, and deploying Java-based applications in an effort to ensure that Java itself is in concert with those activities, not working against them. Oracle is working hard to figure out how to make this happen. “So,” observed Harris, “the communities are a huge part of this and not just open source communities -- the ones that Sun and now Oracle has been driving like OpenJDK, GlassFish, and so on -- but also communities like Eclipse and, yes, Apache, which are communities where Java work is done and driven, as well as independent types of frameworks, some of which are driven by private companies. They are all part of the overall ecosystem that makes us successful.”
Despite the challenges the JCP has faced in recent years, he insisted that the JCP is completely vital to Java’s success. “It has its flaws without a doubt and there is lots of politics involved,” Harris acknowledged, “but it is also without a doubt the best place for us all to sit at the table and argue over what we want to do with Java moving forward.”
Harris spoke of the JCP’s ability to evolve and self-heal and how it was once a Sun-driven organization that has now adapted to open source organizations and processes. “Over the coming year or two,” he predicted, “as the platform changes and people use and consume Java technologies in new ways, and as modularity enters the picture, we are going to have to change the way we think about and test compliance with the platform. All those discussions need to take place in the JCP.”
Harris praised the momentum of the OpenJDK, the open source project to deliver the JDK reference implementation, and he reminded attendees of Red Hat’s continued strong involvement. He characterized IBM’s entry into the OpenJDK as a major success and said, “IBM will be actively participating and working on the class library evolution with an OpenJDK. We, of course, continue to compete intensely in all other quarters and will have our own VM implementations, but for the class library work, we will join together to move forward in the OpenJDK.”
He spoke of the major themes of JDK 7, which included support for multiple languages with invokedynamic, enhanced developer productivity through small changes in Project Coin, NIO.2 and file system APIs, and concurrent programming and the Fork/Join framework, which is driven as a community effort by Doug Lea. He remarked that the convergence of HotSpot and JRockit is leading to improvements in performance and serviceability in things like the G1 garbage collector.
He distinguished two streams of development: Java SE 7, which was far along when Oracle took over, and Java SE 8, which will cover longer-range projects such as modularity and closures. Java SE 7 is feature-complete and Java SE 8 projects are just beginning to ramp up. He referenced the more than a billion desktops that utilize Java and characterized JavaFX as a major initiative for which Oracle is committed to making JavaFX UI controls available in open source.
He made note of the three billion handsets using Java and pointed out that Oracle is moving Java ME forward with Java ME.next. The goal is to get it up to speed with Java SE 6, integrate new Web technologies such as LWUIT, and develop APIs for technologies such as accelerometers and near-field detection.
“For the product roadmap,” Harris explained, “the Java Wireless Client [PDF] is the main vehicle to deliver for mobile devices. And we have the Java Embedded and Media Client, which is more oriented towards building special solutions for Blu-Ray and embedded devices like e-Book readers. All of these are supported by free developer products. So there is a Java ME SDK that combines the CDC and CLDC versions of the kits that existed before. And the Java Card SDK is packaged together in the NetBeans Mobility Kit, which makes it easier to access all of it.”
He noted that Java EE 5 is widely adopted. Java EE 6 has been out since December of 2009 with the initial GlassFish release. Since then, Java EE has seen rapid adoption across the board with JBoss announcing a JBoss AS 6 release, which is a profile-compliant version of Java EE. A variety of other players are proceeding with full compliance efforts.
“So Java EE 6 has been generally well received,” said Harris, “including its Web profile, which is aimed at being a standardization of the widest range of componentry that you need for developing Web-based apps. It also includes standardization in terms of POJO development, particularly on the dependency injection side. Java EE developers now have to write fewer classes, less XML, and a lot less code with Java EE 6. The developer community is very excited about it -- when they get their hands on it, they are finding that this stuff rocks.”
Currently, most of the Java EE 7 specifications have been initiated within the JCP, with the unanimous approval of the Executive Committee.
“GlassFish is strategic to Oracle,” said Harris. “It’s an open source project that is near and dear to our heart. What has taken place in the GlassFish community is a guide to how to behave with the open source community and how to work with developers generally. So we continue to focus on fast downloads, small size, and an OSGI-based micro kernel. We’ve done a lot of work internally at Oracle on sharing of modules.”
He heralded the GlassFish Server Open Source Edition 3.1, which recently launched, and praised not only its technical prowess, but the open source delivery process with its visible roadmap and the continuous availability of drops and feedback, just as was formerly done at Sun Microsystems.
Harris noted that GlassFish Server Open Source Edition is the best open source application server with support from Oracle and the open source platform of choice for lightweight Web applications. Oracle WebLogic Server is the best commercial application server for transactional Java EE applications and the platform of choice for standardization. Oracle’s Fusion Middleware and applications products are all based on Oracle WebLogic Server.
“It’s critically important that Java EE move forward with issues associated with cloud computing as a platform,” said Harris. “We are very committed to this.” A lot remains to be decided in this realm and the JCP will be central to reaching agreement. But he insisted, “We should probably all agree that pushing the platform forward on the cloud computing front is really important.”
He observed that Java EE today is focused on a single server with a set of defined roles as developer or container provider or deployer, and he asked some crucial questions: How do we deal with the data center as a whole? How do we deal with clusters of servers? How do we deploy to sets of servers and know that things will scale properly? How is the overall environment managed? How are things packaged and deployed? How do we deal with multi-tenancy or with application and versioning and isolation? Harris observed that modularity will be a key in addressing these questions.
He emphasized that with each Java SE release, there should be a Java EE release as well. So a big challenge will be making progress on Java EE 7 modularity. “How do we use the module system without it actually existing in the JDK until Java SE 8?” he asked. “I think it’s a tractable problem -- I am pretty optimistic that we will work through this. If we can use modularity effectively at the base, then we can more effectively deal with the challenges we have with cloud computing. Ideally, I would like to see a roadmap showing how this leads forward to Java EE 8 also. We don’t have to do this all at once, but we need to make progress.”
All in all, Harris offered a compelling and challenging vision of Oracle’s vision of Java -- one that left no doubt that a great deal of sweat and brains are being devoted to maintaining Java as the most popular, productive, and successful programming language in existence.
About the Author
Janice J. Heiss is the Java Acquisitions Editor at Oracle.