Day 4: Madhu: "Eclipse is a 21st century tool, Visual Studio is 20th century"

Day 4: Madhu: "Eclipse is a 21st century tool, Visual Studio is 20th century"

Summary: Consultant Madhu Siddalingaiah has used just about every development environment under the sun including Visual Studio and Eclipse, so which one does he favor? Since he was speaking at EclipseCon 2006 it isn't hard to guess, but he had some criticisms and suggestions for Eclipse too.

(Madhu Siddalingaiah (Aquarius Solutions) compared Visual Studio against Eclipse in a talk this morning at EclipseCon 2006. --Ed)


Madhu: Most of my experience has been with Visual Studio 2003 so that's what I'm going to cover mostly. But I'll point out some improvements in VS2005 that I know about.

What's so great about Visual Studio? One important feature is that people can jump in and be productive quickly. Out of the box, VS supports multiple languages. Also they have multi-target support (desktop, web, handheld).

VS2005 improves upon this. Microsoft has focused on three "technology pillars": smart client, web, and application lifecycle. They've added code refactoring, more Office integration, and better debugging (for example, you can move the instruction pointer back and re-execute code).

What's not so great about VS? The cost of course. But the biggest thing may be that it uses a traditional IDE model: you write code, compile, fix errors, and repeat. That's ok but in order to do code completion you have to have a clean compile. Compilation is not incremental like Eclipse (immediate "red squiggles"), and the code, editor, and compiler are very separate. So the IDE doesn't know everything about your code while you're working. Also there's no analogous concept to Quick Fix. I have this mode where I just program with Ctrl+Space, Ctrl+1, Ctrl+Space, Ctrl+1, over and over. Also the documentation is weak, or at least not as accessible, compared to Eclipse's integrated Javadoc.

Eclipse requires slightly more training. It's not exactly a traditional IDE, and perspectives and workspaces are not easy concepts for beginners. There are many neat, subtle features that aren't immediately obvious. But Eclipse plug-ins are fantastic. VS has plug-ins but it remains to be seen how well that will pan out.


Prior to Eclipse, I was convinced MS would steamroll Java with .NET and VisualStudio. After all, they have the resources, motivation, and customer base. But after I saw Eclipse I was stunned. VS is a great product but Eclipse is in a different league.

Madhu's Recommendations for improving Eclipse:

  1. Don't forget about the beginners. First impressions are the most important. Wizards are not the answer!
  2. Don't forget desktop applications. Web apps are great but Swing/SWT still matters. Maybe a simple GUI builder should be part of the install, out of the box.
  3. Avoid "biggerism". An effective, polished tool is a work of art. So far, Eclipse has been doing a good job with this. The core of it has been kept small and simple.
  4. Don't be complacent. There's no doubt that Visual Studio will catch up. Eclipse needs to continue to improve, and I don't just mean adding features. To really make it simpler and more effective takes imagination.

Audience: VS C++ experience is a lot better than Eclipse is it not?
Madhu: That's a big challenge. C++ takes a lot of time.

Audience: What would you use for embedded development now?
Madhu: Microsoft doesn't spend much time on non-Windows non-Intel support so VS is weak there.

(I was sitting behind a couple of Microsoft employees. They felt the author didn't really give a fair comparison against VS because he wasn't very familiar with VS2005 or with some of the more advanced features, for example save-and-continue. --Ed)

Take-away quote: "Ctrl+Space, Ctrl+1, that's all you need to know".

Topic: Software Development

Ed Burnette

About Ed Burnette

Ed Burnette is a software industry veteran with more than 25 years of experience as a programmer, author, and speaker. He has written numerous technical articles and books, most recently "Hello, Android: Introducing Google's Mobile Development Platform" from the Pragmatic Programmers.

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.


Log in or register to join the discussion
  • Eclipse vs. Visual Studio

    This is a slightly strange comparison - one targets java the other .net. Eclipse is both an IDE and a target platform (ie RCP). However if you insist on making the comparison there are many details Madhu left out. VS .NET has solution files that you check-in to your source control system, Eclipse doesn't. VS .NET supports printing with line numbers, etc etc. On the other hand Eclipse supports more refactorings out of the box. All in all they are both decent development environments. VS .NET often feels just a bit more polished, but I think I Eclipse will catch up eventually.

    However Madhu didn't compare the platform/framework and that?s were the real difference is. Eclipse supports Windows/Linux/Mac doing a decent job of everything. .NET supports only Windows and provides a very clean API. The real kicker is that while we're struggling with Graphics class with multiple code paths, all the SWT constants in one class etc. MS is off producing a whole new UI engine that Eclipse doesn't have a real answer for.

    In the end it?s not about IDE's - its about the quality of the applications we can build. We can produce very good Windows XP style applications with Eclipse. But MS is changing the game with Avalon.

    Yes I know Vista's ship date has shipped - that just buys the Eclipse community more time to respond.

    Rather than glory in how good Eclipse has become (and it is a good tool) we should be thinking about how to build a better platform.

    Mark Levison
  • A quibble

    The presenter said that in order for VS to do code completion it needs a clean compile, and you don't get error detection as you type (red squiggles). Apparently he never tried VB.Net. It does what he describes, even in VS 2003. It does a static check on your code, while you're coding. So it checks syntax errors, and checks to make sure all your variables are declared (if Option Strict is turned on), your function/procedure call names are correct, and your parameter values to those calls are of the correct types. All without compiling first. In fact, I've found that VB.Net compiles go faster than for C# compiles. I wonder if it's doing some precompiling in the background, as it does the static checking.

    ReSharper, a third-party tool, adds in these capabilities to C#, plus some refactoring features. It costs some money though.
    Mark Miller