As part of Sun
Developer Tools Month, we caught up with Trung Duc Tran, the
Chief Architect for NetBeans. Tran is responsible for setting the direction
of NetBeans and for assuring strong tool support for the core technologies
of the Java platform. Tran joined Sun Microsystems in 2000 and has
been working on NetBeans ever since. He built the perf team for NetBeans 3.5, a completely new windowing system in 3.6, and a new
project system based on Apache Ant, which is at the core of NetBeans
4.0. We met with him to explore the challenges of creating a quality
tool.
Misconceptions About NetBeans
We also try to cover a wide range of Java technologies. Now that we've added support for Enterprise JavaBeans (EJB) and web service development in 4.1, you can use NetBeans to develop Java 2 Platform, Micro Edition (J2ME), Java 2 Platform, Standard Edition (J2SE), as well as Java 2 Platform, Enterprise Edition (J2EE) applications -- from the smallest to the biggest platforms. This makes the IDE the ideal learning tool for anyone who wants to expand their Java programming knowledge. A fairly small group of developers are working on the NetBeans code, which is fine. I don't believe that putting more people on a project will make it go faster. And it will definitely not be better. However, a much larger number of developers are building modules for the NetBeans IDE or rich client applications on top of the NetBeans platform. I am repeatedly surprised when I hear about the kind of apps being built on top of the platform. This is possibly thanks to NetBeans' modular architecture. You can add your branding; the name and icon of your app; develop one, or two, or many modules to implement features specific to your domain; or you can reuse some modules that already exist in NetBeans if you want. And you have a rich client app that has nothing to do with an IDE. J2EE and Web Services
Of course, because this is the first release of the IDE with the new and large feature set, there are some rough corners and missing features that we would like to have included but did not, because we ran out of time. We plan to expand J2EE and web services support. User feedback is the key in helping us decide which enhancements will be implemented in the next release and which will have to wait for later.
At NetBeans, we use the release train model. Work on multiple releases is running in parallel. We also follow the "release-early, release-often" open source philosophy, which is a great way to get user feedback and evolve the product to meet users' needs and expectations.
NetBeans and Eclipse
Eclipse has Ant support, just like any other Java IDE these days, and just as NetBeans has since 3.1 appeared four years ago. NetBeans is unique in that its project system is based entirely on Ant. We offer the highest degree of integration. Ant gives NetBeans users tremendous opportunities to expand the IDE's capabilities. People are now doing things with NetBeans and Ant that, a year ago, when we redesigned that part of the IDE in the 4.0 release, I wouldn't have thought possible. Today, Eclipse has a lot more plug-ins than NetBeans, but -- and this is a big "but" -- the value is not in the number of plug-ins. I could even be sarcastic and claim that the need to install external plug-ins is an indication of the poor quality of the core IDE. Users care about the capabilities of the tool and how all of the features fit together to support what they want to accomplish. Having a lot of loosely coupled features thrown into a single app doesn't necessarily help anyone. Remember what IDE stands for: Integrated Development Environment. The word integrated is important. Don't get me wrong: Plug-ins are important for specialized technologies. But judging the quality of the IDE based on the number of external plug-ins is way too simple. Support for important mainstream technologies should already be in the core IDE. It should work out of the box.
Upcoming Release
One critique of 4.1 that I've heard is that it doesn't offer many improvements outside of J2EE and web services support. That's not accurate. Several features added in 4.1, which are small but critical for certain users, didn't make it into 4.0. There will be more for non-J2EE developers in the next release. The notable feature in this area is the new GUI builder (code name Project Matisse). Swing GUI design can be fun. This feature is being integrated into the main codeline and made available in nightly development builds right now. We'll expand and polish the J2EE and web services support, and we'll add integration with the most popular application servers, plus more refactorings and a smarter Java editor. Some of these additions may be available through the auto update center for NetBeans 4.1, so users won't have to wait for the next release. Once we have a draft plan, it will be published on the web site for people to review and comment. Looking Ahead
We will continue innovating as in the Ant-based project system, the profiler that came straight from Sun Microsystems Laboratories, and the new GUI layout builder. There's more on the way. I can't say what and when, but given the number of ongoing projects and what the developers are experimenting with, it's safe to say we'll have quite a few cool features in the upcoming releases. But more important than the individual features is how they are implemented in the IDE and whether they interact with each other in the way the user wants and expects -- so that the sum is greater than the parts. Traditionally, NetBeans has covered a lot of technologies, but we didn't do enough initially in finding out how real developers use those technologies together to build their applications. This has changed. Revising NetBeans
Perhaps there was a change in our mind-set. NetBeans has a long history. It always had a very modular architecture. I remember that when I joined the team, many colleagues were wearing T-shirts that said, "Build your own IDE," meaning that everything is built as modules: Anyone can pick and choose or write some modules themselves, put them together, and have a custom-made IDE. What changed recently is the focus on UI, on usability. We do usability studies after each milestone and make corrections. We started to look at the IDE from the user's point of view, not from the architectural point of view. Seeing real people struggling with what we implemented can be an eye-opening experience. We didn't hesitate to re-implement certain things in the IDE several times when we saw that the current implementation didn't work for users. Many developers have spent countless hours making the pixels look right. Most software developers are not trained to make good UIs, and we are no exception. But we realized that the IDE is first and foremost a GUI desktop program, so we had to learn how to do UI design. UI programming is hard, a lot harder than, say, using Java class loaders or decompiling and understanding Java bytecode. Very few people are aware of this. We are fortunate to have some very good UI designers on our team. NetBeans at the 2005 JavaOne Conference
See Also
|
| ||||||||||||||||||||||||||||||
Oracle is reviewing the Sun product roadmap and will provide guidance to customers in accordance with Oracle's standard product communication policies. Any resulting features and timing of release of such features as determined by Oracle's review of roadmaps, are at the sole discretion of Oracle. All product roadmap information, whether communicated by Sun Microsystems or by Oracle, does not represent a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. It is intended for information purposes only, and may not be incorporated into any contract.
|
| ||||||||||||