Java Spotlight 14

[music]
Roger Brinkley: Welcome to the 14th edition of the Java Spotlight Podcast. I'm Roger Brinkley.
Terrence Barr: And I'm Terrence Barr.
Roger: And this week we are live out here at Oracle HQ, and couple of the Java evangelists have joined us on the expert panel. So, Alexis, you're back again as normal, but we welcome a new regular, which will be Simon Ritter, and then Angela Caicedo. And in this edition of the podcast, we will do a feature interview with Geertjan Wielenga, who is the Principal Product Manager of NetBeans. But let's turn first to the news. So, guys, we'ree here at the International Oracle User Group Leaders Summit.
Angela Caicedo: I think what I see the best of this week is see how the perspective from the Java Community, and especially the Java User Groups in this case, have been changed. I remember when the acquisition happened, people were kind of frustrated or very insecure about Oracle's position with the user groups. And I think this proves that we are really committed, we are really looking forward to keep working with them, hear where they have to say, and involve them in the Java process. I've think seeing them, seeing the positive and the energy, again, in the room is just amazing. It's like going back to what we used to have before, so it's great.
Simon Ritter: Yeah, I think the comment that really made it for me this week was, somebody who said, you know, despite the fact that Sun was very, very dedicated to promoting the Java User Groups and supporting the Java User Groups, they never had a meeting like this. So the fact that the Java User Groups were invited to this big conference is a real sign of the fact that Oracle is serious about the user groups and supporting them and promoting them.
Roger: Steve Harris came in and said, "Oh, by the way, we have a new nominee for the JCP SE Executive Committee," and that will be SouJava as represented from Bruno Souza.
Simon: I've known Bruno for over a long time and I've got to say this is an excellent appointment to the executive committee. I think that having the user groups represented at such a high level is absolutely the best thing for the Java community process.
Roger: Other things that you've learned and seen from this week?
Simon: Yeah, I saw an article which was saying that Java was on the way out. And they were saying that undergraduate programming languages were going to be replaced -- Java is going to be replaced by undergraduate programming by HTML. I'm not quite sure how you're going to do that. Object-oriented programming and HTML? HTML is a mark-up language, it's not a programming language.
Roger: So other news? You've got some news on the GlassFish side?
Alexis Moussine-Pouchkine: I always have news on the GlassFish side. We've had two announcements that are relevant to either GlassFish or the service side. One is GlassFish running in the Microsoft cloud. Microsoft has this thing called Azure, which is a platform-as-a-service environment, and a Microsoft employee actually put out a very detailed blog on how to run not only Java, but specifically Java EE and GlassFish in particular in that cloud environment with almost no limitation in terms of what you are able to do as a application developer. So that's one.

And the other one is an announcement which I think is quite significant by Amazon, who beyond providing EC2/S3 services, is moving up the chain and also moving into the pass play ground, which is to offer not just "SSH and good luck," but with something higher up the chain. In this case, this is a Tomcat service and we hope to have full Java EE available on such an environment.

And the good thing about this is that everybody knows Amazon. Everybody knows EC2. And they're building their Beanstalk -- that's the name of the service -- on top of all those existing infrastructures. And Java is the language, the platform they chose to start their pass with.

Roger: And then finally this last week, one of the things as the podcast is beginning to start taking on popularity, we're beginning to hear from people saying, "Oh! I bet you didn't know about this, or you didn't know about that." So I got some news from one of the Oracle employees that was talking about the Chime Visualization Tool for DTrace. You know a little more about that than I do, Simon.
Simon: Yeah, DTrace is one of those things that's an undiscovered gem in terms of being able to analyze problems in a completely different way to the way that we've done it in the past. And the fact that you've now got a Java API that allows you to access the information and set probes and do various things with the DTrace framework, I think is an incredibly powerful thing. And if you include the fact that the JVM also has probes that are being built into it for the Solaris platform, then I think you got a really powerful system which you can use to do problem analysis and resolution.
Roger: So we've got a couple of JSR votes.
Alexis: Must have been two weeks back where we announced that the first JSRs of the Java E7 platform were out for voting. These were JPA 2.1 and JAX-RS 2.0 and these have actually passed that ballot with 11 yes votes, 0 no votes. And what that means is that the expert groups can now form and actually work and deliver on the directions that have been shared previously. So that's two JSRs; there are more coming in the Java E7 and the umbrella JSR itself should be filed sometime before the spring.
Roger: So let's turn to the events section. There is a whole bunch of Oracle WebLogic Server webinars that are coming up on February 1st, February 10th, February 17th, February 24th. Go to the show notes. You can see where to register for those. They look like they're going to be a whole good series. Arun Gupta, Vaadin Meetup , they're going to be taking a cruise across the snowy Baltic, so you can find the information of that in the show notes.

Alexis, you and I and Arun will be at Jfokus in Stockholm, and then you will be traveling on to St. Petersburg after that. And, Angela, I think you're going to be in Mobile World Congress in Barcelona.

Angela: Yes, we'll be there.
Roger: So let's turn now to the feature interview with Geertjan Wielenga, who is the Principal Product Manager of NetBeans. So let's go directly into that interview.
Arun Gupta: So we're here at JavaOne in Beijing, China. I'm here with Geertjan Wielenga, who is the Principal Product Manager for the NetBeans platform. And I thought we'd chat about what's happening in NetBeans and how NetBeans and JDK7 are getting along and some of the observations and things you've seen here at the show. So...
Geertjan Wielenga: Well, thanks. At the JavaOne here in China, I've been going around with Chuk-Munn Lee quite a bit, the Java evangelist from Oracle. And he's been presenting the latest changes around JDK7 as well as, in particular, Project Coin enhancements. So these are small language enhancements that are coming up in the JDK relating to, for example, multi-catch statements and strings and switch, and showing off how NetBean's IDE seven will be supporting that. And him doing the story and then me doing a demonstration showing the integration between JDK7 and NetBeans 7. So that's been a pretty cool thing.
Arun: Along those lines, Alexis was showing how the community brought that JDK7, those language features, to NetBeans on the Mac very quickly through the open source projects, which was also very cool. Another benefit of open source is that community can do it themselves before you even get around to spending some time on these things.
Geertjan: Yeah. Plus, there's been a lot of cool demos done by Adam Bien on Java EE6 integration in NetBeans. And he basically goes to a presentation and shows two slides and then just codes. It's been really cool, and he's been getting really great responses on his stuff. So it's been really good for NetBeans at JavaOne here in China.
Arun: So one thing that you are particularly interested in is NetBeans, the platform, NetBeans RCP, rich-client platform. I think a lot of people aren't really familiar with that aspect of NetBeans. Maybe you can do a two-minute overview of why you want to consider NetBeans RCP for your project?
Geertjan: Right. Well, really NetBeans is two things. On the one hand, it's this IDE where you can use JDK7 features already and Java EE6 and so on, and mobile development and so on. A lot of different kinds of application development can be done within this IDE. But in addition, there is a basic framework underneath that IDE that many applications on the desktop also need.

So most applications on the desktop have some concept of a window system that you can drag and drop windows in different places on the screen. Many applications have a menu bar and a tool bar. So there's a lot of common features like that in desktop applications.

So underneath NetBeans IDE is a generic framework like that that can be reused and is being reused in many places in the industry.

Arun: So basically if you are thinking about developing a Java-based desktop platform, you need some of these features, then NetBeans is a very high level of functionality to start.
Geertjan: Right. Plus, it's pluggable out of the box. So if you want to create a pluggable architecture, you don't need to create a plugin system because that comes together with the NetBeans platform. So something like Firefox, for example, you don't need to wait for the next release to include new features, you can just get some Firefox plugin and install it. And if you want to create a similar application to that, then the NetBeans platform is really cool because of its built-in pluggability.

For example, one of the Duke Choice Awards winners from two years ago is a network satellite and management company in Germany that provides network satellite-based applications for various armies, defense forces in Europe is based on the NetBeans platform.

And in fact they have the largest NetBeans platform-based application that we know of. It's larger than NetBeans' IDE. It is over 1000 modules providing distinct features to the application. S, it's really versatile and it's really robust and, in particular, it's useful for large applications or applications that are in the future potentially going to become large.

Arun: And I think another benefit is that you can fall back and leverage a lot of the plug-ins that are available for NetBeans. So, for example, there's a really advanced visualization plug-in that ND SatCom is also using to do some of the visualization.
Geertjan: Right. And another example is there's a great plugin for NetBeans IDE for Space Invaders, and you can take this plugin and install it in any other application on the NetBeans platform, because it simply uses the windows system API in the NetBeans platform. So you can plugin a new window in any application that contains Space Invaders. So I think that's small example of how flexible that is. So the one thing I'd like to mention is that the upcoming release of NetBeans provides on the one hand all this great integration with JDK7, so that if you are using old pre-JDK7 constructs like not using strings and switch, but just if/else statements, for example, the NetBeans IDE Java Editor will pick up that you are using that old construct and will ask you, "Hey, do you want to convert this to the new approach?"

And then you click on that hint and it will automatically convert it to the new approach. So you're not only able to code in JDK7, but also convert from your old approach to your new approach in Java.

And great Oracle integration. So WebLogic and Oracle DB have much better integration in the upcoming release of NetBeans than before.

But from the platform side, more and more of what you'll be doing is using annotations. A lot of people have had a hard time with all the XML files that you need to configure when you can write to NetBeans platform applications. Over the last releases, more and more we've been adding incrementally annotations instead.

So if you have a window, for example, in your application, all you need to do is add some class signature annotations and you will have a new window registered. So if, for example, you're porting a JPanel to the NetBeans platform, you simply change the class signature from extends JPanel to extends TopComponent, which is the NetBeans window component, annotate that class, and you're done.

Everything happens at compile time. All the XML files are generated from those annotations, and you can deploy your application.

This will make it much easier to port your application than before, and it will make it much easier to use other IDEs to create these kinds of applications, because you will not need to use templates or wizards anymore, which were used because you couldn't easily create those XML files and configure them yourself.

So you'll be able to create these applications in other IDEs using annotations on the classes, for example, with actions, as well. Annotate your action, annotate your abstract action, and it will be registered in the menu bar of the NetBeans platform.

So there's really a lot of potential for new development in the upcoming NetBeans7 release coming up in March next year.

Arun: Something that surprises people, you start up NetBeans and it's amazing all the plugins that NetBeans offers not out of the box, but that are available through the update center that are there that really cover almost every possible aspect of software development. There's a great plugin for Java ME support which really integrates nicely even down to on-device debugging and updating applications on device, so a really fast edit, debug, compile cycle.

The other thing that is just really cool, if you want to create bindings between client applications and web applications, NetBeans offers a plugin and a wizard that creates all the bindings for you. You just deploy it on GlassFish, which is also integrated right in NetBeans.

It's just so easy to create very rich and feature-rich applications, and it's all in NetBeans. A couple of years ago, we invented this phrase of the only IDE that you ever need. It's still true, and it's becoming actually more true.

Geertjan: Plus the performance of the IDE keeps getting better, despite there being more and more new features added with each release, because that's really a problem, in a way. The more features that are added, the more modules and the more functionality, the longer the start-up process should take, logically. But there's a team in the NetBeans group focused specifically on the performance of the IDE, and so each release there are performance benchmarks that have to be met. The start-up time of the IDE is measured, and the code-completion speed and features in the Java editor are measured.

Only once these benchmarks are met can the IDE be released. This is also really great to see each release becoming actually faster while gaining more features.

Arun: I have this Nokia N900 as my personal phone, and if people aren't familiar with it, it's basically a small embedded Linux computer. It runs Debian, and you can install OpenJDK on it and run NetBeans on it.
Geertjan: Really?
Arun: So you can do NetBeans development on this mobile device, and it's actually decent.
Geertjan: That's cool. That's really cool.
Arun: You don't want to do like major coding projects, but it works fairly well. It's crammed on the screen, so things are tiny. The buttons are tiny. But it does actually work reasonably well, and this is like a 600 MHz embedded ARM platform.
Geertjan: So you could review your code, for example...
Arun: Absolutely, yes.
Geertjan: ...while you're sitting on the bus to work or something. That's really cool.
Arun: I guess, also, one thing that people might not realize is how much vertical or internal software development is happening on the desktop and how deeply embedded NetBeans is in many of these places. Do you want to talk about that a little bit?
Geertjan: Right. The thing is these kinds of applications, you don't hear much about because they're internal applications. Plus, these are not cool applications, really. These are not web, Ajax, whatever. But these are applications that handle lots of data. These are typically very data-centric applications. So in a way, the whole JavaFX story doesn't really fit into these business scenarios, either. These are the kinds of applications where you want to display large sets of data to internal users of this application.

These kinds of applications are found in many different sectors, for example, in the bio-informatics industry. We often go and give NetBeans platform trainings at universities in Germany, and we always end up in the bio-informatics department where they have genome analysis and various kinds of analysis applications where they need to display the results of the algorithms that they create in interesting and powerful ways to the users.

These kinds of developers know about various scientific-related disciplines and have algorithms around those disciplines, but don't have a consistent and useful and powerful way of displaying the results. That's what they use the NetBeans platform for.

But that's just in the bio-informatics area. If you look at aerospace and defense, at Boeing, they have created a platform on top of a NetBeans platform, which is called the Boeing Shared Platform. This platform, with Boeing-specific modules, is shared amongst the various departments in the organization where each separate department can write their own particular application on that common platform.

If you look in the oil industry, there's a lot of stuff going on there as well, and also we can see that there is some convergence in that particular area, as well, with an application being created in one part of the world in the oil industry, but having modules that are generic and potentially interesting for other oil applications.

So having a similar module system and having this plugin system where you can share features like that makes this very interesting. I could go on for quite some time talking about the different places where this kind of infrastructure is useful. But the important point is, also, that the NetBeans platform is alone in providing a Swing modular framework for these kinds of industries.

There is no other application framework that provides a window system, a module system based on Swing with all the features and the years of experience and testing thanks to it also being a part of NetBeans IDE that the NetBeans platform has. It's really amazing how broadly and widely and in how many interesting ways it's being used.

If you want to find out about the JDK7 features and how to get started with that, then go to Netbeans.org, and then click Docs and Supports in the top bar of the site, and then go down to the link General Java Development. Click that, and once you've done that, you will see a tutorial titled "JDK7 Support in NetBeans IDE 7.0."

It shows you how to get started with that, so downloading the JDK, how to configure it in NetBeans IDE, and then go through some examples of the new Project Coin features in the JDK and how you can use those inside of NetBeans IDE and the various supports that you get, warnings and hints and conversions to these new ways of expressing the Java language.

Arun: And there is also a NetBeans podcast, right?
Geertjan: There's a NetBeans podcast. Supposedly it comes out every month. That's more or less our plan. It's become more or less every other month or so. But we've recently come out with our 53rd episode, and we really try and have lots of information about NetBeans by getting information from engineers. We interview the engineers. We hear from the horse's mouth what's going on with NetBeans and the latest development and stuff. You can find this on blogs.sun.com/nbpodcast. That's the official site for the podcast, and you can also from there get links to each of the episodes.
Arun: Thanks, Geertjan, and we'll see you online, I guess.
Geertjan: Yes. Thanks.
Roger: So, Terrence, the thing that struck me was when we were out this last week at the Oracle User Group Leaders Summit, NetBeans is really designed for the Java developer. Then I think you actually had a good point in there about the plug-ins. They are really versatile. They're really great. We've seen them particularly in the mobile space, and we're looking forward to the SDK when it's going to come out just as a plug-in to NetBeans rather than just being a complete revamp of NetBeans adding in the emulation that exists there.

But it's a very strong tool. The application framework has been around for a long time. I worked over in the NetBeans organization around 2000 working on JavaHelp, and they were starting to do some of the framework type of stuff then.

It's a great piece. I look forward to seeing what they're going to do when we start bringing forward the new JavaFX pieces and the development that'll go in there.

All right, let's turn now to the "What's Cool" section. We'll let Alexis start off. So, what's cool?

Alexis: What's cool is another GlassFish story we did recently with Mollom.com. Mollom is something that was started by Dries Buytaert, who is the creator of Drupal. Drupal is written in PHP, so why would he do something like Mollom.com and use Java? Because that's what the story's about. In fact, he thought Java -- certainly on the back end, and Java EE specifically, and he uses GlassFish for that -- was the best thing that he could get for the performance numbers he was looking at.

Mollom, by the way, is a service that helps you deal with content that the community generates, as in how do I get rid of spam? How do I do captchas? How do I make sure anything people contribute to a website is actually high quality?

So they get a number something along the lines of 60 hits per second today, and they're looking at increasing two-fold in the next few months. That's all running on GlassFish 3.0.1. That's the latest release.

I don't know exactly what their setup is, but it seems to be performing quite well. So that's great to see GlassFish three in production with such loads.

Roger: Simon, what's cool?
Simon: Well, I've been looking at something to do with the Kinect for the Xbox 360, and there's actually a Java API that allows you to hack that.
Angela: Don't give it up. It's a surprise.
Simon: Well, no. There's more to do with that. There's a lot more stuff to do with that.
Roger: More to come. Angela, what's cool?
Angela: [laughs] It's great to have Simon Ritter back.
Roger: I think the thing that was cool this week was we saw a presentation by Parlays. It looks like OTN is going to be putting out a Java channel on Parlays. That was announced this morning. We're looking forward to seeing what we can do there. [music]
Roger: Well, thanks for listening to the 14th edition of the Java Spotlight Podcast. I'm Roger Brinkley.
Terrence: And I'm Terrence Barr.
Roger: Send your feedback to feedback@javaspotlight.org.


Transcript by CastingWords