Monday, May 19, 2008

Netbeans 6.1 Vs Visual Studio 2008

Its been a while that Netbeans 6.1 has been released and I thought it would be a good time to update my previous comparison between Visual Studio 2008 and NetBeans 6.0. Netbeans 6.0 added major features and NetBeans 6.1 comparatively is a minor upgrade, but nonetheless added lots of new improvements. Visual Studio 2008 was also in beta at that time. In light of new improvements and changes, I thought it'd be good to have an updated comparison between the two IDEs.

We need to understand that each IDE has something better and makes the developer more productive. Also, please keep in mind that I'm not comparing .NET and Java here, but only 2 IDEs, so we discuss features that can be applied to both languages/platforms.

Netbeans 6.1
Visual Studio 2008
Supported Languages C/C++, Java, Ruby, Php, Javascript, HTML/CSS, JSP, JavaFX, XSL, WSDL, UML, Groovy, Scala, Prolog, Tcl C/C++, C#,, XAML, HTML/CSS, JavaScript, LINQ (Language INtegrated Query),, XML/XSLT. Both Visual Studio and Netbeans are extensible and can support new programming languages.

VS2008 uses languages services through which VS supports languages like Ruby, Python and F#. These are not out-of-the-box though and are difficult to add to the IDE. You even have to pay some bucks to get those languages integrated with VS and different vendors sell configured IDEs for those languages.

Netbeans on the other hand has an excellent plugin system and finding and installing new language support is simple and easy. The plugin manager shows available plugins that support the new languages and anyone can create/install these new plugins free of cost.
Supported OS/Platforms Windows, Linux, Unix, Solaris (SPARC, x86/x64), Mac OSX (Intel, PowerPC) Windows and different versions of Windows Netbeans 6.1 can be installed and run on a host of different platforms. It's open-source and it's Java. So, it generally means it can run anywhere with the JRE installed. VS2008 on the other hand is only targeted towards the windows developer.
Code Completion Excellent code completion for a host of different languages and understands lot more language docs. Fast code completion, but less options at a time. Need to use arrow keys. Visual Studio 2008 has a snappier code completion compared to Netbeans 6.1. Code completion and hints speed has improved in 6.1, over previous versions, but still slower than VS2008.

VS2008 requires using the arrows to scroll through different parameters of methods while Netbeans shows all at one go. Thus, learning through Netbeans is better for newer programmers, who want to find the best method.
Source Code Editor Editing code is simple and easy. Provides different events when you right-click on the component and code can be written for that specific event. Editing is simple and easy. Switching between the designer and code screen is double-clicking the control Source code editing is equally good in both. Netbeans 6.1 has a better feature where it can highlight a variable that used at different places. So you can easily identify the lines at which the variables are used when you are writing code.

Refactoring code is slightly better in Netbeans and offers a lot more options compared to VS2008. Moving code is slightly better in Netbeans 6.1 than VS2008.

Visual Studio's code editing is lot more integrated across different types of projects. Netbeans still seems to be separate IDE for Java EE and Java SE or Java ME development. Like #region works on all projects for code folding, but Netbeans doesn't have such a common code folding (i.e. <editor-fold> doesn't work in all projects). 

Netbeans 6.1 has an excellent JavaScript Editor which is on par with VS2008's Intellisense JScript & AJAX Editor. The JavaScript docs integration in Netbeans 6.1 is better and code hints are better in Netbeans 6.1. Check this video to see the strength of the new JaavScript editor in Netbeans 6.1.
GUI and RAD Tools Netbeans Matisse, JSF Components, Database Application, Beans Binding, Excellent UML design tools, Mobile Designer, BPEL designer are some RAD tools not found in VS2008.

Java ME GUI development is excellent. Excellent device management in Netbeans 6.1. SVG support helps create great looking scalable mobile applications. Useful common components from Netbeans for MIDP.
WinForms, ASP Form designer are great. XAML visual designer, Database schema managers, VB-XML bindings, Vista UAC manager are some of the enhancements to the VS2008's RAD/GUI tools. Both IDEs are probably the best GUI builders and RAD tools. VS2008 Team System Database Edition has excellent database-code integration tools. LINQ code generators are another excellent feature in VS, not found in Netbeans. Netbeans plans to add similar features in Netbeans 6.5 and it makes more sense to add these features, since MySQL is now part of Sun Microsystems.

Visual Studio's VB designer was excellent and probably helped VB reach great popularity. Today Microsoft expects same with XAML designer which can import designs made in Microsoft Blend. Winforms and ASP forms are great as always, may be sometimes better than Netbeans. You can create the Ribbon UI of Office 2007 very easily using VS2008.

Netbeans until version 4 not much of a RAD tool, but today is probably the best RAD Java IDE out-of-the-box. JSF web app designer is great, maybe not be better than ASP forms, but its not behind as more JSF components are added. Swing Application Framework and Database applications are awesome and you can build amazing dB driven apps in minutes. Check out the video and you'll realize how?? Netbeans 6.1 features an even better Mobile Application Designer for JavaME (J2ME), which can design screens and play with SVG menus. Haven't seen a simpler mobile app designer ever, with nice flow designer. RAD tools are something netBeans 6.1 scores higher than most other IDE
Compiler /Loader / Debugger Newer Lexer makes faster runtime compilation, JavaScript debugger with Phobos support and jMaki. GWT is also supported. Parallel compilation on multicore systems, Standard Template Library (STL) for C++ devs to use .net framework, Web Services hosting for WCF-based apps.

Debugging AJAX scripts and AJAX components within pages are excellent.
Multicore compilation in VS2008 does improve performance by a good 25-30% over previous versions on C# apps. I wonder how much of multi-processors or multicore, the java compiler uses. Really couldn't compare compiler benchmarks since they are different languages.

Visual Studio 2008 brings integrates web services hosting, which earlier had to be done separately by the users. netBeans has tomcat 6 and glassfish v2 integrated, so VS2008 comes on par with netBeans 6.1.
Netbeans 6.1 still takes about 30sec to start whereas VS2008 starts in 20sec. But for Netbeans it really depends on how many modules you've installed. I've seen Netbeans load within 20s with only the basic modules installed.
Profiling NetBeans 6.1 has a profiler integrated and a really good one too. VS2008 improves load testing capabilities by providing a multiple machine graph view that brings together the test results, performance, and health of all the machines under test. A new area in VS2008 is the ability to drive system performance tuning and diagnostics through the VS test tools. This enables developers to run profiling during tests.

Profiler is great addition to Netbeans. While coding you can experiment and choose the best algorithms/implementations by checking memory, processes through the profiler. A load analyzer like Mercury's LoadRunner is a highly specialized 3rd-party tool, but people who want simple stuff should really be happy with the Netbeans profiler.
Designing / UML UML, BPEL, Flow Designers for Mobile apps and web apps. Not much Designing tools, but Visual Studio 2008 Team System does have some improvements. Team System does have nice code tracking features. Netbeans scores pretty high on this one. Although you can always use 3rd-party software, but its great to have it in the IDE itself. VS2008 is not much of a software designers tool, although the Visual Studio Team System is a great improvement. IBM's Rational is great, but then for the money-saver there's Netbeans UML tools.

Code comparison and tracking isn't available in Netbeans. VS 2008's Code Metrics does an excellent job at analyzing code and reporting about code. Excellent stats can be found through Code Metrics

& Collaboration
CVS, Subversion and Mercurial are integrated in Netbeans 6.1. Unit Testing tools have slightly improved, Source Control System is added to Team System Unit Testing is excellent in Netbeans compared to VS2008. Ant tools are useful, but VS2008 creates scripts in Team System that can do nearly similar things.

CVS, Subversion and Mercurial make Collaboration Tools in Netbeans better than VS2008. Clearcase is also available as a plugin for Netbeans.
Installation Size & Price Netbeans 6.1 has increased in size, but is very small compared to VS2008. Netbeans 6.1 available with different bundles.

Netbeans can be downloaded free online or you can request a free DVD to be shipped.
Visual Studio installation size is huge and so is the size for the setup program.

It is also costly. But developers can try Express Editions free of cost to get the basic IDE.

Not much here to say, but VS2008 has .Net Framework 3.5 integrated with it and is a requirement. Also SilverLight CLR is added. A lot of other required libraries for WPF and WCF, which makes it larger in size.

After MySQL buy, we also have Netbeans 6.1 bundle available with MySQL. Netbeans 6.1 bundles are also available with JDK 6.
Misc Specialities Visual Studio 2008 has a something called "Visual Studio 2008 Shell". Its just like the Netbeans RCP or Eclipse platform. It allows developers to create their own IDEs based on the platform and we know how successful eclipse has been to do that. Read here for the discussion

Netbeans 6.1 also has Ruby on Rails Template for making quick blogs. Netbeans 6.1 has derby as an integrated database (since JDK 6 provides derby out-of-the-box). It means you can have databases embedded within your application and no requirement for an external database server like SQL Server or MySQL. Netbeans 6.1 is ideally suited for creating Web services. Axis2 is supported for Web Services in Netbeans 6.1. Netbeans also allows faster creation of apps that make use of web services. Developers can simply drag and drop operations under those services into a POJO, Servlet, JSP or RESTful web service and the IDE will generate all the plumbing code to access those services.

VS 2008 does not include specific tools for editing WCF's XML configuration files. After Microsoft Blend import, web designs cannot be exported back to Blend.

The performance improvement in Netbeans 6.1 is a welcome change. Performance has improved as much as 40% in Netbeans 6.1 compared to Netbeans 6.0. Visual Studio on the other hand has slowed down over the years starting from VS.NET.

Both the IDEs still need to improve a lot more on RIA development with the focus slowly shifting towards a more desktop looking web. Expression Blend is moving pretty good for Microsoft and is an excellent tool for XAML/Silverlight designing. On the other hand, Netbeans isn't doing enough to support JavaFX Script yet. With all the talk about JavaFX at JavaOne 2008, we hope to see JavaFX come better in Netbeans 7!!


Anonymous said...

Netbeans has really improved a lot lately and probably is becoming the best IDE for Java. Sun's publicity and marketing has also been very good with Netbeans.

Anonymous said...

Eclipse still is better than Netbeans... I think that is one reason you never compare eclipse with Netbeans, not last time...not this time...

Anonymous said...

arimgyyHi there,

Designing / UML and those below are in the wrong columns, VS2008 description is in Netbeans column etc.

Otherwise, great comparison!



Also, the Visual Studio debugger is superior in that it allows you to not only step forwards but also backwards, as well as supporting edit-n-continue.

Anonymous said...

There is no point in comparing this two ides. VS is years light above Netbeans.

You obviously don't use them both every they.

Anonymous said...

Excellent comparison and probably highlights that VS is a little too hyped and over-priced. VS is somehow the Windows Developer's holy-grail and hearing bad about it will make a lot of people unhappy... But a nice unbiased comparison like yours finds a good audience... Not too many complaints in comments and some good positives on dzone as well!!

Saptarshi Purkayastha said...

thanks b0bben for pointing out the errors, I've just fixed those!!

@anon-comment #5: I do use VS2008 daily and work on real-world projects on it... and please enlighten me on how many light years is VS away!!

@anon-comment #6: yes, surprisingly I haven't reached many fanatic IDE supporters yet!!

Anonymous said...

As an Eclipse and NetBeans user, IMHO, NetBeans 6.1 is now in the lead.

Anonymous said...

As a long IDEA user I must admit that Netbeans 6.1 did improves a lot and haven't switch to it simply because I'm still in the middle of few projects. My next new project surely will be on Netbeans.

Anonymous said...

I like NetBeans and use it frequently. It installed effortlessly, leaves a relatively small footprint. If I want to uninstall it/upgrade it - no big deal. Very impressive in many ways.

That being said - it takes forever to start up and shut down. Like ALL Java apps.

Overall it really doesn't compare with the .Net IDE.

That being said - if I'm doing java development - which is increasing - its NetBeans. If I'm coding for .Net - then its .Net.

Its really about the right tool for the job and being productive - Overall I like both the fact that both are getting better.

But edit and continue cannot be beat for productivity.

VB6 had that ages ago and it was one of the reasons VB was the one of the most productive languages ever created.

Anonymous said...

Nonetheless, regardless of the "right tool for the right job", Visual Studio 2008 weights a whopping 3.27GB !! while NetBeans 6.1 - only 25MB. The plugin installation is free and can't be easier.
VS weights as much as several OSes put together cause it doesn't have such a well thought plugin architecture, in fact, looks like it has none.
If the next NetBeans upgrade gets delivered in the near future and gets a whopping set of new features and speed improvements like we had from 5.5 to 6.1 then NetBeans will virtually kill VStudio just like the lightweight Flash killed Quicktime in the web-based movie area.

Anonymous said...

VS.NET does in fact have a plug-in model. It's basically like the electric outlet extenders for the home. Insert a 3-outlet plug into one outlet. If you need more, insert more outlet extenders on top of the first. And so on, and so on.

In short, MS just keeps adding more layers on top of layers until you have a fire hazard waiting to happen. Many CPUs have been burned up with this technique.

Anonymous said...

As you are a professor yourself and you have mentioned that netbeans is good for learning Java, you should try Netbeans BlueJ Edition. Although its based on a little older version of netbeans and lacks some newer features, it is a good IDE for learning basic Java. - PHP, CSS & Javascript Tweaks said...

Today I've looked at Netbeans 6.5 milestone 1 and I must say it's looking great!!

I was able to do phpp debugging, etc!

IMO I think Netbeans is the prefered choice of most web developers but don't take my word for it go and give it a spin!

Can't wait for 6.5 with those wonderful PHP and Javascript features

Anonymous said...

There is an error in your comparison. You state:

"VS 2008 does not include specific tools for editing WCF's XML configuration files."

Create a WCF Service Library project, right-click on App.config, and select "Edit WCF Configuration". This invokes the Microsoft Service Configuraiton editor.

You might "use VS2008 daily" but it's clear you don't use it enough. :)

Comparisons like these are useless because you clearly have a bias towards a particular IDE and your analysis is anything but objective.

Anonymous said...

Actually I used RAD (current project at work), Eclipse Ganymede (when working on said work project at home), Netbeans 6.1(for all my utilities and Swing tools and apps) and VS professional over the last year to port some of our said utilities to VS for some upcoming .NET work. Well from using them all I think they all have their strengths. However I can say that I was very dissapointed with VS in general mainly due to its complete lack of effective refactoring support. When you have been using Eclipse or Netbeans for any amount of time you get spoiled with the incredible refactoring capabilities. I had to plop down an extra $100 bucks to get a decent refactoring plugin for VS. Something that should have been built in. The other issue with VS is the C#. I have mastered it now but after writing both Java and C# I can't imagine why anyone would want to code in C#. Basically Netbeans 6.1 does everything you can do in VS and does it better in most cases and it is free to boot. The only reason I would code anything in VS now is if I have to for a project or I want to write a Windows only GUI that needs tight integration with other MS products. And as for Netbeans compared to Eclipse. More of a mixed bag, but all and all I prefer Netbeans. It just does more out of the box. Less hassle with plugins and its Swing and web development tools are superior.

Anonymous said...

What about the most important IDE feature, debugging? Can you step through each line of code from a SQL procedure to javascript in the browser and all tiers in between with Netbeans?

Scotch said...