Geertjan's Blog

  • May 19, 2006

Overcoming the NetBeans/Eclipse Divide

Geertjan Wielenga
Product Manager
Admittedly I'm only a little person in the greater scheme of things. Admittedly I've just returned to my little hotel room after drinking a little bit more than I might have otherwise. However, this is beside the point and the beauty of the immediacy of blogging. So anyway, my theory is that the way to get out of the whole Eclipse/NetBeans discussion is like this... display an application built on the NetBeans Platform. At this point, you're not talking about NetBeans IDE. Neither are you talking about Eclipse. You're just talking about the functionality in your end product. For example, in the BOF I did with Petr Pisl tonight (from 21.30 to 22.30), we demonstrated a hex editor and a music notepad (as well as an IDE tailored for Wicket). At no point was it relevant in which IDE the applications were created. In all cases, we looked at the application and considered the functionality that the application provided. The fact that much of all three applications came directly from the NetBeans IDE or was provided by the NetBeans Platform was irrelevant. The end destroyed the existence of the means.

Another example. Yesterday I had a discussion with a guy working the Compuware booth at JavaOne. He seemed reasonably astute, technologically speaking, (to the extent to which I can be the judge of that). When I talked about NetBeans IDE (after connecting with him based on the fact that I used to work for Compuware myself), he was immediately turned off. When I demonstrated the Music NotePad that I've been working on (see multiple previous blog entries for details), he was very interested and involved in our discussion. At some point, I showed him the "Midi File window", which will let you (once the JFugue API allows it), open Midi files in the Music NotePad. That Midi File window, as I demonstrated several blog entries ago, is NOTHING more than a rebranded Favorites window provided by the IDE. (My only addition to the "Midi Files window" was a properties file with strings that brand titlebars, menu items, and so on.) He said: "So does this mean that I can create desktop applications without reinventing the wheel?" My answer was obvious.

So, tonight, again, at the BOF, I just forgot about the word "NetBeans" as much as possible. Eclipse users have one issue or another with NetBeans (and vice versa). It is a discussion that cannot really be resolved. But what is incredibly useful whether you like NetBeans IDE or not is the fact that you can take whatever IDE module you like and reuse it in your own application. For example, I demonstrated the creation of a new text editor: (1) create a module suite project and deploy it, (2) notice that you get an empty panel for designing your application (with a bunch of useful menu items, toolbar buttons, as well as a windows systems), (3) now add the Favorites module to the suite (using the Libraries panel), redeploy, and then open a file via the Favorites window. You now have a text editor. Use menu items and toolbar buttons (from the NetBeans Platform, which is a factoid that is also irrelevant) to save and open files, and so on. How relevant is it that you developed the application in NetBeans IDE? Not very. The point is that you REUSED a module (or multiple modules) from the NetBeans IDE. Saves time and energy.

So, the point is not how you develop (i.e., what IDE you use), but what (and IF) you reuse.

By the way, in the previous blog entry I mentioned two cool announcements that would be made at the BOF that Petr and I did tonight. Well, the first announcement is that we met with some real, genuine, living Wicket developers this morning. (In their hotel, not far from where Petr and I are staying.) We demoed our Wicket support and they gave us additional requirements to meet. Secondly (i.e., our second big announcement), our project has been open sourced yesterday. Click here for details. We still need to upload our sources, so watch this space for announcements. You'll be able to either install our module in the IDE or... in an application built on the NetBeans Platform.

Join the discussion

Comments ( 13 )
  • Tom Friday, May 19, 2006
    You can reuse code that has nothing to do with either NetBeans or Eclipse. Or you can build on Eclipse or NetBeans as platforms. Familiarity with the UI and development paradigm of either makes it a more likely choice (so your choice of IDE is likely to have an influence). Features are somewhat different, too.

    Personally, I'm afraid to attach to either, since they both seem too heavy as dependencies to me.

    And which IDE I use does matter, too. A lot more of us (I suspect) use IDEs as IDEs rather than platforms for our own apps. And really, I can reuse other libraries if designed well, even if they weren't built as NetBeans or Eclipse modules.

  • Geertjan Friday, May 19, 2006
    Hi Tom, thanks for the comment. Sure, most people use IDEs as IDEs rather than as platforms. But I wrote this specifically bearing those in mind (i.e., the small subset) who want to create their own desktop apps quickly and efficiently. For those people, the fact that the IDE is modular is a massive bonus -- like I said in my BOF yesterday, this subset of people can treat the IDE like a big stack of toys in a toystore. Just choose the toys you need and include them in your app. No programming necessary. A text editor can be created without any coding whatsoever, for example. I know my argument here is a bit tenuous and has a lot of holes in it. However, the general point is that showing a completed platform app moves you beyond the NetBeans/Eclipse debate and into a discussion of the usefulness of a modular architecture. Whether or not NetBeans or Eclipse support that then becomes the follow up, but secondary, discussion.
  • Alex Lam Friday, May 19, 2006

    I guess if everyone just spells out what they like about the tools they use (in general), instead of blowing flames at the tools that other uses, then we shouldn't have any problem.

    I do tell others to try out NetBeans, but I'd never say anything bad about their current tools. After all they have been using the tools all along. And it is just simply impolite to do so anyway.

  • Geertjan Friday, May 19, 2006
    Absolutely, Alex. In addition, funny thing is that some people use BOTH. The guys Petr and I met yesterday use Eclipse for Hibernate and Spring and NetBeans for web tooling support. But what I love more than anything else, personally, is the modularity of NetBeans IDE and the way you can reuse as much of it as you like in your own desktop applications.
  • Alex Lam Friday, May 19, 2006

    I've come across people who use both NetBeans and IDEA as well :-)

    But yes, you have convinced made not long ago that the design of NetBeans Platform is actually as powerful as, if not more, than simply the IDE alone. I'm now keen on utilising it for a project idea this summer, i.e. after 3/6 my last paper!

  • Geertjan Friday, May 19, 2006
    Very cool. And it is also even as extreme as this: one can dislike NetBeans as an IDE, but still decide to use its modules in one's own application. So, you wouldn't use it for anything other than creating (Swing, i.e., Matisse-built) desktop applications -- all other development you would do elsewhere.
  • Geertjan Friday, May 19, 2006
    By the way Alex, I mentioned you in my BOF yesterday. First I showed the Hex Editor (by Tim Boudreau, see a few blog entries ago), then Music NotePad, then Music NotePad with Napkin L&F, and explained its purpose as a draft u.i. for demoing to non-technical decision-makers...
  • Alex Lam Friday, May 19, 2006

    Cheers, that's nice 8-)

    Btw, you can tell the audience to go catch Ken who is within JavaONE somewhere for showing appreciations / giving further ideas and suggestions on the concept :-D

    On a somewhat lower note, curse my finals...

  • Geertjan Friday, May 19, 2006
    Maybe one idea is to have a different Napkin look and feel for each progressive draft. :-) So, the first draft would be the most Napkin-like, the second draft less, the third draft even less, and so on, following the progress of the underlying code. Using a switch in the application's options settings (i.e., via the module, which you would uninstall prior to distributing the application), you could set the draft stage that the u.i. should reflect, and then the u.i. would be updated.
  • Alex Lam Friday, May 19, 2006

    There is actually a blue-print theme within Napkin, and we do have a draft plan for adding a third theme in. So may be I shall add some theme selection mechanism at some point then ;-)

    Of course being able to have a more continuous formality spectrum for the L&F would be better.

    Actually Ken was presenting to me the other day the dynamic switching between Napkin & "formal" L&F for a selected part of your window. His idea is to have the finished parts presented in the "formal" (native, Metal etc.) L&F and leave the unfinished parts in Napkin.

  • Rory Saturday, May 20, 2006
    I have had many conversations about the IDE, and I have used many Java IDE's and I have liked them all (except VisualCafe) for their individual merits. IDE's are like cars everyone has a different preference, everyone likes to have different things, and some people will pay a lot of money for something people know they can get as much performance out of something that doesn’t cost lots of money. At the end of the day I agree with you, it's what you make out of it that is important.
  • Jeff Lin Saturday, May 20, 2006
    Hey Geertjan,
    Thanks again for meeting with us in SF. Hope you enjoyed your stay!
    I have a friend who has a reputation of being one of the best programmers in the Twin Cities software community, and he chooses to code everything in vi. So, in this sense, it's not the IDE that matters, it's the quality of the code you produce, however you choose to do it!
  • Geertjan Sunday, May 21, 2006
    Hi Alex, that idea for having selected parts of an application Napkinized is a great idea. (By the way, when I talked to Roman Strobl a few days ago about Napkin, he said there should also be coffee stains, and possibly beer stains, incorporated in the design!)

    Hi Rory, I agree. It's what you make that makes the difference but, in doing so, it is what you're able to REUSE that speeds up (and creates a consistency for) what you're able to make...

    Hi Jeff, it was great meeting you too! Hope we can work with you and your colleagues and making a very useful module for NetBeans IDE! You could even contribute code to the module, once we've uploaded it to nbwicketsupport.dev.java.net.

Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.