Eden Project Coffee by tico24

Netbeans 6.1 spanks Eclipse and challenges Visual Studio

Matthew Nuzum —  — 28 Comments

Strong words, I know, and there are definitely some qualifying statements. I am not throwing out Eclipse just yet because it can still do some things that Netbeans doesn’t. But first, let me say that I’m excited by Netbeans 6.1, which is currently in Beta. I’m excited because I see in it a product that will challenge Microsoft’s Visual Studio, especially for new users and those doing development without a computer science background.

Netbeans has a simple but powerful GUI designer. Create your application window, drag buttons onto it and then double click them to add code and events. If you’ve used the GUI builder in VBA applications, it looks and works a lot like that. And it is extremely easy to learn while at the same time providing powerful layout helpers.

GUI Builder

Netbeans is also tightly integrated with a web application server which enables you to quickly write and debug web applications. Create your JSPs and servlets, hit run and voila!

The Netbeans website and documentation is readable by people who don’t yet know Java. I can’t tell you how important this is. The biggest barrier to Java adoption is all the acronyms. The tutorials are easy to follow and don’t assume you’re a CS expert. This is glorious! In 20m you can build a graphical calculator program and in 45m you’ll be building CRUD style graphical database applications.

And the best part is, unlike with Visual Studio, your applications will run on Windows, Mac OS, Solaris and Linux.

One more esoteric feature I like is that there is already a plugin for a distributed version control system. It’s mercurial, which is not the dvcs I use (I use bazaar) but that a plugin already exists implies it will be easy to integrate other dvcs systems. It also integrates SVN and CVS support.

So besides the above, why do I think Netbeans beats Eclipse?

  • Netbeans is an IDE first, and a platform second. Through and through, Netbeans is a tool for writing code. Contrast this with eclipse, which, quoting from their homepage, is an “open development platform comprised of extensible frameworks”
  • Netbeans is moving quickly. New features are being added and they’re being added in a way that makes them useful and mature. I’m not sure why eclipse lacks SVN and DVCS support, I’m not sure why there’s no GUI builder and I have no clue why you need a plugin to debug web applications.
  • The features – SVN, application server, built in database access, web services support

With every line of code I write I start to like it more.

So where does Eclipse beat Netbeans?

  • More programming languages supported. PHP is a biggie. There are at least 10x more PHP developers than Ruby on Rails developers, yet Rails is tightly integrated and PHP is derelict. For the record, I’d enjoy Python/Django support too.
  • For RCP type applications Eclipse is better because it looks like a native program… on Windows it looks like Windows, on Linux/GTK it looks like GTK. That is nice. But if I were building an RCP application I’d still use Mozilla/XUL rather than eclipse, simply because it uses web technologies like XML, CSS and JS.

So where do they both need to improve?

  • I’d like a GUI web page builder. Similar to the GUI form builder.
  • I want to debug PHP web applications. And I’d like it to work out of the box on both Windows and Linux.
  • I need easy testing of web applications in multiple browsers. Since Gecko (firefox) and Webkit (Safari) rendering engines are both free and open source, why can’t these be embedded into the IDE?

Things I’m looking forward to trying:

  • I see there is a PHP project for netbeans but it doesn’t install on 6.1 beta and it looks like there are many steps to getting it working. I’ll keep my eye on it.
  • I’ve been reading books and playing with Rails in my very limited free time so I look forward to giving it a shot in Netbeans. I wonder if it has the same quality of debugging as servlets.
  • There is a RESTful Web Services plugin.
If it helped, please share!Tweet about this on TwitterShare on FacebookShare on LinkedInShare on Google+

Matthew Nuzum

Posts Twitter Facebook

Web guy, big thinker, loves to talk and write. Front end web, mobile and UX developer for John Deere ISG. My projects: @dsmwebgeeks @tekrs @squaretap ✝

28 responses to Netbeans 6.1 spanks Eclipse and challenges Visual Studio

  1. No the problem is not the layout managers. I know these well enough. The problem is Matisse refusing to do simple things involving component positioning.

  2. Anuj is correct. For writing swing apps NB has the slick gui builder (the best I’ve seen for layout). It would be nice to have something similar for web apps. Something like dreamweaver would be great but it could be even simpler than that would work. I wonder if there’s a way to embed tinymce or similar into nb. This looks promising: NetBeans platform quickstart – [build an HTML editor](http://platform.netbeans.org/tutorials/61/nbm-htmleditor.html)

  3. Anuj Guruacharya June 30, 2008 at 11:45 am

    jonnathan, i think what matt meant by a visual web page builder was somehitng like front page or macromedia dreamweaver where you can actually see the HTML textboxes when you drop it into the design page.
    In The visual web JSF you have to run the server etc…thats OK. but for web development we also need a visual HTML designer.

  4. I agree with what you said about Matisse. I find it incredibly frustrating to get components to line up and stay where I want them – I keep trying in the hope that I will stumble upon the secret trick I’ve been missing all along.

    I wonder if you have ever tried Interface Builder for OS X. That looks a bit like Matisse with the way it puts up guidelines automatically when a component has the ‘right’ spacing from another component, but it just works much better IMO. It is very easy to get a good looking layout that will scale nicely.

    Pedrow.

  5. Jonnathan Guambe June 26, 2008 at 6:52 am

    Great POST!
    and about GUI web page builder, maybe you should try visual java server faces (Visual JSF).
    It can be found in Netbeans plugin manager or if u download netbeans with Web & Java EE packages.

  6. Eclipse have had free SVN support through plugins for years.
    The reason it isnt distributed per default could be debated,
    but it so easy to get.

  7. I have been using Netbeans since 5.5.1.
    Unfortunately you can not develop big applications without getting unbearable slow performance. It seems that when you have several projects open Netbeans becomes unresponsive.

    My last project was a Web application with a GUI front end and Web front end using Richfaces. At the beginning switching to 6.1 was a blessing, but when the project grew, uff!! Now we are evaluating other development platform, because a simple test of a page sometimes takes up to 3 minutes just to show it up on a web browser.

    Disappointment is the right word to describe it.

    Development equipment:
    Windows XP
    2GB memory
    Intel duo core 1.67ghz
    120GB hd 7200rpm

  8. … the way Swing layout managers work. I use Matisse for (I may say) complex application layouts with lots of more than half a dozen components, and it works very well. What I must admit: it works very well since I took a deep dive into the various Swing layout types. To me, that is the secret: you really need a thorough understanding of the Swing layout managers! Without that, UI programming in Java is not much fun in general.
    I agree: UI programming in Windows is much easier – in the start. Essentially that is due to the rather simple anchoring strategies (be it Visual Studio or Delphi, that does not make much difference).
    But I also had some projects where I had to implement some more sophisticated requirements for the UI that really made wish for Swing-style layout managers for native win32 apps.
    So, in my oppinion in many cases the problem sits “in front of the screen”, not behind …
    ;-)

  9. I started out with Netbeans 4, then NB5, then NB 5.5, then 6, then 6.1.
    I started out with Eclipse 3.1, 3.2, 3.3, now 3.4.

    I use NB for project generation, projecct template, wizards, GUI building.

    I use Eclipse (with plugins) to do code coverage, code analysis, code review, debugging.

    In my opinion, Eclipse SVN (subclipse) trumps NB SVN support.

    There is no one better IDE. Both has its strong points. I used both.

    But come down to it, I spend more time in Eclipse.

  10. If you have worked extensively (for 2 years plus) in both IDEs (like me), then you wouldn’t make this statement.

  11. About the Matisse problems; they rely on the layout. try changing the layout to NullLayout (Do that on a new form, on an existing form, it will reset all the components, and you would need to do again your form design), this layout let you do everything manually without that lousy automatic position and resizing behavior. Of course you will lose some features, but you will earn freedom :) . Hope this help

  12. I’ll admit that I have not used the layout manager for anything more than simple dialogues. Is development on Matisse continuing and the developers attentive to user concerns? If so, it may be best to explain your concerns to them directly since I doubt they read this blog… Ah, [just found it](http://form.netbeans.org/): They specifically say, “We need the community feedback, your ideas and comments are welcomed at nbusers@netbeans.org or users@form.netbeans.org mailing lists.”

    There are so many good comments here, please don’t let them go to waste.

  13. I just sent a commented copy of my comment to users@form.netbeans.org.
    Thank you for your suggestion. B-)===

  14. but only for the first time form designing. IMHO, the Problem is: every component is layouted twice: in a horizonal and also in a vertical group. Now, if you do layout the form for the first time, you know it exactly to which groups all your components belong and which behaviours there are. If you will do some changes later – sorry. If you hit a wrong anchor for the new component (this is true in 95 per cent of all cases), the whole group will be moved. Much worse: the whole line and column is concerned. So, you can get simple layouts quickly, also the ones with repeating component groups (table like). But don’t try to change it before you have perfectly learned it. Take a look on the generated code first – it is nothing for the daily praxis.
    In the other words: this layout maanger is not too much scalable.
    But, fortunately, there are also another approaches aside of Matisse and GridBagLayout. See MigLayout, for example. Here you can define your layout in few lines and they stay readable for your grandchildren, too.

  15. I’ve been primarily a Swing programmer for 6 years now. I’ve also done a couple of C# winforms apps. I’ve got to say that my productivity in building forms in Matisse is far less than when building forms in Visual Studio. Matisse is great on simple forms and dialogs. But on more complex forms, it becomes unbelievably frustrating and time-consuming. It tries to be too intelligent about what it thinks you want to do and often just moves things around wildly when trying to do simple adjustments or additions of components.

    If Matisse just stuck to a simple anchoring and alignment approach where you can anchor any and all edges of a component to other components or to the enclosing container edges, life would be easy. Currently it seems to prevent anchoring more than 2 edges of a component and relies on grouping to do the resizing. There’s too much mystery meat in its approach. Visual Studio has a simple anchoring, aligning and docking approach that just works.

    I know that I’m in the minority here because I only see people raving about Matisse. I wonder if these people have built complex forms using both Visual Studio and Matisse. I’d love for someone to point out something that I’m doing wrong so that I could love Matisse.

  16. I couldn’t agree more with the last note about Matisse.

    Mostly it seem to work fine but….

    When there are more than half a dozen components on a form it can be very frustrating.

    I’ve spent hours trying to get the layouts I want with it and it seems to be more trouble than it’s worth sometimes. Sometimes it insists on stretching and stretching my forms. Every time I try to anchor a comonent on the right side it moves it further right! When this happens I have to revert to an earlier version of the form and try to add the components in some order it finds acceptable.

  17. Want to back Netbeans! July 24, 2008 at 4:00 am

    6.1 can’t debug ear files in Glassfish, I’ve seen a few places that say this and I can’t hit breakpoints.
    How’s that ever going to compete with any IDE. It’s a basic requirement.

    Who released it with this problem?

  18. I have used Netbeans since it was called Forte

  19. >> Netbeans is an IDE first, and a platform second. Through and through, Netbeans is a tool for writing code. Contrast this with eclipse, which, quoting from their homepage, is an “open development platform comprised of extensible frameworks .

    > I have no comment on this ;-)

    >> why eclipse lacks SVN and DVCS support ?
    > Subclipse plug-in beats all other graphical SVN clients, even Subversive is enough.

    >> why there’s no GUI builder
    > cuz there are more than Swing (RCP-SWT, SwingWT, SWTSwing, … ) , and you can select the plugins you want to create UIs. IMHO A tool for *writing code* should focus on other functions like refactoring than drag-drop for forms – which is usually resource-hog and low-demand .

    >> why you need a plugin to debug web applications
    > JEE version of Eclipse bundles WST plug-in. FYI, “plug-in” implies “optional” which means you can find alternatives or remove some functionality if the “built-in” one causes more trouble than benefit.

    >> SVN, application server, built in database access, web services support
    > AFAIK Eclipse supports all those functions , at least by the plug-ins. And they works like charms.

  20. Visual studio doesn’t mean .net, it uses a whole set of Usability research findings embedded into it.

  21. I was forced to use Eclipse because it has better integration with ibm products, such as lotus domino .

  22. i use both of them (Eclipse and Netbeans) to work. I think programming is not only creating GUI Component. Lot of time i’ve spent to create bussiness process / bussiness model. i need speed of respon when i code, and i get it from eclipse.. (Netbeans very slow)

  23. I teach a class on Java to my fellow employees, I use BlueJ to start the class, then move on to a full featured IDE. University prof buddy said students were all using Eclipse, so I set up the class to use it. BUT now that I’m seeing NetBeand 6.1, I’m going to switch horses and use it instead, though I’ll still present an Eclipse overview.

    For me it’s the GUI editor. You have to backtrack a version and use a plugin to do it with Eclipse. NetBeans has a BlueJ edition, so easy segue from BlueJ -> NetBeans BlueJ edition -> NetBeans 6.1. Plus the UML capability looks good – though haven’t exercised it much other than to create a class diagram. I wonder how well the “round trip” really works – Rational (now part of IBM) always pushed this concept. I do get weary of drilling through all of the framework rhetoric in Eclipse – I just want to build Java applications. If I were a tool builder and needed an open source framework to roll out my stuff, then I’d be more of an Eclipse fan I suppose.

  24. I was forced to use Eclipse because it has better integration with ibm products, such as lotus domino.

  25. Thanks for the comment Angad,

    I have updated to 6.1 and am excited. I am watching the PHP support very closely waiting for it to become installable in the regular NB release (it appears that you can only get it if you download the special PHP early access version of the IDE). Also I saw that Sun has made some investments into Python and hope that we will soon see results from that show up in netbeans community.

    I also want to point out that Sun has [certified OpenJDK and Glassfish](http://www.ubuntu.com/partners/sun#stack) on Ubuntu 8.04 server so that it should be very easy to deploy java web applications to Ubuntu server. My brother and I will be putting this to the test soon.

    It looks like glassfish and java installation is as simple as:

    sudo apt-get install glassfishv2

    Which if so, should make Ubuntu Server the easiest to configure _entirely free_ Linux based Java application server. I realize some commercial distros include Java and an application server, but for a completely free/oss solution _single step installation_ looks pretty slick.

  26. By the way, I looked through the page where the winners of the blogging contest were announced and my favorite was this one where Pat Mysterio Jr. shows how to create a [peer to peer application in netbeans without writing a single line of code](http://padsterprogramming.blogspot.com/2008/04/beans.html)! Fantastic!

  27. Congratulations about ur post….!!! It’s the winner..!!

  28. Excellent Blog post matt. Congratulations on winning the Netbeans 6.1 Beta Blogging Contest!

    Looks like a lot has improved only since after you blogged ! (netbeans improving at supersonic speed!)

    Most of the points you’ve mentioned against Netbeans don’t hold true anymore.. :)

    Here are some updates in Netbeans 6.1:

    -New Swank PHP Support in Netbeans Early Access for PHP – Create Projects, Deploy, Run, Debug (yes, even debug!) (http://wiki.netbeans.org/PHP)
    -JavaScript Editor with Semantic Highlighting, Refactoring, etc, Debugger and much more (http://wiki.netbeans.org/JavaScript)

    Coming Soon – Projects being developed under Netbeans Innovator’s Grant (http://www.netbeans.org/grant):

    NBPython
    NB-XUL (XUL Support in Netbeans coming soon!)

Leave a Reply

*

Text formatting is available via select HTML.

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>