Java Spotlight -001



[music]
Roger Brinkley: Welcome to the first edition of the Java Spotlight podcast. I'm Roger Brinkley.
Terrence Barr: And I'm Terrence Barr.
Roger: And in this edition of the podcast we'll do a quick introduction about what this podcast is about. We'll do a new segment with our Java all-stars, and we'll do a feature interview with Mark Reinhold, who's the Java chief architect, and then finish up with a what's cool section. So Terrence, we're kind of a little bit back in the saddle again, doing podcasts, but kind of expanding that a little bit beyond for what we were doing before in the mobile space.
Terrence: That's right. We're now in a team with a bunch of the new Oracle Java evangelists, and we thought we'd out-level the podcast and talk about Java news in general -- server side, desktop, the Java platform, and of course mobile and embedded. So here we are.
Roger: So one of the things that we're going to do, Terrence, as we move into this new segment is we're going to bring in some Java all-stars to further discuss some of the new that's going on, provide some expert input in there. One of those is Alexis Moussine-Pouchkine and also Dalibor Topic.
Dalibor Topic: Hi Roger. Hi Terrence. I'm Dalibor Topic and I've worked for Oracle as a Java free and open source software ambassador in wonderful but rainy Hamburg in Germany. In fact it means a lot of work on OpenJDK, on the community there and get around and travel the world, to the conferences, and do fascinating things with fascinating people.
Alexis Moussine-Pouchkine: I'm Alexis Moussine-Pouchkine. I work at Oracle as a Java EE evangelist. I'm part of the GlassFish team. I happen to be based in Paris, France, and I do travel to a number of conferences as well and try to present both the technology and GlassFish as an open source application server and gather as much feedback as possible.
Roger: So let's start with the news of the week, a Java SE update 6u22. So Dalibor, this is kind of in your area.
Dalibor: Right. So last week there was a big new release, Java SE six update 22. It's, as every other release, it will be for Windows and Solaris and Linux simultaneously. This is one that I think you want to pay a bit of attention to because if you look at the release notes, it contains a bunch of updates -- like it updates the time zone data to the latest time zone data base version. But it also fixes security issues, and it contains the fix for transport layer security, or TLS, man-in-the-middle renegotiation issue. So this is something that I think you really want to make sure you install. Apple is also updated, so they're released on the Mac. And of course, the fixes have been provided to the OpenJDK Community. Your less segregation who do OpenJDK will also by now have provided up to date packages.
If you look into our links you'll find release notes for this release describing what exactly has changed, and you can look up what sort of issues were there. You can find the link to a post that explains when the Oracle Java SE and Java for Business critical patch updates will be released for the coming releases. The next one is due on the 15th of February in 2011.
Roger: Also in addition to that, you've also got some updates that... You've got prerelease builds for the very next release that's coming up for 6u23 as well, right?
Dalibor: Indeed. So if you really want to live on the bleeding edge and want to try out six update 23, the prerelease build 03 just came out on October 22. So you can get it on the JDK six prerelease download site -- again, for windows, for Linux and Solaris. You can try the binaries, and of course if something breaks please make sure to tell us before we release the final update.
Roger: So one of the interesting things that happened, Dalibor, since we've come back from JavaOne is IBM and OpenJDK.
Dalibor: Right, Roger. So if you are reading the blogs, and if you have read the press releases, Oracle and IBM have announced that they're going to collaborate on OpenJDK. You can find the link to the press release. There was a joint press release between Oracle and IBM. You can find links to blog posts from Mark Reinhold and Henrik Stahl describing the technical and operational aspects of this. If you're interested in general feedback, you can find my own blog which collects some of the comments from IBM developers and engineers and some of the comments from Oracle's side. I think this is a very exciting development for OpenJDK, and I'm very enthusiastic about this coming forward.
You know, back at my first job I won as an OpenJDK distributor, which was back in 2007, I was getting questions of the kind whether Red Hat would participate in OpenJDK, or IBM, or BEA, or Oracle. Fast forward for about three ½ years and here we are. The answer is loud and clear - yes, of course, all of the above would.
Roger: There were some really key announcements that came out of the JavaOne. Alexis, on the EE side, what did you think were some of the major pieces that came out?
Alexis: The first one I'd like to talk about isn't really about JavaOne, it's actually about the Oracle OpenWorld. I know people have mixed feelings about how JavaOne went as being part of OpenWorld, but the big announcement there was something called Exologic, which was dubbed as being a cloud in a box. I think it could be better described as maybe an elastic infrastructure with WebLogic processing power and the Coherence caching technology coupled with it and lots and lots of new hardware, software optimization -- and all of that in a box, in a machine if you will. While this is not really technology or Java directly and more of a product thing, I think it feels kind of good to have the number one announcement at Oracle OpenWorld to be about a middleware machine. I thought that was a very significant announcement.
I think the second one isn't really an announcement per se, it was the overall commitment of Oracle to Glassfish. I get that question still on a very regular basis. Is Oracle serious about Glassfish? What is the future of GlassFish? So I think while this was the first JavaOne conference ran by Oracle, it was probably the one that had the most GlassFish coverage.
Not only is Oracle keeping it around, it has announced that GlassFish 3.1, the fully clustered version, was feature complete and due out very soon. Milestone six is out. So go to glassfish.org and try it out for your favorite application with clustering enabled. Also HK2, the GlassFish kernel, which is really an abstraction layer above the OSGi framework GlassFish uses, will be in the next version of WebLogic. So that's yet another example of a shared component between the two stacks. If anyone was still wondering about the future of GlassFish, I think it should be clear by now that it's a bright future.
So Exalogic, commitment to GlassFish from Oracle. We also had discussion about Java EE, the technology. There was a good panel, I think, with all the major app server vendors as well as independent consultants. It seems that every vendor is working very hard on their Java EE six certification, which I think is very good for the adoption of the technology. It only came out a few months ago, or less than a year ago, and for developers in general because choice is always good.
So Java EE six adoption is good. We've already started talking about Java EE 7, but don't want to spend too much time on that one. It's mainly about the cloud, modularity, provisioning, the ability to move stuff around, applications data, and obviously following the latest technology trends such as HTML5 and WebSockets.
So that would be my three main things about JavaOne - Exalogic, commitment to GlassFish, and the momentum behind Java EE 6. I think that's a first statement there.
Roger: So Terrence, on the Mobile side, there were some pretty good announcements that came out of there, especially with some of the state and where Mobile had been. What did you take away from JavaOne on the Mobile side?
Terrence: It was good to see the level of attention that Mobile and Embedded Java got at JavaOne. Thomas Kurian, who is executive vice president of product development at Oracle, did a keynote, a very technical keynote, at JavaOne - spoke in depth about the Java platform and Java EE and Java SE and also spent a couple of minutes on Mobile and Embedded Java. He made a few announcements that I think are worth going through in a little bit of detail here. First of all, he definitely made it clear that Oracle is committed to moving Mobile and Embedded Java forward as a platform, as a technology. There were a couple of pieces in that that he spoke about. One is what's called the project Java ME.Next. What that really is is an upgrade to the underlying platform, the CDC platform, the connected device configuration, as well as the CLDC, or the connected limited device configuration platform.
So the platforms that are subsets of Java SE, of the standard desktop Java platform, have found widespread use in billions and billions of devices - in smartcards and cell phones and so on. One of the problems with these two platforms has been historically that because they were subsets of Java SE, there was a gap between developing for those platforms versus developing for standard desktop Java, and sort of the Java platform that everybody is familiar with. In fact, Oracle is committed to upgrading the CDC and the CLDC platform in terms of some of the language features, VM features, libraries, and things like that. So that's very good news.
Another component of what Thomas announced was to drive the integration of Mobile and Embedded Java and web technologies forward. So also historically there's been a gap, and Mobile and Embedded Java hasn't really integrated well with the web technologies such as HTML and CSS and JavaScript and so on.
What's planned is a roadmap of steps where developers can integrate and consume and leverage more and more web technologies going forward -- be it XHTML content, be it content in the form of JSR 290, the XML Web Integration API, or a tightly integrated Java ME and Web Runtime system where you're able to create Java applications, web applications, widgets, and also blended applications where you run both models, Java, Java Script and other technologies all on one stack. And the Runtime can manage that - so very interesting things going forward.
A couple of other points that he spoke about was additional services and access to device APIs across different hardware and operating system features. So that allows developers to build even more integrated and deeper applications, more feature rich applications. Going forward and optimizing some of the platforms - phone platforms, TV platforms, Java Card platforms with accelerated and more performance VM implementations targeted for specific application segments. So that's moving forward.
Then overall, also on the Embedded Java space, so not just for the Mobile side but Embedded Java - you know, that can be found in ATM machines and in industrial control environments and so on -- an increased investment in that area. There are a number of new products and platforms that are supported in Embedded Java. Oracle is driving that forward as well.
I think overall you could definitely see that oracle understands how important this part of the market is and that they're committed to not only driving the platform forward but making the investment, coming out with new products. So I think we should stay tuned to that.
Roger: Before we go into our feature interview, I just want to remind everybody of some dates and events that are coming up here pretty soon. In New York City, Developer Days - November 4. Then there's also a J-Fall in the Netherlands on November 3. Terrence, you and I are going to be in New York City. Dalibor and Alexis, are you guys going to either one of these events?
Dalibor: I'm actually going to J-Fall, yes. This is on the 3rd, so the day right before.
Roger: So a great opportunity to meet up with some of us. I know that... I think Arun Gupta is going to New York City, Developer Days. I think also Angela is going to be there with us as well. If you're in that particular area, it's a great chance to meet up with some of us as developers and get some good content as well. Let's turn our attention now to the feature segment. When we were at JavaOne I had an opportunity to speak with Mark Reinhold, who is the chief architect of the Java platform. Let's just move directly into that interview.

[recorded interview begins]
Roger: So a couple weeks ago, you sent out an email that said, "OK guys, you have plan A and you have plan B."
Mark Reinhold: Choose one.
Roger: Choose one.
Mark: Yeah.
Roger: OK, so I guess the first question is, we can talk about what was in plan A and plan B, and I think the second point is, why even ask the question?
Mark: The high-level summary of the choice here is, after getting through the whole Sun integration into Oracle process, we sat down and looked at, well, what should we do about 7? After doing a careful analysis of what remained to be done, when everything was in the final Sun plan for 7, our best estimate was that we could finish it and ship it in mid-2012. And that's not a very happy answer, frankly. So we looked again, and noticed, as many other people have, that well, actually, a lot of the features on the seven list are finished or pretty close to finished. So we separated things out into two buckets, and looked at that and oh, well, if we go with the stuff that's finished or almost finished in 7, we think we could ship that middle of next year, 2011, and then do it quick as the eighth release in late 2012, let's plan to have the stuff that can't be in 7. The principle things there are Project Lambda, closures, Project Jigsaw, modularization, and a few of the small features not done in 7. Now, I'm sure a few other small things will peep into 8, but that's the notion for plan B.
So is it plan A, wait a couple more years to get everything? Or plan B, take what we have now, stabilize it, ship it, and in parallel work on getting eight done as a very quick release after 7. So that was the basic choice.
Roger: And the decision is now to go with Plan B.
Mark: The plan of record is now Plan B.
Roger: I guess the question is, why even ask? Why go out to the community and say - why not just the big bad ogre will come out and say, "We're doing Plan B"?
Mark: It's important to Oracle's business that the Java community continue to be a vibrant place, that the Java technology continue to be something that evolves and moves forward and just gets better and better. In order to do that, it's understood that we need to engage with the community. This is not, as it may often seemed to be the case with some, it's not an altruistic act. It's important to Oracle's business that Java remain vibrant. In order to do that, you need to engage with the developer community. It's actually pretty simple logic when you look at it.
Roger: Modularization is something -- the Jigsaw Project, was something that you were directing, as I remember. Is that correct?
Mark: Yeah. That's correct.
Roger: Tell me about how difficult it was to sit there and go, "That's not on the table for JDK 7." Was that a hard decision?
Mark: No, not at all. It was a relief. Modularizing a large, existing code base, defining a model system that will hit the sweet spot for most Java developers while also making hard things like modularizing the JDK possible, is a very tough, also fascinating, design problem.
Roger: Right. But it gives your more time, also, to be able to do that correctly.
Mark: We can do it right. It is a tough problem. We don't want to screw it up. And I think the same pretty much goes for Lambda.
Roger: The other part of this process of what's happening is that, obviously Oracle had a product that when they bought BEA, the JRocket, and a very good JVM was associated with that. You're not going to have two competing JVMs, so now you guys are looking at the merging of those two.
Mark: Yes.
Roger: How is that process going?
Mark: That's been interesting. We actually started doing some planning around that even before the acquisition closed, which was when I went up to Stockholm a year ago to meet with the JRocket team. And they're very sharp engineers in that team. After doing a bunch of analysis, thinking about future directions for the product and for related products at Oracle that we'll build on top of the VM, our conclusion was that we had to merge them. For a little while there was a idea of underground [indecipherable 0:10:39] where we could build something from scratch and it would be so much better. It might be fun to do, but not effective from a business perspective.
So then the choice came, which codebase do we start with? Do we start with HotSpot and add JRocket stuff to it? Or do we start with JRocket and add HotSpot stuff to it? Because they are fairly different VMs. JRocket is written in C and HotSpot is written in a subset of C++.
HotSpot is very good at dealing with both client and server scenarios. JRocket is primarily aimed at server scenarios, and also has far, far better diagnosibility and serviceability features. JRocket Mission Control, Flight Recorder are just absolutely stunning tools to have at your disposal if you're doing production deployments.
So which codebase? They're both really high quality codebases. Essentially, what it came down to was the combined VM team, a lot more people know HotSpot codebase than the JRocket codebase. So fairly simple developer economics. That's what we're going to do.
So over time, you'll see features from JRocket be ported over to the HotSpot codebase. When all that will be complete, I can't say that we have some concrete date in 12 months that we're shooting for or something. There's a lot of work involved.
Roger: So there will be some code that's going to go into JDK 7, into the JVM, from the JRocket code. But certainly not everything, and there'll be other things that will be incorporated in the future over time.
Mark: Yeah. The main thing we're trying to do right now is get the Mission control stuff into HotSpot. I don't know exactly when that will show up. I know that some engineering builds are available for developers to test right now of that feature. But when that will show up in a production HotSpot, I don't know yet.
Roger: So we're talking about JDK 7. It's going to go out there. Obviously we have a JCP process. Are the intentions to move JDK seven through the JCP process?
Mark: Yep. We will submit an SE seven JSR. We will an SE eight JSR not long after that, since those two efforts will proceed largely in parallel. And also we need JSRs for project COIN, the small language changes. A JSR for project Lambda.
Roger: The JDK seven JSR is really an umbrella JSR.
Mark: Right. It's called umbrella platform JSR is JCP parlance. So as a JSR, it formally requests a specification, but that specification is actually not much more than a list of component JSRs and other stuff that's in the release.
Roger: So that's why we would have a separate JSR for COIN and a separate JSR for Lambda going forward there.
Mark: Right. The SE seven JSR would also include the other JSRs which have been in flight for a very long time. Like 292, which is in both Dynamic and 203, the second part of new I/O.
Roger: Part of the questions that have come up on a variety of mailing lists have been like, "Well, we have no idea what's in JDK 7. We have no idea what's really going to be there." You guys are still remaining committed to Open JDK.
Mark: Absolutely.
Roger: And so would it be a brazen assumption or would it be a correct assumption that what they're seeing in Open JDK is a leading indicator of what's going to be coming in JDK 7?
Mark: That would absolutely be correct. Today, if you go to the JDK seven project pages on openjdk.java.net, you can find the committed feature list. It's there. I updated it a few days ago. That's what'll be there.
Roger: That's a good pointer for people to move forward with, and know where they're working on and what's going to be there.
Mark: That URL again, ladies and gentlemen: openjdk.java.net/projects/jdk7, all lower case.
Roger: OK. Open JDK itself, I was down in Brazil in August, and the Brazilians came up with Open JDK manifesto for the government.
Mark: Yeah, I heard about that.
Roger: Primary intended to send a direction back to Oracle, at least. But then also to set a direction for their government, saying we're going to work with Open JDK. So my reading of the tea leaves is Open JDK is safe. We're going to continue with the GPL Class Path License. GPL v2 Class Path License. And that they're going to be on a solid footing as far as things are moving forward.
Mark: That's the plan.
Roger: I'm kind of excited about that because not only is the government saying, "We're going to use Open JDK, we're committed to using Open JDK, we're not necessarily committed to going to a proprietary route but an open source route." But then they're also backing that up with some resources. That's got to be something that you look forward to as well in the development process.
Mark: Absolutely. Help is always good. Contributions, new contributors? Absolutely open to it.
Roger: Of course, there is a development process that's in place for the OpenJDK as far as if you want to make changes, you want to make submissions. There's a whole process that people follow to...
Mark: Right. Well, OpenJDK is, it's a community with a whole collection of projects.
Roger: Right.
Mark: It's up to particular projects, you know, their founders, to decide how to manage things, but in the case of JDK seven and soon JDK 8, yeah, there is a non-trivial process to go through. But it's a critical thing, because that's how we maintain [indecipherable 0:16:14] .
Roger: Yeah, I haven't done OpenJDK for a long time. So it's more than just the core platform there, as far as the project goes. How many projects do you guys have in the OpenJDK space?
Mark: I haven't looked in a while. It's 20, 30.
Roger: The idea behind those, these are really projects that are related to the core of JDK, they're not necessarily application projects that lay on top of OpenJDK.
Mark: Correct. Yeah, OpenJDK as a project community is not intended to be a place for just, random, interesting Java applications and libraries.
Roger: Right.
Mark: The intent is to have projects that are about moving the platform forward, whether they're ports to other operating systems like BSD or interesting niche ones like Haiku or something.
Roger: Right.
Mark: Or new work that is intended to eventually be part of the platform, or proposed to be part of the platform. That's where those things could happen.
Roger: So there's been some new management that's come in. You were telling a story about Thomas, about his depth and breadth. One of the things that was impressed - both Terrence and I when we were listening to his keynote was his level and breadth of knowledge and his depth of knowledge about what's going on.
Mark: Yeah. Thomas is a very sharp fellow.
Roger: Yeah. It's nice in the new system to have somebody at that level that has that level of insight and that is also applying the metrics about how we're going to apply resources and what we're going to do and things like that.
Mark: Yeah. Thomas is a really sharp guy. You do not go into a meeting with Thomas unprepared. What you just described about Thomas, in my limited experience so far, that's not that unusual at Oracle. So my immediate manager, Adam Messinger, who's VP under Thomas, he's also still very technical. As it turns out, it seems to me it was a small world kind of effect, I knew Adam from way back, because when I led JSR 51, the first new I/O API, he was an engineer at BEA. He was in the expert group. But little did I know in 2000... [laughs]
Roger: That he was going to come back and be your boss.
Mark: That 10 years later, I'd be reporting to him.
Roger: A similar type of story, Georges Saab and I worked together on the swing team.
Mark: Oh, yeah. And yeah, I knew Georges too, from way back [indecipherable 0:18:43] .
Roger: Right, right. It's like now he's in a VP role in the organization working with Adam, so...
Mark: Now he and I are peers under Adam.
Roger: One last thing we didn't talk about is hiring.
Mark: We're hiring.
Roger: You have REQs?
Mark: We have REQs. It's so refreshing to work for a company that's profitable, you know. I loved Sun I miss Sun, but the last few years at Sun were really miserable.
Roger: Were hard. Yeah, agreed.
Mark: You know, not being able to hire, not being able to get stuff done that needed to get done. And yeah, we're hiring, there are REQs.
Roger: So we're going to talk to Adam later this week, and we'll have a URL for that. Thanks so much for your time, appreciate it.
[music]
Roger: Well, thanks for listening to the first edition of the Java Spotlight Podcast. I'm Roger Brinkley.
Terrence: And I'm Terrence Barr.