Most Read Latest News Blog Resources

NetBeans Sprouting New Features


Java IDE gaining support from all sides



May 1, 2007 — 
When the first version of Xelfi found its way into the hands of Java developers, the IDE was an immediate hit. Originally designed to mimic Borland Software’s Delphi rapid application development environment, the project eventually grew to become known as NetBeans. And while Sun Microsystems may not have expected its 1999 acquisition to bloom into a worldwide development community, the company is now putting great force behind its flagship Java IDE.

With the release of NetBeans 4, the project began its transition from general-purpose IDE to open source enterprise-quality development environment. Tim Boudreau, senior staff engineer and evangelist for NetBeans, has been working on the IDE since its early days, and he marked version 4 as the turning point for the project.

He said that the changes in version 4 “made it appealing to a lot of developers who said, ‘I want my IDE to work with what I’ve got, not do anything special.’”

Dan Roberts, director of developer and Web 2.0 marketing at Sun, agreed with Boudreau. Roberts has also been on the NetBeans project since its early days, and he said that version 4.0 was the first edition that placed NetBeans on the level of its competition.

“That was where things started to go in the right direction.” said Roberts. “[Version] 4 wasn’t as good as 5, and it won’t be as good as 6, but it’s where we started getting our credibility back.”

That credibility has allowed the NetBeans team to advance its environment to become one of the preeminent development platforms for any language. With the release of version 5.0 and 5.5, NetBeans has added dozens of time-saving tools, speed-inducing profilers and the Matisse GUI building system.

The secret to all this innovation, said Roberts, is the fact that the NetBeans team is willing to analyze the ideas that it finds in other projects, and to improve upon them.

Said Roberts: “Interestingly, as NetBeans has evolved over the years, many of the features have been inspired by different tools. The visual Web pack was primarily inspired by what Microsoft was doing in its ability to rapidly build Web applications. We clearly believed they had an advantage in the Java space to build out Web applications quickly. Visual Studio has really tight integration with some of the other pieces in the system. For us, that’s the most inspiring piece.”

But when considered in the context of other Java IDEs, NetBeans has one distinct advantage, said Roberts. “We can talk about innovation, all those other sub-areas, but it’s the out-of-the-box experience where you get one complete development environment that can cover ME, SE and EE Java development,” said Roberts, pointing out what sets NetBeans apart. “It was a core part of the NetBeans focus from day one since Tim and I were brought into Sun with the acquisition seven years ago.”

NEVER A FULL ECLIPSE
Boudreau and Roberts detailed the reasons behind NetBeans’ more structured and simpler approach to IDE design. “If you had to think about the architecture of OpenOffice.org to write a document, that would be a bug. We want the user experience to be very simple. You get the mobility pack; you don’t get the 8 million modules. You get a plug-in, you drop it in, and it works,” said Boudreau, referring to the sometimes difficult nature of installing Eclipse add-ons.

Other Java IDEs are also on the NetBeans team radar. In particular, Boudreau and Roberts talked about JetBrains’ IntelliJ IDEA. “It’s limited by the fact that the JetBrains team is a small group,” said Roberts. “They can’t leverage some of the things we have, like the Java teams in-house. We can mention the way in which Matisse actually got designed with the collaborations between the NetBeans team and the Java team.”

Of course, because the NetBeans project is open source, Matisse has already been ported to the Eclipse platform. But that’s just fine with Roberts. He said that the tool is so good for designing graphical user interfaces, his team is flattered to see it adopted by the competition.

But getting here was not that easy, said Boudreau. Now that Java SE 6 has arrived, NetBeans is receiving another visual makeover, though it’s one that required little change to the underlying code. Back in the days of version 3.6, said Boudreau, changes in the way NetBeans looked had to be done by hand, within the IDE. When he rewrote the windowing system for version 3.6, Boudreau said the task was “like changing the carburetor on a car while it’s running down the street without stopping.”

At the same time, the NetBeans team was reworking its build and change systems to run on top of ANT, a move that they said made all the difference down the road. Boudreau said that, in the NetBeans user community, “there was talk from some folks in Texas telling me about how they have to mail each other Eclipse project files via e-mail when things change. I’m really glad our change system is built on ANT.”

And those integrations with popular tools didn’t end with ANT. Said Boudreau: “If I want to create a new Maven project, it has full integration with Maven. If I download a Maven project from the Web, I can just open it the same way we integrate with ANT for building. If I want to search for a particular file out there, [in the Maven repository] I can.”

“There had been a general issue with [keeping track of] libraries, which is the problem which Maven solves nicely,” said Boudreau. “We’re not going to reinvent Maven. But we’re making it a little bit nicer for people who have a project that’s shared and they might have a library on their drive somewhere.”

Integrations with SCM systems are also a major priority with the NetBeans team. Roberts said that the external groups are constantly building plug-ins for their repositories, and that the NetBeans team has an opportunity to build many new integrations themselves. “The end of the version control opportunity is never really there. There are so many SCMs. Subversion and CVS [are] a core part of NetBeans [and] have been for some time. As you get into the myriad versions of commercial ones, one of the exciting things about the market share gains NetBeans has had is a lot of those projects are building in support themselves. We’re not building from scratch like we were two years ago. Now we’ve got the Subversion team working with us directly.”

SIXTH TIME’S A CHARM
All of this work has led up to the forthcoming NetBeans 6.0 release. Roberts said that the new version should be unveiled at JavaOne this summer, but he added that the final version won’t be ready until the fall.

Among the new features and changes in NetBeans 6, the most prominent is the expansion of the IDE to include many other languages. That means developers will be able to code Ruby, Python, C, C++ and Java in NetBeans. The team is also adding facilities to make it easier for third-party developers to add support for other languages to the IDE. These facilities include methods for describing white space needs, indentation, color-coded code and syntax highlighting.

“We’re going very much after the scripting market,” said Roberts. “New developers are coming out of college and high school even. These folks are learning scripting languages as their first languages. It’s important to get to them early.”

But the popularity of scripting languages isn’t the only benefit to NetBeans’ adding support to its platform. The new efforts at Sun to implement many scripting languages in Java adds new worlds of possibilities to scripted applications.

“We hired the JRuby guys,” said Roberts. “The thing that’s cool about JRuby is that there are all these Java libraries out there you can now access in Ruby. Like a library for diff’ing lists. If I were writing something in Ruby, that’s handy to do, [but] do I really want to rewrite that in Ruby? I’m sure Rails advocates might disagree with me. The way I see it is the stuff where if it goes wrong, the airplane crashes—I’d want to write that in a strongly typed language. The other stuff, like snippets of HTML, the froth on top of the back end, where it’s something that’s going to change rapidly—that’s something you want a scripting language for. What’s the right tool for the job in these common tasks? Five or seven years ago, when the Web was young, nobody knew what the things you needed to do repeatedly were. We’re finally maturing in terms of what tools are appropriate for what things.”

But while the move to support scripting languages and other mainstream languages in the IDE is a major shift for the NetBeans team, it’s not the most powerful change for version 6.0.

That title falls to the newly rewritten core editor. “The other major piece is a complete overhaul of the core editor itself,” said Roberts. “You have the ability to use a completely new editor. For NetBeans, the editor has been something of a work-in-progress for some time. This is really where we believe we’ll be moving past IntelliJ and Eclipse.”

It’s still evolving, of course. “Not all of the refactorings are implemented over the Java infrastructure yet. We will have the full suite of refactorings when 6.0 comes out in the fall. This was a collaboration between the NetBeans team and the Java team.”

Those should help to narrow the gap between NetBeans and its competition. Roberts said that the combination of new refactorings and a faster core editor should make NetBeans the top dog. But it’s the support for the improvements in Java SE 6 that will help to make NetBeans stand out, said Roberts.

Boudreau used a sample application to demonstrate the power of the new profiling features in NetBeans. “I created the generic code-name generator. When I first pasted the text into the generator, the whole application froze for a second. That’s a place I’d like to profile. The first thing you notice is that we’re starting up and the window is still not on the screen. It’s slowing down the whole virtual machine,” said Boudreau, showing off the application.

“Traditional profiling has two problems,” said Boudreau. “One, it slows everything down. Two, it doesn’t give you the information you’re actually after. Generally, you don’t want to profile the whole application—only one part. NetBeans Profiler can specify a single method to check. You can save the snapshot. You can do optimizations and compare the snapshots.”

As if optimizing applications were not enough, Boudreau went on to demonstrate more features of NetBeans 6.0. One of those is the ability to rapidly generate and test a Web service. Boudreau demonstrated how to do this using his code-name generator application again. “You take the code that analyzes text and generate a Java EE application. It auto-generates a new application that’s built with ANT. We can add a session bean. And it automatically generates a page for testing Web services.”

That automatically generated test page included the text box for inputting seed text, and automatically output the code name generated. Boudreau then took the same program through NetBeans’ automatic Java ME generation facilities. Here, he demonstrated the ability to automatically create the various screens of information needed in a mobile Java application.

PART OF SOLARIS STRATEGY
Roberts also sees NetBeans as a key component of the new Solaris strategy at Sun.

“Unix workstations, as a market, has really gone away,” said Roberts. “We still have a really good business around workstations and Sun Ray. It used to be, when you walked into a scientist’s office, there was a Solaris workstation there. That’s what computer scientists did. That’s changed because the way in which we used computers changed. Look at the way in which the professional workstation became the primary interface for the second world you live in. That change that has occurred, the sociological impact has created pressure for a single type system. [It created] a natural monopoly and the consumer culture [that] Microsoft was able to capture. [It] drove all that innovation through one interface type.”

Roberts said that the need for MP3 players, movie players, support for desktop tasks and PowerPoint all contributed to the decline of the workstation. But that may change soon, said Roberts, as Sun refocuses its Solaris efforts to include a new distribution aimed directly at developers. Solaris Express, Developer Edition, is an all-in-one development workstation-targeted operating system. Of course, it has all those other things developers need to get work done, such as music players and e-mail programs, but it also includes a full working version of NetBeans that is installed by default.

With so many new features arriving on the NetBeans platform this fall, it’s hard to ignore the simplicity and time savings offered by the IDE. And with support for Java SE 6 bringing speed, optimizations and a faster JVM to NetBeans, it looks like the sprouts of Xelfi are finally growing into trees.


Share this link: http://www.sdtimes.com/link/30549
 

Add comment


Name*
Email*  
Country     


  • Comment
  • Preview
Loading



 
 
 
 
News on Monday
more>>
SharePoint Tech Report
more>>


   

 
 
Download Current Issue
ISSUE 3/15/2010 PDF

Need Back Issues?
DOWNLOAD HERE

Receive the print Edition?


 
blogs tab
Google Code turns 5
Google Code Turns 5, and adds a Paxos Algorithm to make the system more stable and reliable.
03/17/2010 11:16 AM EST

Test your Visual Studio 2010 know-how
Microsoft is offering free beta certification exams for Visual Studio 2010.
03/17/2010 11:08 AM EST

Microsoft lifts the hood on IE9
Microsoft is previewing IE9.
03/16/2010 01:10 PM EST

 

Events calendar tab
3/22/2010 to 3/25/2010
Santa Clara, Calif.
The Eclipse Foundation

4/12/2010 to 4/14/2010
Las Vegas
Penton Media

4/12/2010 to 4/15/2010
Santa Clara, Calif.
O'Reilly Media

4/19/2010
New York City
Flagg Management

4/25/2010 to 4/28/2010
Overland Park, Kans.
IIUG