Home

Netbeans 4.1 has been released. This release focuses quite a bit on J2EE, with modules for EJB and web development, with Sun's Application Server 8.1 being bundled and heavily supported in the IDE.

This release focuses quite a bit on J2EE technologies including web applications and EJB. The EJB modules include the ability to declare EJBs as web service points from the application server, so it's very useful for discovering what the J2EE stack offers, at the very least.

Other enhancements include:

Support for projects with multiple source roots

Automatic generation of Debug and Compile Single File actions for projects with existing build scripts

I griped endlessly and fervently about NetBeans 4.0 as it had some serious drawbacks for my (huge, legacy) projects as compared to NetBeans 3.6. I was upset enough that I would have given Eclipse another try if not for a few critical barriers to entry (e.g. no Java 5 support outside of an early access milestone for starters).

I gave 4.1 a try at RC1. It solved all of my major issues. After about a day of using it I removed all other IDEs from my system and have never looked back. NetBeans 4.1 is a pleasure to use.

Also, the usage of Ant for all project build-ish actions has turned out to be a huge boon due to the ease of re-using existing Ant files for all project actions on the one hand and customizing the IDE's default actions on the other.

Overall, the Eclipse hype factory may be insurmountable but on the merits I believe NetBeans is truly top-notch.

Since J2EE 1.2 I've been yearning for a free, open-source IDE that supports J2EE out-of-box as well as NetBeans 4.1 does, and it's finally here.

That, plus continued built-in support for ant-based projects, JDK 5, refactoring, JSP, CVS, JUnit, a nice Swing editor, and a very friendly and attractive UI. And all free and open-source. What more can a Java developer ask?

Good to know this, few days back I downloaded its RC1 and found it far better than any other IDE. I downloaded its RC2 as well. It's running fine, excellent user interfaces, everything good, no errors, no stack trace, no slow ;) as Eclipse is.

Yeah ! that true, still it has to go too far. I am sure this version of NB will make many developers to move from Eclispse to NB :) Yups.

I use Eclipse for PHP development as well, and from what I´ve read it´s becoming the prime PHP IDE. I use Subversion as it is superior to CVS. There are plenty of Database plugins that work really well. In my university there are a couple of Java projects, and afaik they all build Eclipse plugins - not Netbeans modules.

The WTP will be all the J2EE that I need for now (which is: close to none).

Why should I use Netbeans, which of course offers out-of-the-box J2EE, but is missing a lot in other places?

Still competition is good and I took a look on 4.1 Beta releases. Netbeans is making progress, and that´s nice. Moreover there are different developer tastes, I know that some prefer Netbeans to Eclipse (just none I no personally).

Why should I use Netbeans, which of course offers out-of-the-box J2EE, but is missing a lot in other places?

I know it misses some features, but I would be interested in knowing what you consider these features are. I don't believe it can be missing that much, as it can be used for most Java development 'out-of-the-box'.

My view is that not-having J2EE support built-in to a Java IDE is (to exaggerate somewhat) like not having wheels supplied on a car! These days it is hardly an optional extra for most projects.

I have a concern that Eclipse being the de-facto standard for plugins and Java development means that it will have too much influence in the way that Java is used. I can imagine an attitude developing that if something is not supported by Eclipse then it must not be worth using. I have already experienced this attitude with Java 5.0, which is still not supported in mainstream releases of Eclipse after all this time.

This is why this new release of NetBeans is important, as it keeps competition going.

I'm wondering if, in order to help competition, it is time to start a campaign for a general Java IDE plug-in API, so that the idea of producing a plug-in just for Eclipse becomes outdated. Although, NetBeans' strong support for Ant tasks means that it can make use of most of most Java tools and products without the need for a specific plug-in (this is an aspect of NetBeans that does not get enough publicity).

.I'm wondering if, in order to help competition, it is time to start a campaign for a general Java IDE plug-in API, so that the idea of producing a plug-in just for Eclipse becomes outdated. Although, NetBeans' strong support for Ant tasks means that it can make use of most of most Java tools and products without the need for a specific plug-in (this is an aspect of NetBeans that does not get enough publicity).

There is the the JSR 198 (http://www.jcp.org/en/jsr/detail?id=198) but it doesn't follow the new JCP' "transparency rules". They started in 2002 and the only thing that I saw is a few "stay tunned" messages. The only thing that keeps me from saying that it is dead is that they have a technical session at JavaOne. The session title is: TS-7774 JSR-198: A Standard IDE Extension Architecture Let's see ....

.I'm wondering if, in order to help competition, it is time to start a campaign for a general Java IDE plug-in API, so that the idea of producing a plug-in just for Eclipse becomes outdated. Although, NetBeans' strong support for Ant tasks means that it can make use of most of most Java tools and products without the need for a specific plug-in (this is an aspect of NetBeans that does not get enough publicity).

There is the the JSR 198 (http://www.jcp.org/en/jsr/detail?id=198) but it doesn't follow the new JCP' "transparency rules". They started in 2002 and the only thing that I saw is a few "stay tunned" messages. &nbsp;The only thing that keeps me from saying that it is dead is that they have a technical session at JavaOne. The session title is: TS-7774 JSR-198: A Standard IDE Extension Architecture&nbsp;Let's see ....Cheers&nbsp;JD

Thanks for this - I should have looked at the jcp site before commenting. There may be hope for this, as IBM is on the EG.

Although, NetBeans' strong support for Ant tasks means that it can make use of most of most Java tools and products without the need for a specific plug-in (this is an aspect of NetBeans that does not get enough publicity).

+1this feature of NetBeans rocks!!It nullifies the need of Plugins for1) other j2ee servers2)auto generation of a lot of ORM coding and stuff like that

ant automates a lot of tasks for which sometimes an IDE feature is needed elsewhereThis is one of the prime feature of the IDE that drove me away from EclipseAlso its out of the box Java development support (any kind of,really) and cool friendly UI with a lot less clatter than Eclipse also won me overCongrats to the NetBeans team,keep up the good work guys!!

My view is that not-having J2EE support built-in to a Java IDE is (to exaggerate somewhat) like not having wheels supplied on a car! These days it is hardly an optional extra for most projects.

Well, not having support for entity beans or session beans is irrelevant to me, and to many people that switched to o/r mappers and spring to replace them.Support for coding is inferior, period.The only thing that may be of interest would be the swing form builder, but I prefer a two way editor instead of the guarded block approach since not everyone uses the same IDE...

On a side note, having back multi source tree project support is great, last time I've tried Netbeans I gave up after 5 minutes because of that.

I just don't see that. Some things are better in Eclipse, such as the source formatting, but otherwise, I really don't find that much difference.

I guess you never used quick fixes? That's my major gripe.Also, some refactorings I use very often are missing, such as extract method (at least, I did not see it in Netbeans 4.0, but I don't see changes to the refactoring subsystem in the changelog). This blog pretty much corresponds to my opinion about netbeans, have a look at it: http://api.blogs.com/the_catch_blog/2005/04/eclipse_or_netb.html

I just don't see that. Some things are better in Eclipse, such as the source formatting, but otherwise, I really don't find that much difference.

I guess you never used quick fixes? That's my major gripe.Also, some refactorings I use very often are missing, such as extract method (at least, I did not see it in Netbeans 4.0, but I don't see changes to the refactoring subsystem in the changelog). This blog pretty much corresponds to my opinion about netbeans, have a look at it: http://api.blogs.com/the_catch_blog/2005/04/eclipse_or_netb.html

Both of the problems you described will most probably be addressed in 4.2. There are already two modules which are running against the current development version:

Well, to sum up...I need a two way editor because not everyone is using Netbeans, with a two way gui builder I can allow changes from project members that are using something else.

To handle my average project I need the developer version of RefactorIt, which is 99, but for the biggest one I need the enterprise, which is 295 (and when you have that many classes, extensive refactoring capabilities are a bless).

Not having quick fixes is a major drawback, I'm too used to code "by intention", that is, to call methods/fields that are not there and let Eclipse create them...

And finally, I have to pay 30$ because I want a good developer environment for web interfaces built on top of Struts/JSF (depending on how old/new is the project) and Eclipse does not support them out of the box...

So? There is a subversion plug-in for NetBeans (and, yes, it was updated for 4.1).

NetBeans is a very good IDE but its Subversion plug-in is not something to write home about, regretfully. The plug-in does not currently support graphical diffs or the same level of integration as, say, NetBean's CVS plug-in. Hopefully, it will be addressed in the future.

On the other hand, Ant integraion, the way it's done in NB, is certainly a great feature to have.

It has been interesting to watch the recent development of NetBeans. It is no longer the painfully slow and limited product of years ago. After version 3.6 it has really started to look like a leading IDE, and 4.0 has been a pleasure to use, with some decent refactoring abilities. For some of us Java 5.0 support, and integrated J2EE and Swing tools, are the sign of a modern IDE, not just optional extras (as in some products I could name).

However, switching to 4.1 has not been painless:

Firstly, I dislike the irreversibility of the upgrading of 4.0 projects. NetBeans configuration files are largely XML and one of the main advantages of XML is the ability to add additional information without breaking existing use. Surely 4.1 features could have been added without preventing project use in 4.0.

Secondly, a fully-working NetBeans 4.0 web project, when opened in NetBeans 4.1, gave nothing but a single blank web page when I tried to run it. OK, so it did insist that I switch from Tomcat 5.0 to Tomcat 5.5, so there may be some issues as a result, but I would have expected a modern IDE to either highlight those problems or, at the very least, to show a warning or some appropriate section of some release notes about this. First impressions are important!

I know this is personal opinion, but I really disagree. I find the perspective-based approach of Eclipse to be anything but simple. It seems to be a very fussy and cluttered IDE. With Java 5.0 and the associated improved Swing running it NetBeans is no slower (I can't talk about other IDEs as I have no recent experience of them).

I'm going to have to agree with some of the other posters here that, although Netbeans has improved a lot, it's still inferior when it comes to coding. Eclipse and IDEA have support for so many little things that make coding easier. Some of the biggest off of the top of my head are:

1) Quick fixes. Being able to click on a quickfix and have the IDE automatically add exception handling, method stubs for abstract methods, create fields, etc. is a big time saver.

2) Code formatting. Little things like eclipse automatically adds import statements in alphabetical order keeps the anal side of me happy and being able to specify my personal coding style is a bonus.

3) Code templates. The Netbeans code templates are just too limited.

4) Refactoring. They started off well with 4 but it's still limited to a very small number of refactorings.

At this point, Eclipse is still my primary editor for those reasons. I don't mind having to spend a little extra time dealing with hand editing web.xml descriptors and whatnot since 99% of my time is editing the actual code.

1) Quick fixes. Being able to click on a quickfix and have the IDE automatically add exception handling, method stubs for abstract methods, create fields, etc. is a big time saver.

There is a thing in Tools menu called syncronize. If you click on it while being in an inherited class the dialog will pop up prompting you to generate method stubs for abstract methods. That thing also works with interfaces.

2) Code formatting. Little things like eclipse automatically adds import statements in alphabetical order keeps the anal side of me happy and being able to specify my personal coding style is a bonus.

There is a thing called Fix imports. If you press Alt+Shift+F the IDE will arrange all import statements for you. It even deletes unnecessary imports. Also Whe doing code completion likeList list=new ArrayListthe IDE does automatic import ofjava.util.ArrayList

3) Code templates. The Netbeans code templates are just too limited.

Could you be please more specific?

4) Refactoring. They started off well with 4 but it's still limited to a very small number of refactorings.

I don't agree... Netbeans templates are not limited, they simply get in the way. When I was using Netbeans I always turned them off. I want to call a variable st, and bang, I get static just after I press the space bar (at least, that what happened in 3.6, never used Netbeans much since then, as I said, the inability of Netbeans 4.0 to cope with multi source directory projects made me uninstall it after 5 minutes).First Eclipse templates are activated by CTRL-SPACE like normal code completion, plus they are really useful. For example, you want to code a for loop. Just type for, CTRL-SPACE, select the flavour of loop (over an array, over a collection), and then just fill in the iterator name, the collection name (which has been probably already guessed right by Eclipse, looking at the latest collection declared in the code) and the in-loop variable type and name.Want to code an if(instanceof ...) cast bunch of code? Just type the name of the variabile, the type and the name of the casted variable. And so on... Plus, you can add your own.

1) Quick fixes. Being able to click on a quickfix and have the IDE automatically add exception handling, method stubs for abstract methods, create fields, etc. is a big time saver.

There is a thing in Tools menu called syncronize. If you click on it while being in an inherited class the dialog will pop up prompting you to generate method stubs for abstract methods. That thing also works with interfaces.

Thanks, I hadn't seen that feature before. That does not, however, address the full capabilities of quick fixes. In Eclipse if I use a method which throws an exception or add a throw statement myself I can use a quick fix to create a try/catch block, add a catch to the surrounding try (if applicable) or add a throws declaration to the method. There are quick fixes for automatically adding a cast or modifying the type of a variable. There are quick fixes to create new fields for the parameters in a constructor. And there are similar quick fixes for many, many different common occurances when you're coding. These save me a significant amount of time when coding.

2) Code formatting. Little things like eclipse automatically adds import statements in alphabetical order keeps the anal side of me happy and being able to specify my personal coding style is a bonus.

There is a thing called Fix imports. If you press Alt+Shift+F the IDE will arrange all import statements for you. It even deletes unnecessary imports. Also Whe doing code completion likeList list=new ArrayListthe IDE does automatic import ofjava.util.ArrayListSee, but now I need to use a different keyboard combination and deal with a dialog box for something Netbeans should be smart enough to handle on it's own. For deleting imports, sure it's acceptable, but for keeping them ordered and whatnot I should never have to think about it.

3) Code templates. The Netbeans code templates are just too limited.

Could you be please more specific?Specifically I'm talking about how you can define things like the header comment to be placed at the top of new files, the class comment to be placed at the top of new classes, what the code in an automatically generated catch block should look like, etc. These templates are used in every new type created. In Netbeans I need to deal with creating multiple new templates for each of Class, Interface, Enum, etc. and then select my new templates when I create a new class/interface/etc. The Eclipse method of dealing with this is much easier.

4) Refactoring. They started off well with 4 but it's still limited to a very small number of refactorings.

That will change in 4.2I hope so, but honestly, even with several new refactorings, I just can't live without quick fixes. If I had the choice between the two, I'd probably choose quick fixes over refactorings (which is why quick fixes is #1 on my list and refactorings is #4).

The latest version has an annoying bug (some might regard this as a feature).

If I deploy a web app or web service to a remote server (which I registered by specifying an IP address) it puts all URL's in terms of the name of the server instead of the IP address.

My Windows workstation has no idea what "server1" is. As a result if I click "run" my browser is sent to http://server1/MyServlet instead of http://123.123.123.123/MyServletI have to wait *forever* for my browser (and Netbeans) to stop freezing once it has figured out the URL does not exist, so I can modify the URL to point to the IP address.

If I had wanted to use the server name I would not have registered the server using the IP address.

When creating a WebService client I have to modify the files generated by the IDE I am using for my client app (Not Netbeans) to change each URL from "server1" to the IP address, because the wsdl pointed it to "server1".

In addition if I right click an EJB WebService and choose "add to registry" the dialog which pops up defaults the string to "localhost:80/..../...wsdl" even though the project is set to (and deployed to) a remote server and *not* the localhost.

All, thanks for all this great feedback, both positive and negative. As you are I'm sure aware, the NetBeans team has been working furiously on updating the NetBeans IDE. We're in the planning stages for our next release and look at these forums (along with our IssueZilla list, etc...) for direction. So, thanks, we're listening, and look forward to continuing to improve the NetBeans platform.

All, thanks for all this great feedback, both positive and negative. As you are I'm sure aware, the NetBeans team has been working furiously on updating the NetBeans IDE. We're in the planning stages for our next release and look at these forums (along with our IssueZilla list, etc...) for direction. So, thanks, we're listening, and look forward to continuing to improve the NetBeans platform.Tim CramerNetBeans Engineering Director.

TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations technology projects - with its network of technology-specific websites, events and online magazines.