Download NetBeans!

20070209 Friday February 09, 2007

Interview: "Why I want to move to the NetBeans Platform"

I corresponded with Usman, who is a software architect at a telecom company in London, today. Usman had written to one of the NetBeans mailing lists asking about the NetBeans Platform. I asked him a few questions and, after receiving his permission, decided to post the resulting correspondence as a blog entry:

  • Me: Am I correct in understanding that you want to move an existing Swing application to the NetBeans Platform? Can you say something about the background of what you are planning to do?

    Usman: Let me tell you a bit about the company and of course about the application (in fact it's an application suite) that we will be porting to NetBeans.

    We provide products to manage and monitor telecom traffic. The suite comprises products that deal with traffic monitoring, analysis, provisioning, rating & billing and planning.

    The existing Swing client allows us to dynamically and remotely manage users and their access to various parts of the systems. The backend is made of a CDR (Call Data Record) processing engine that receives the input feed from telecom switches, the rating engine to put the price on each phone call, summarizer to generate summarized information.

    The data is mainly stored in MySQL (or ORACLE) database. Entity and Session beans sitting inside JBoss provide the DB connection. We use SOAP for transporting the information from backend to the front client.

  • Me: So what are you expecting the NetBeans Platform to do for you?

    Usman: I believe NetBeans can revolutionize our product suite. Currently there are products that are in prototype stage and we are working hard to get them out. We actually have clients lined-up for them. The big problem that we are facing with our current framework is extensibility. It is extremely difficult to introduce the new applications without refactoring the majority of the system. The current system is simply incapable of catering to our new needs. The result is, the prototypes are still waiting to get completed.

    Likewise, I can list all sorts of issues with our proprietary framework. Majority of these issues will be addressed with NetBeans on board.

    Another very big advantage is this will set us free from having to train new developers about our existing framework (not to mention having to maintain all the study material and documentation for current framework). Of course, they will then have to learn NetBeans. Most of the time they already are using the IDE and so are aware of the ground rules. And of course it is much better to learn from a worldwide community constantly improving the platform than learning about an old framework (and most of the time our documentation is out of date).

    This is something we have learned over the years. The look of your front-end is important. While looking at the products, clients look at the front-end and they think that is what they are paying for. It goes without saying that porting to NetBeans means getting a rich GUI for free.

  • Me: Yes, the NetBeans Platform is exactly what you want, it can cater to all of these needs. But, why the NetBeans Platform? There are other platforms for applications, you know! Why don't you try the Eclipse RCP, for example?

    Usman: Since we made the decision to port the systems to NetBeans, I have been reading articles about comparisons between the Eclipse RCP and NetBeans Platform. Here are the arguments:

    • Application portability is everything for us. Ability to look at traffic stats from anywhere in the world is one of our selling points. Hence comes the classic case of Swing vs AWT (in the case of Eclipse, SWT). I personally think Swing is ahead in this race. And honestly, having worked with Swing all these years, we would like to stick to it.

    • The wizards supplied with NetBeans to help develop the application makes it surprisingly easy to set anyone well ahead. These little automations are excellent for companies like us who are trying to deliver products as soon as possible.

    • The bundled GUI builder Matisse has captivated a few of our developers (even the backend guys are ready to try some frontend stuff using Matisse). If we select Eclipse that will go away :(

Wow, cool answers, thanks Usman! Looking forward to seeing how this porting adventure develops. Hopefully we'll find out in the coming period.

In other news. YouTube presents... Duke's Top 5 Reasons to use Sun Developer Services. Check it out!

Feb 09 2007, 08:19:43 AM PST Permalink

Trackback URL: http://blogs.sun.com/geertjan/entry/why_i_want_to_move
Comments:

There was a project some time ago that made Eclipse run on Swing instead of SWT, using a small (<100k iirc) SWT implementation that delegated calls through to Swing. I don't know how far that got, what it was called, or what day it is. I know a similarly small amount about a project to make Matisse run on Eclipse - apparently that did quite well. Personally I don't care about whether Eclipse uses SWT or Swing, and I generate all GUI code using my fingers, but that only leaves one point that Usman summarised with - the usability of Netbeans' wizards. I don't use Netbeans, so I can't vouch for that.

Posted by Ricky Clarkson on February 09, 2007 at 10:37 AM PST #

Plus the point that the Eclipse solutions you mention need to compete with the fact that they come for free, without any work, straight out of the box in NetBeans.

Posted by Geertjan on February 09, 2007 at 11:43 AM PST #

How important that is depends on how difficult it is to find and install external packages, and how well they are integrated. It's not necessarily a problem.

Emacs is good for writing Common Lisp code in, even though Slime is not part of it.

Windows is good for running Firefox..

Posted by Ricky Clarkson on February 09, 2007 at 11:48 AM PST #

Well, I don't need to do any finding whatsoever for Matisse in NetBeans. It already IS in NetBeans. Plus, the engineers who made the original Matisse are NetBeans engineers -- and Matisse continues to develop constantly, so I'd rather be using the IDE that is home to Matisse than an IDE that has some derivitative of it. Secondly, no matter how easy it is to find and integrate some bridge from Eclipse to Swing, why would I do that when Eclipse is totally SWT focused, with Eclipse advocates going on and on about how SWT is better than Swing? I'd rather be using the IDE where everyone else is also using Swing. But, really, that's just me and I'm sure I'm subjective and tainted by working for NetBeans in the first place. Still, on some intuitive level, why would you look for water in a desert when you're not in a desert in the first place?

Posted by Geertjan on February 09, 2007 at 11:58 AM PST #

I'm an Eclipse advocate, in that if people ask me which free IDE is the best, I'll say Eclipse. But I feel that SWT is a mistake; IDEA certainly is more responsive than Eclipse despite the obvious (hoho) drawback of being a Swing app.

SWT is not actually IBM/OTI's mistake, but Sun's. Rather than expand AWT, they replaced it with Swing, and Swing for a long time seemed slow. I feel that Sun should have done both, or implemented Swing look-and-feels that delegate to the native platform from the start.

I actually write my Swing app in Eclipse (occasionally vim, and IDEA when they give me an evaluation licence - I might actually buy it this time around), though I've never written an app for Eclipse, beyond customising a refactoring plugin.

"Lotus Notes Development Model Considered Harmful", perhaps..

By the way, don't get me wrong, I like the blog post, otherwise I wouldn't comment.

Posted by Ricky Clarkson on February 09, 2007 at 12:11 PM PST #

I don't really know the details of the history of SWT/Swing/AWT and so on. So won't comment on that, hoping someone else will.

But one thing I don't understand: In your first comment you say you can't vouch for the usability of NetBeans wizards because you don't use NetBeans. Then you say that if people ask, you say Eclipse is the best IDE. On what basis is Eclipse "best", then? Certainly doesn't seem like best in your own experience. Which version of NetBeans did you last look at? If you're not familiar with the wizards, which is really one of the first things you use when you use NetBeans, then you don't have a basis for telling people that Eclipse is "the best".

I would say, having used Eclipse a little bit, that Eclipse is "the best" in some areas, NetBeans in others, and so on. I wouldn't conclusively be able to say which is the best overall, it totally depends on what kind of application you're developing, what your needs are, what your background is, what your personal preferences are, and so on. (Plus, community involvement, usefulness and responsiveness of engineers to technical questions, and so many more similar less tangible items...)

By the way, this is no personal attack, just a query, really. Thanks for liking the blog post.

Posted by Geertjan on February 09, 2007 at 12:42 PM PST #

In medium and large scale clients, good extensible UI architecture is key, I agree. This is a great reason to use an RCP. What I'd like to see is a comparison of the EclipseRCP features and the NetBeans RCP features. This is a primary concern when answering the "why NetBeans?" question. The two reasons cited to use NetBeans over Eclipse are insufficient: MyEclipse has ported Matisse to Eclipse, though it will continually be behind, the cheap MyEclipse subcription model mitigates the problem somewhat. I think you can use Swing in EclipseRCP, though that is probably a path not well-worn. The question remains - is NetBeansRCP APIs any better or worse than EclipseRCP APIs?

Posted by Michael Bushe on February 12, 2007 at 12:04 PM PST #

Michael, you're asking an impossible question. What is the definition of "better" when it comes to API's? In this blog there's an interview somewhere with Kai Toedter from Siemens, who is mainly an Eclipse user, where he and I discuss the similarities and differences between NetBeans Platform and Eclipse RCP. We also intend to do a presentation on this topic at JavaOne and have submitted a proposal for a technical session on this topic.

Secondly, even though Matisse has been ported to Eclipse, it is impossible to argue that the Matisse that Eclipse uses is up to speed with the Matisse in NetBeans. After all, the Matisse engineers are NetBeans engineers and so Matisse in NetBeans is always going to be several steps ahead to Eclipse. Similarly with Swing in Eclipse RCP. Why would you do that to yourself? If I wanted to make a SWT application, I wouldn't fool around looking for a bridge between NetBeans and SWT. I would use Eclipse RCP, without any hesitation. The same goes with Swing and NetBeans Platform. If you want to develop a Swing application on a platform, the first logical platform to pick is the NetBeans Platform.

Posted by Geertjan on February 12, 2007 at 01:06 PM PST #

anamaroine

Posted by maroine on April 04, 2007 at 05:23 AM PDT #

Post a Comment:

Name:
E-Mail:
URL:

Your Comment:

HTML Syntax: NOT allowed