Thursday, September 6, 2007

Visual Studio 2008 Vs netBeans 6.0

A lot of developers I know, in my organization as well as outside, are fanatic lovers of their favourite IDE. Just like programming language fanatics, IDE fanatics maintain that their IDE is all what they need. But in my experience, IDEs like programming languages are only as good as the developer.

In my previous blog entry here, I noted that Visual Studio 2008 and netBeans 6.0 are completely different IDEs and cater to different developers. But 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. Learning things from the "other" person's IDE will finally make "us" more productive. With that philosophy in mind, lets look into the comparison of 2 IDEs that will be released in 2-3 months time.

Visual Studio 2008
netBeans 6.0
Supported LanguagesC/C++, C#,, XAML, HTML/CSS, Javascript, LINQ (Language INtegrated Query),, XML/XSLT, C/C++, Java, Ruby, Php, Javascript, HTML/CSS, JSP, JavaFX, XSL, WSDL, UML

J# support has been removed from Visual Studio. So all, Java-like developers can come back home to Java. netBeans 6.0 supports a lot more languages and has an excellent plugin system to support many other languages.

LINQ is new to VS2008 where you can write SQL-like queries in the programs to communicate with databases and files. XAML gets a superb visual designer in VS2008.

Supported OS/PlatformsWindows and different versions of WindowsWindows, Linux, Unix, Solaris (SPARC, x86/x64), Mac OSX (Intel, PowerPC)netBeans 6.0 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 a VM. VS2008 on the other hand is only targetted towards the windows developer.
Code CompletionFast code completion, but less options at a time. Need to use arrow keys.Code completion, but shows all methods, variables available at once.

Both netBeans and VS2008 have excellent code completion. Visual Studio still is a little faster in showing method names, parameters but shows only one method at a time and you have to use arrows to check different method parameters. netBeans 6 on the other hand has improved from earlier version in speed, but still lacks the speed of VS. netBeans can show all the methods with different parameters at a time, so the developer can choose faster which overridded method to use.

Eclipse does something even better with Ctrl+Shift+R. It will show all types/resource available. Which means if u write NPE, it'll show NullPointerException and NoPermissionException and you can choose. Even refactoring in eclipse is great.

Source Code EditorEditing is simple and easy. Switching between the designer and code screen is double-clicking the controlEditing code is simple and easy. netBeans provides different events when you right-click on the component and code can be written for that specific event.

Source code editing is equally good in both. netBeans 6.0 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.

GUI and RAD ToolsWinForms, 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.netBeans Matisse, JSF Components, Database Application, Beans Binding, Excellent UML design tools, Mobile Designer, BPEL designer are some RAD tools not found in VS2008

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.0 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.0 scores higher than most other IDE

Compiler /Loader / DebuggerParallel compilation on multicore systems, Standard Template Library (STL) for C++ devs to use .net framework, Web Services hosting for WCF-based apps.Newer Lexer makes faster runtime compilation, Javascript debugger with Phobos support and jMaki

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.0. Both VS2008 and netBeans 6.0 have newer javascript debugger which is a happy relief to me since previously debugging javascript was a complete pain!!

ProfilingVS2008 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.netBeans 6.0 has a profiler integrated and a really good one too.

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 6 profiler.

Designing / UMLNot much Designing tools, but Visual Studio 2008 Team System does have some improvements. Team System does have nice code tracking features.UML, BPEL, Flow Designers for Mobile apps and web apps.

netBeans scores pretty high on this one. Although you can always use 3rd-party softwares, 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 lesser there's netBeans UML tools.

Code comparison and tracking isnt available in netBeans. Eclipse does have it and is excellent for comparing codes, but not as good as VS2008.

Testing/MaintainanceUnit Testing tools have slightly improved, Source Control System is added to Team SystemCVS is integrated.

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 is better in netBeans and even better in eclipse compared to VS2008.

Installation SizeVisual Studio installation size is huge and so is the size for the setup programnetBeans 6.0 has increased in size, but is very small compared to VS2008Not 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.
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.0 also have Ruby on Rails Template for making quick blogs. netBeans 6.0 has derby as an integrated database (although JDK 6 has derby). It means you can have databases embedded within your application and no requirement for an external database server like SQL Server or MySQL.

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.

Not much has changed in VS2008 interms of code editing. For a VS.NET Vs Eclipse comparison read here. Another thing of notice is that Visual Studio 6.0 was very fast, but Visual Studio 2008 seemed very slow (starting from VS.NET). In comparison to that, netBeans 6.0's performance has increased (or remained nearly same) compared to previous versions.I'm sure to have missed a few things which other friends have pointed out, but then most differences I missed out have more to do with the language than theIDE. Eclipse developers should really understand that I have just made comparisons with it in places where VS2008 and netBeans are on the same ground, but eclipse does it better. Goodbye to all, and remember the IDE is only as good as the developer using it!!

Happy Coding!!


Ranganath said...
This comment has been removed by the author.
Ranganath said...

I would like to add couple of things which were missing about the Netbeans.

1) Visual game Builder.
2) Generic Language framework (project Schliemann).
3) WSDL editor
4)c/c++ pack(JNI)

Anyways a good comparision


Saptarshi Purkayastha said...

Thank you for your comment and observations. I have mentioned about all of those features in netBeans 6.0 in my previous posts here. I didn't want to repeat myself from my previous post, so didn't note those features in the comparison

Anonymous said...

Nice comparison between the 2 IDEs. Uncommon to find something like this.

Anonymous said...

Also, you can grow old waiting for NB on windows to open a file.

Anonymous said...

If you google for Visual Studio 2008 and IronPython or IronRuby you will find that language support for VS is more extensive than you described.

Anonymous said...

To compare VS 2008 with Netbean is a very stupid. Netbean is a joke comparing to VS 2008 and Eclipse. Maybe, compare VS 2008 with Eclipse next time.

Anonymous said...

You forget cost/price for Visual Studio 2008 and its family (very expensive). NetBeans I think it's free.

Dutt said...

Here I am giving link to the article written by me.which explains the
22 New Features of Visual Studio 2008 for .NET Professionals

Hi Saptarshi Purkayastha, why can't you think to add a column with eclipse features also.

Menios said...

I dunno about everyone else..

But for my development of an M3G (3d) movile java game, netbeans has been the best platform for me.

I remember visual studio has a great feeling of ease, and if I could program real java in it I would...but since visual doesn't support real 100% java or mobile game development, netbeans is the way to go (atleast for me)

Huw Collingbourne said...

You can also program in standard Ruby by installing Ruby In Steel for VS2008. Regarding the 'high price' of VS, it's worth bearing in mind that since the launch of the VS Shell, 3rd party developers can provide VS2008 at no extra cost to their customers. Our entry-level product, "Ruby In Steel (Text Edition)", provides editing and debugging for Ruby and Rails including a copy of VS2008 with HTML, JavaScript and CSS support for an all-in cost of $49.

best wishes
Huw Collingbourne

Alomgir Miah said...

I have used netbeans myself and to tell you the truth it sucks compared to visual studio 2008. The VS debugger is the best I have seen so far.


Anonymous said...

i have used both VS and netebans, and i gotta say VS wins hands down, netbeans drives me crazy.

murki said...

Did you just mention LINQ as a supported language?? oh gosh

Enavarro said...

Hi.. i appresiate your post is really help full... i chose netbeams :)

Greg said...

Can you update this comparison using Netbeans 6.7?

I use both Visual Studio and Netbeans 6.7 at work for C++ development. I can hardly stand using VS any more. I hate VS' search dialog box where as Netbeans has a FireFox type incremental search.

Netbeans has click-through navigation.

I like the way Netbeans has tabbed the search results so they stick around and you can go back and look at them.

In Netbeans, double clicking on the filename tab creates one single editor window, double click again and you get back all the other windows.

Oh, geez, the graphic call graph is the bomb. Plus you get a window pane with the methods called.

the UML plugin is real sweet too.
Greg Strockbine

kevinlong said...
This comment has been removed by the author.
Anonymous said...

Nothing, but Nothing, and I say again, NOTHING, can touch Visual Studio.

cheburashka1326 said...

The article is heavily biased toward NetBeans. Debugging c+ in NB really really horrible if you compare to VS. Project parsing in NB is incredibly slow every time you start. How convenient it is that author did not to mention VS solutions. Yeah NB has project group concept, but it cannot be saved, you pretty much stack with annoying task of recreating all the dependancies every time you checkout. With average software project having dozens or more subprojects I find it incredible that software developers working on NB did not feel the need to add this capability.

dany said...

Nice article, but I have to say that netbean supports XML ( i think you left that out). And whoever said netbeans is slow on project parsing, mine does it almost instantly.. get a new computer =O. Unless you are heavily developing in c# or, netbeans has the edge over VS so I wouldn't call it biased.

Anonymous said...

Thanks for the information

Ramesh Pramuditha Rathnayake said...

but there is no Object browser in Net Beans. Net beans in not user friendly as Visual Studio...

But your the comparison is geart..!