First Blood on the IDE Wars The tools you need to write a framework
Jan 11

Two things happened today, the first is that I’ve received the extension to the IntelliJ IDEA license and the second is that I’ve downloaded NetBeans 5.0 beta 2.

I want to first thank Alex Tkachman for his extremely quick reply to my post, allowing me to have another two months with what I consider to be the best Java IDE out there, and in fact – The best IDE out there.

I’ve only played a bit with NetBeans so I won’t go into full details of the bad things I noticed, since I can’t say that I have done enough research to know that what I seek is not hidden in some option in the preferences dialog. However, things that stroke me as extremely odd or not possible to be better are mentioned.

So, my list of likes and dislikes:

Dislikes

  • Only CVS is supported Although I don’t expect an open source project, especially in its beta stages, to support StarTeam, (and obviously not ClearCase when it comes to NetBeans), I do expect it to support Subversion (SVN), a source versioning system taking more and more attention and users from classic CVS.
  • No quick-fixes IntelliJ IDEA and even Visual Studio 2005 (to some small degree) fancy themselves with quick-fixes, which come to help when a mistake has been made, or more importantly – When a change has been made to a signature, class name, or parameter which should affect other parts of your code.Clarified by Gregg Sporar, there are quick fixed – Just a lack of many quick fixes you would expect to find. See comments below.
  • Tip of the Day while loading More of a user interface issue, I just love IntelliJ’s tip of the day showing while performing a long operation such as loading a project or using source versioning systems. I found out many “hidden” features of IntelliJ by just reading those tips while the IDE was working.
  • Image files for Mac OS X Another user interface issue, this time specifically for Mac OS X: Packaging should come in .dmg files. Providing .tar.gz is just too… “Unixy”. One open source project I enjoy its packaging is the Adium.

After showing off the bad I’ve seen, I’ll show the good. Luckily, there was enough good to go around, and I haven’t even taken a look at the Profiler and Matisse components.

Likes

  • Mac OS X Package It’s always a treat to see a software packaged the way Apple intended it to. Eclipse, for example, comes with a gazillion files unzipped into your hard drive, among them is the application loader. The Mac packages system is clean and easy to use, and a software using it always gets a plus in my book.
  • Small memory footprint Since I am out of the house a lot, I can’t always use the PowerMac for software development. Low memory footprint means the application will run faster and perform better on my iBook as well.
  • Start work before Classpath When opening a project, instead of waiting while the application indexes the code in the classpath, you will be given the option to start working immediately. Any usage of the classpath, such as in code completion, might not work – But at least you can start writing code if you don’t need it, or review your code which doesn’t need the classpath indexed at all.
  • Pleasing interface It’s always refreshing to see a Java application embedded so well into an OS, especially one like the Mac. NetBeans takes that to even a higher level with “special” Apple tabs, beautiful panels and toolbars and colourful, eye catching dialogs. It’s just a pleasure looking at the application.
  • Ant as backend It’s very convinient having Ant as the backend for compiling, deploying and running the project. Since Ant is cross-IDE, other IDEs will surely find it easier to import the project if it has an Ant build file.
  • Inheritence View Just a convinient view, showing you what the class you’re currently viewing is made of. Simple and very much needed when inspecting code.

Since I got my two months extension, I will continue using IntelliJ; However, I will toy with NetBeans, especially with Profiler and Matisse, and report back here on the blog.

  • Share/Bookmark

17 Responses to “First impressions of NetBeans 5 Beta 2”

  1. Gregg Sporar Says:

    You are correct – out of the box NetBeans 5 supports only CVS. However, you can add support for other version control systems by downloading support from the auto. update center (AUC). There’s a topic in the help file entitled “Working with Other Version Control Systems.” Also, you might be interested in this FAQ entry: http://www.netbeans.org/kb/faqs/version-control-system.html#HowToUseSubversionIn50

    NetBeans 5 does include a quick-fix like feature. When using the editor, if you put the cursor on a line that has an error, if the IDE is able to suggest a fix then a light-bulb icon will appear in the left margin. Clicking that icon will cause the IDE to display the available fix(es). Or you can press Alt-Enter to accept the suggested fix.

  2. Tim Boudreau Says:

    The reason for not doing the dmg on apple is performance: The last time we tried this (Panther), classloading was slower if NetBeans was run from a dmg. Since NetBeans does a lot of dynamic classloading (lazily loading functionality the first time the user uses it), it makes NetBeans look sluggish.

    I’d rather we did a dmg, but I don’t want people to try it that way and say “I tried NetBeans and it was dog slow” because there was an extra layer of I/O overhead going on everytime a class or a localized string was being read.

  3. Avah Says:

    I knew I shouldn’t have written about the quick fixes as it was too obvious that there would be quick fixes. It just got me upset that I changed an interface’s name and I didn’t see a light bulb. I didn’t see anything on the menus, not the contextual nor the window’s menu, suggesting anything about quick-fixes.

    Indeed, using a field that doesn’t exist yet did yield a light bulb and it created the aforementioned field. I stand corrected. However, it would have been more than standard to give access to such quick fixes via the regular menus, to “avoid surprises”, as said here.

  4. Avah Says:

    Tim, I must admit I sometimes “sin” by loading applications from a dmg, as it is slower loading them like that, but writing direct instructions on the dmg’s background (as Skype and Adium are doing) should help make users understand they should copy first, and create less mistakes?

  5. Tim Boudreau Says:

    Not a bad idea. I still wonder a bit, though, if people actually would do it :-/

  6. Avah Says:

    I know what you mean – It’s a risk. But NetBeans was packaged well enough to feel Macky. This is making the last step towards making it feel like any other Mac application. I think its worthwhile checking how many people would actually run an application from the dmg though, and make a decision according to these numbers.

  7. Roman Strobl Says:

    So I found out we used to have a “tip of the day” plug-in… maybe it’s time to resurrect it :) More quick fixes and similar editor improvements are planned for next releases… as well as improved support for Subversion. As Gregg wrote, support for other versioning system is available, but it’s not as simple to use as the new CVS one which was completely rewritten.

  8. Mart Slot Says:

    Hello Avah,

    I have been a NetBeans fan since I started learning Java on college, now two years ago. I have used NetBeans 3.6 a lot, and I was stunned by the incredible improvements made in 4.0, after which I’ve always kept an eye out for any news on new NetBeans innovations. Improvements in 4.1 again amazed me, and the speed at which all these incredible new features were added made me even a bigger fan.

    However, since the start of this school year, I have had to do an (I believe the English word is) internship. And the company where I was going to work used IntelliJ IDEA. Now at first I thought “this can’t be better than NetBeans, I wouldn’t know how”, but IDEA soon proved me wrong. Although NetBeans and IDEA share quite a number of features, IDEA leaves NetBeans far behind. The ease of refactoring, the (enormous amount of) on the fly inspections, live templates, and so on.

    If I see the problems Eclipse has run into lately, especially the SWT trouble, and if I look at the speed at which NetBeans is evolving, I think the battle between those two will in the end be won by NetBeans. The number of IDE creators now aligning with Eclipse looks more like a desperate struggle to stay on top than some great victory, at least to me.

    However, and I think this is something that really has been missing in the IDE war, what I find far more interesting is the ‘war’ between IDEA and NetBeans. (which explains my interest in your blog) At this moment, I think IDEA is still better than NetBeans, because it’s simply a much more intelligent IDE than NetBeans. On the other hand, NetBeans has got built in support for J2EE, including Servlets and JSPs. It provides a UI cover over configuration xml files, which I think is very helpful. NetBeans also has a wonderfull GUI editor (even without Matisse it was great), the profiler, and very advanced J2ME support (the mobility pack). And although NetBeans has a reputation for being slow, I often get the feeling IDEA is actually a lot slower than NetBeans, which I never found too slow (maybe a bit on startup, but IDEA is much much worse, especially in large projects)
    As I was saying, the war between IDEA and NetBeans is something I find very interesting, yet I never hear much of it (or am I not looking in the right places?). In fact, before I started my internship, I had only once or twice heard of IDEA itself. I’m am therefore very interested in what your judgement will be in the end, and I will surely read what you have to say on NetBeans and IDEA.

    I also hope you can keep in mind, when making your judgement, the way NetBeans has evolved over the past two years. I do not know how IDEA has evolved, but I think they do need to worry about this open source competitor closing in on them at great speed.

    Best regards,

    Mart Slot

    PS: Wow, must be exiting to get all these ‘great names’ from NetBeans development to post on your blog ;)

  9. Roman Strobl Says:

    Great names… haha :) I agree, IDEA is better in editor productivity – I completely acknowledge it. I hope that I won’t lose my job, but it’s simply true. We want to change this though – a new team is forming to create a more productive editor. If you’re not persuaded now, try NetBeans after 2 releases! Stay tuned for some interesting announcements around this year’s Java One.

    There’s a lot of areas where NetBeans is much better, take for instance Matisse, profiler, J2ME support, J2EE, etc. It really depends on which kind of applications you write. A lot of people start now to use 2 IDEs at once, which is also quite interesting.

    And one more point … free and opensource is a big reason for many people to choose for NetBeans. The community is great and very supportive.

  10. Roman Strobl Says:

    Btw, you should try the RC1 if you haven’t tried it yet :)

  11. NetBeans 5’s Matisse impressions at Chaotic Java Says:

    [...] Some of Matisse’s features really made me raise an eye brow thinking “How come no one did That before?”. I hope Matisse’s developers keep up the inspirational work, and use it further to enhance their Java code editor, still not reaching the bar IntelliJ set. [...]

  12. Avah Says:

    I actually saw the RC1 was released recently!

    Haven’t downloaded it yet… Might do soon.

    About Matisse – Check out the new post I just placed. It’s about the Matisse experience I had – I can’t say enough about it. It’s just great. :)

    About free and opensource.. That’s a big added value, but remember that IDEA gives a free license to mature Open Source projects, and most developers want the free more than the open source in NetBeans, I’m sure. :)

  13. Avah Says:

    Mart: I hope I won’t disappoint you with my further posts. I do try to give everything a good try, to use as many features as I can see. I’m also trying the “intuitive way” – If I need to go and read about a feature in the 102nd page in some manual in order to activate it, it might as well not be there.

    That’s why I think the tip of the day while the IDE is working is so important – It exposes the developer to the IDE’s secret features in the developer’s idle time.

  14. Roman Strobl Says:

    Nice review of Matisse, thanks. I hope your experience with the Profiler will be also good. Check out this tutorial:

    http://www.netbeans.org/kb/articles/nb-profiler-tutor-8.html

  15. Avah Says:

    I do hope you enjoyed the review.

    Thanks for linking me to the tutorial. I hope I’ll have the 50 minutes expected there to do it. Once I have a few spare moments, I’ll do my check on Profiler on one of the projects I have written. Hopefully it will prove useful and friendly!

  16. Mart Slot Says:

    Roman, you’ve certainly got me interested. A smarter editor is (imho) the thing NetBeans needs most at the moment. Not that the current editor isn’t good, but as you also said yourself, IDEA is better. I’m really looking forward to it :)

    Avah, I agree a tip of the day dialog would be helpful. An IDE as NetBeans, IDEA or Eclipse has such a number of features it takes a while to get to know them all (after almost 5 months, I’m still discovering new useful IDEA features ;) ).

    And I don’t think I could be disappointed by an honest opinion on NetBeans. I’m a believer of survival of the fittest, especially when it comes to software. As long as the best IDE ‘wins’ the war, I’m not really complaining. I would feel sorry if NetBeans would go down in the fight, but in the end, the Java developer has to get the best IDE possible.
    If I were in charge of a development project at this moment, I would probably choose IDEA as the development environment (unless it is a J2ME project). Not just because IDEA lets you develop very quickly, but also because of the inspections, which especially come in handy when working with more than one developer. It makes it a lot easier to use one style of coding.

    As for NetBeans 5.0 RC1, I’ve just downloaded and installed it yesterday. I read a lot of interesting articles on Wicket and so I want to check it out for myself. This also gives me a good chance to see the new NetBeans for myself. Unfortunately I haven’t had much time to use it yet, but I’m really interested in the new features.

    Best regards,

    Mart Slot

  17. Working example of X2J coming up! at Chaotic Java Says:

    [...] The editor, on the other hand, wasn’t as helpful as I’m used to, and most of the time wasn’t up to date with changes I’ve made and showed the wrong errors, or didn’t show errors at all where there should be. Also, as I already commented before, it didn’t have as many quick-fixes as I’m used to, even on trivial points such as creating a new class if one is referenced to and does not exist. // Used for showing and hiding user information in the comment form function ShowUtils() { document.getElementById(”authorinfo”).style.display = “”; document.getElementById(”showinfo”).style.display = “none”; document.getElementById(”hideinfo”).style.display = “”; } function HideUtils() { document.getElementById(”authorinfo”).style.display = “none”; document.getElementById(”showinfo”).style.display = “”; document.getElementById(”hideinfo”).style.display = “none”; } [...]

Leave a Reply

Chaotic Java is Digg proof thanks to caching by WP Super Cache