Gosling Says NetBeans 4.1 Recapturing Mo'
Sun at last has released its NetBeans 4.1 IDE for Java for free download. The upgrade sports improved tools for making EJB and mobile development much easier. In prep for the NetBeans Day during next month's JavaOne, Integration Developer News discussed a wide-range of NetBeans issues with Sun's James Gosling, Java creator and now CTO of Sun's Developer Products group, and NetBeans' engineering director Tim Cramer.
Sun's NetBeans 4.1 Java Open Source IDE was released last week for free download. The upgrade sports improved tools and GUIs for making it easier to build and deploy EJB, and many new features to let Java devs dip their toes in mobile development.
The latest release comes as NetBeans seems - on the surface - to be losing momentum to the Eclipse Open Source IDE. But, with these new features and a pick-up in developer use, NetBeans is "a long way from dead," insists Sun's James Gosling Java creator and now CTO of Sun's Developer Products group.
Integration Developer News interviews Gosling and NetBeans' engineering director Tim Cramer, to get a closer look at features and some glimpses into the future
And, just before we get to the interview, here's a thumbnail look at NetBeans 4.1 enhancements:
...and for mobile projects using J2ME, NetBeans 4.1 lets devs...
The NetBeans 4.1 download is available free.
An Integration Developer News interview
with James Gosling, CTO Developer Tools
and Tim Cramer, NetBeans engineering director
Integration Developer News interviews Gosling and NetBeans' engineering director Tim Cramer on a wide array of topics, including making EJBs easier to build, making it more attractive to think mobile, the best way to prep for web services, and how NetBeans is fighting back against Eclipse.
IDN: Congratulations of your release of NetBeans 4.1 Let's talk about some of the highlights.
Cramer: The big key feature is J2EE 1.4 development, and working on there the ability to work on EJBs for mere human beings. What took so long? I know, I know. EJBs are complicated, so we spent a lot of time with the EJB team and the tool team together and worked very hard to make EJB development a lot easier.
IDN: Have you done anything in NetBeans to make it easier for developers to build interactions between the bean and container?
Cramer: We have a tight integration with Sun Java System App Server 8.1 (J2EE 1.4 reference implementation, as well). So, a developer can do development, deployment and debugging all within the IDE - one tool.
IDN: You mention Sun's app server. What's your plan for supporting the others, such as from BEA, IBM or even Open Source JBoss?
Cramer: Good question. One of the cries we got from the community, they were happy we had tight ties with the reference implementation, but they also wanted to make sure we had JBoss, Websphere and WebLogic plug-ins so originally we weren't going to be working on that, but are open sourcing (www.netbeans.org) some of the plug-ins for the other 3 app servers, a bunch of code there now and actively developing that hopefully with some community support and by Java objects we should have those plug-ins for other 3 app servers. Right now, the plug-in to the app server is the piece that is Open Source. And, for NetBeans 4.1 the actually app server plug-in is a binary distribution.
IDN: To build these supports for other app servers, what exact help is Sun looking for?
Cramer: You name it. Committers and people who want to help us out. We're going to be working on the JBoss, WebSphere, and WebLogic plug-ins and we would welcome other app servers Geronimo, or anybody else.
Is the architecture for the plug-in already designed?
Cramer: Yes. The API is defined and that is Open Source
Gosling: In effect there is already code to look at. (And we've got one).
Cramer: One other cool thing. We have integration with a static verifier for J2EE. Writing your app, and make sure it is portable across app server containers, this is a "pull down" menu and check your code and make sure it is portable
IDN: I didn't have a pull down before?
Cramer: No you didn't. That's new.
NetBeans and a Re-fashioned
Java Tools Community
IDN: Is there anything in NetBeans 4.1 that pushes the envelop for "toolability" as expressed in the agenda for the Java Tools Community?
Gosling: Nothing manifests in that [topic] in NetBeans 4.1 at all. There has been some work that Oracle has been doing, and taken the lead on the key engineering tools.
IDN: Last year, you candidly predicted that any results from JTC work might take at least a year? How is that prediction playing out?
Gosling: In retrospect, I think I was optimistic. Part of the problem is that there is still so much going on that it's not clear what "this" is.
IDN: So, is there still a JTC initiative, as it was announced last year.
Roberts (Dan Roberts. Sun's Group Manager for the Developer Tools): There are a couple initiatives from a tech level. JTC was a 'press thing,' really, and a business level discussion last year. It has evolved into the work that Oracle is doing with JSR 198, interoperability submitted and approved, and JSR 273 (design time API around Java Beans), which is being worked on by Oracle, Borland and a lot of others.
IDN: So, the issues that arose over "toolability" and "interop" with JTC are now being discussed in those two JTC groups, by and large?
Roberts: We're looking at ways with 198 to assist interop. With 273, we're looking for ways to create components and controls and enabling tools developers to have a better design time experience, more conformity and compatibility between tools - to give a better community of components and libraries that are useable across tools. Where you see that [interop capability] in the .NET community but not yet really in the Java community. There are certainly folks that build components and sell them, like tag libraries, but it hasn't been incredibly active.
IDN: So, Is Sun still working with other tools and Java vendors bilaterally on these issues, or just through the JCP?
Roberts: There are tech conversations still occurring with our counterparts and still looking for areas where we continue to improve around web services and WS-* that we can work together on, so that I think is where it is evolving to.
IDN: So was there an impact on the JTC from so many vendors signing up for Eclipse recently? Did Eclipse become an alternative to the JTC approach for many vendors?
Gosling: There is a certain amount of that. And the tools market has been very tough for everybody, with a generic explosion. At the end of the day I don't know how to value any of that stuff.
Guiding the Developer through the
Wild, Woolly World of Web Services, Integration
IDN: For the developer, what would you say to devs that want to get more with marrying Java to WS and integration, but not on firm footing?
Gosling: That's one of these areas that there is just stuff all over the landscape. There are many specialized companies with special products. Most people are lining up behind all the XML-based interop standards and WS-* initiatives or not. I'm a little short on advise on where to go, only because this has been an area that has tragically had more than its share in chaos.
IDN: You have a calmness in your voice when you talk about these issues James. Even when there are no clear answers, it doesn't seem to rattle you. Where do you get that from?
Gosling: Well, you know you've been through enough stupid-ness, andâ€¦..Some of this is more like watching a soap opera, right? And if you're a developer, it can be hard to sort through all the press releases and bloggings from various people. We try to do what we can to respond to what other folks do. But, we try as much as possible to keep our nose to the grindstone and build stuff that people can actually use. In this latest version of NetBeans, we have a lot of stuff that makes connectivity exercises easier.
IDN: So, that's a good point. With so many changes afoot, and so many opinions about them, where should the developer focus his attention? His work? Inside the container? Outside? Integration between the two?
Gosling: Yeah, that's the kind of question you can only answer for an individual developer because everybody's different. We try to make container environments very clean so you can live within that and not worry about [what'] on the outside.
So, a lot of the effort in tools is to make even the existence of the container transparent, so you can just worry about the logic of your problem. One of the big challenges in the design of J2EE is to make that container wall smooth and without sharp jagged edges as possible. It's only in pretty extraordinary circumstances that you need to worry about what goes on outside of it (the container). Once you're into esoteric deployment scenarios or interactions with weird legacy code you get into breaking that down.
Generally we try to get people to not tunnel through that, like in the case of legacy code, to take an arm's length relationship to legacy code and build a web services bridge in between it, so that if the bridge between the legacy code and the bean is something that actually fits within the methodology of the container.
IDN: Are there extensions of WS-* in NetBeans 4.1?
Gosling: No, we've tried to be very standard. When you go outside of NB, like in Java Studio Creator, it has this environment where you can drag and drop data sources, whether they are databases or things from web services, and it does a very good job of taking anything that is manifested as a web service and turning it into a drag and drop comment on a web page. There are people who have taken incredibly ungodly, hairy disgusting pieces of COBOL code and made them look like web services and drag and drop them onto web pages using JSC.
IDN: So, with all these new pushes for open tools and open standards, where are the Java Pet Store patterns for web services? Is it fair to expect them?
Roberts: I'd like to say 'Yes, absolutely we will be delivering that in the next version of J2EE." But, to promise that would be overstepping my knowledge base.
I so know that as we evolve web services as part of the core J2EE space, we do blueprint patterns for all the various pieces for J2EE and I would expect because basic web services are already part of J2EE 1.4 there are some pretty basic patterns for how to use JAX-RPC to create connections between web services, JAX-M for XML messaging and the various components of J2EE. As we further bake in web services support beyond the basic JAX, java XML APIs and WS-I Basic security profile, as we go further in J2EE 5.0 talking about JavaOne you'll start to seeing more larger scale real world blueprints that describe web services applications in action. Today, it's still fairly basic with RPC method paths.
IDN: So, overall what are the next-steps, do you think, for NetBeans or other tools vendors to provide developers with support patterns or technologies for more easily building high-level web services?
Roberts: So, you can look at this in a couple of ways. There is the interoperability stand-point of multiple apps that are fairly silo'ed in their design but still need to speak to one another. So having reliable, secure messaging dealing with federated identity, deployment variations (cellphones), All sorts of areas where web services can play in silo'ed applications as well as in integration scenarios.
Designing apps with WS interfaces is fairly well-understood at this point, but designing and doing integration in the EAI hairball that many of us remember where we were doing XML over HTTP which is a base evolutionary step for SOAP - I think that stuff is still being defined because in that space you still have the need for reliable 2-way messaging, contracted interfaces and other things and that's where WS continues to evolve, whether in the JCP or the W3C or OAIS will get baked back into the core platform.
NetBeans 4.1 on the Move
for Mobile Apps Developers
IDN: I also understand NetBeans 4,.1 includes enhanced support for mobile development. Talk about that a bit?
Gosling: The other half of what is cool in NB 4.1 is the whole mobility dev suite, so you can develop apps for all the different flavors of J2ME and has support for MIDP1, MIDp2, and the right cellphones that have the on-phone debugging support you can do some fascinating stuff.
The mobility side of the world has been huge, and is getting much more complex. MIDP3 is getting to a fairly advanced stage, MIDP2 phones are all over now. We will be having a whole lot of examples of fascinating things that these people are doing with cellphones?
IDN: So, after 5-6 years of hearing that mobile apps are about to take off, you think they finally ARE ready? This time will be the real deal?
Gosling: For me, the thing that really has been changing over the last year of so in the cellphone world is simply that Java is really taking off because the horsepower is finally there.
The first generation of [Java cellphones] really had the horsepower to run pretty interesting games, but now they've got the horsepower to be real app platforms. At some level, it's just that Moore's Law has been affecting the cellphones as well as everything else. You look at a cellphone today and it has much RAM and processing as a desktop of not too many years ago.
IDN: We've heard a lot about Java on cellphones since 1999, but it's never seemed to take off. Some devs got burned?
Gosling: There is a geographic component to it. The US sometimes feels like a third-world country. In Japan, the world is crazy there.
IDN: So, there not much different in the tools or the patterns?
Gosling: Not really. It's the underlying platforms have really been growing up. My poster child for the cool Java app for the last few weeks, I was in Brazil about 3 weeks ago and they have been doing e-taxes the last few years, but this year they actually wrote a J2ME app to do tax prep on the cellphone, basically "Turbo-Tax" for your cellphone. In Brazil, that's how a lot of people did their taxes last year.
IDN: Really? That sounds a bit hard to believe..or at least hard on the fingers?
Gosling: (laughs). The Brazilians are incredibly forward thinking. The employers have to submit forms like W2, and the app can go in and download the W2 info so you don't have to enter very much, and they make a lot of it real easy. One of the reasons they did this is that they make cellphones available to just about everybody, and administer their social programs to everybody. Some of them have keyboards. I met a reporter who had thrown away his PC because he was actually writing his articles on his cellphone. Computing is becoming very personal.
IDN: So tooling and platform now making mobile development more attractive?
Gosling: Yes, that is a big deal for us.
Cramer: One of the big problems in the mobile market is the device segmentation problem. They way most mobile developers address this is with little separate pieces of code for each cellphone you want to target. In NB we have solved that problem by adding in some small extensions, like a preprocessor thing for C++ or C that lets you define the various platforms in you code and then write a small piece of specific code within the big file.
Gosling: It also helps dramatically that in the MIDP world all the phones have been growing up so there is less fragmentation than there used to be.
IDN: So, What is the killer demo for JavaOne on mobile?
Gosling: That would spoil the fun. After I'm done flinging T-shirts I'm hoping to have some cool demos, and there are some I would kill to have. As whether they're mobile depends on your definition of mobile. I better leave it at that.
This year's NetBeans Day, will be held the day before JavaOne, A complete 2005 NetBeans Day agenda is available here.