Microsoft releases Visual Studio 2005 Beta 3 and calls it RTM

Update: I got a comment (see below) from Kevin Morrill at Microsoft who kindly informed me that a hotfix for this is in the works and coming. (Thank you, Kevin).

I really like .NET. I love C#. There are parts of Visual Studio that I really, really like. It is a great productivity tool, and developing for the Microsoft platform without it is painful at best.

However, there are parts of it that I really don’t like. The one that keeps sticking its head up is the fact that it’s unstable as all hell. For the past 5 years, each version which has come out has been less stable than the version before it for me. This culminates in Visual Studio 2005, which has just been released in its final version to MSDN subscribers.

You can reduce this version to a quivering mass of protoplasm stuck in an endless loop within 30 seconds. Reliably and reproducibly.

Try this:

Create a new C# console application.

In the Program.cs file, put two new classes into the namespace as follows:

class Something<T>
{
}
class Derived : Something<Derived>
{
}

Nothing up our sleeves here, right? We’re just saying that Something is a parameterized generic class, and that Derived inherits from it and refines the type parameter a bit.

So far, so good. Now for the sticky bit.

Go back into Something<T> and start defining a new property inside of the squiggly brackets. Something like this:

class Something<T>
{
    public bool IsOutToLunch
    {
}

See that squiggly bracket after IsOutToLunch? I’m willing to bet that if you were typing along, that’s exactly the point where your copy of Visual Studio simply stopped and is now completely unresponsive. Why? Because there’s a bug in the C# editor which just encountered an endless loop walking the object graph. It’s now hopelessly stuck trying to figure out the Derived is Something of Derived is Something of Derived…. relationship, and has sent Visual Studio off to La-la Land for a bit of a rest.

OK, so the code that we entered is probably questionable. It’s valid, though, to the best of my knowledge. Even if it weren’t, should it really lock up the editor? Because guess what? If you’ve done anything else and haven’t saved it when you type that squiggly of death, you just lost it. Hmm… That really inspires some confidence in me. How about you?

So now I’m paranoid. I have no idea when I’m going to suddenly type the wrong character at the wrong time. I save my work every 30 seconds. Type a character, save the file, type a character, save the file. Okay, so not really that bad, but you get the point; I feel like I can’t depend on the stability of the development environment. This leads me to question all sorts of other things that I really don’t have the time or desire to be questioning.

It pisses me off. Especially since the beta-testing community for Visual Studio was clamoring for another beta of this version, and were rebuffed by Microsoft because they had to make a certain date. Bad move, IMHO.

Oh, by the way, Microsoft’s official response to reports of this problem? "We’ll fix that in the next version." Uh, isn’t that in 2007? W. T. F?

Come on, JetBrains, where’s your .NET IDE? If you had it out right now, you’d have a sale. I’d switch over today and probably never look back.

BTW: I’m not the first to discover this. Frans Bouma has a rant about it, and so do several others out there.