Thursday, April 27, 2006

VS Vitriol

It seems my post about VisualStudio 2005 hit a nerve.

It really is an interesting lesson to see how different people respond to VS 2005. Compared to VS .Net (Version 7.0, the release before VS 2003), VS 2005 is a huge improvement. The only explanation I can give for that release was that Microsoft's Developer Division wanted to make sure that the update would look really good, because the initial .Net release was so abysmal that most developers I know at Microsoft avoided it at all cost. Part of the problem was that VisualStudio .Net tried to integrate the VisualBasic development experience with the Visual C++ experience. Kind of like the lava-lamp I had in college... the two just don't really mix.

Visual C++ was all about fast and minimal. It had decent Intellisense (which I still can't get working in Emacs... sigh) but was fast! I would use it instead of Notepad, because it handled multiple files and non-MS end-of-line encodings. VC++ 6.0 had shipped when I started at MS in 1997 (I don't know the exact date it shipped...) and VS .Net shipped in what.. late 2001, I think? That is a long time. VS .Net may have performed eqivalent to VC++ 6.0 when it had originally shipped, but people were used to running it on screaming fast development machines. I remember the first time I used VS .Net. I couldn't beleive how long it took to load. I felt like taking a coffee break, just waiting for it to start up and open a single file. And it crashed, and crashed, and leaked memory like a sieve.

Compared to that, VS 2005 is a wonder of engineering beauty. For basic C# development, it is faster than any of the Java IDE's I've been using. It finally provides basic refactoring support (which is all I ever really find useful...). It's project files are in XML and actually almost make sense. Then again, the only reason I care that the project files are in XML is because the project UI is so annoying that I often just resort to manually editing the project file. If you ever want to build a project that has tens of file includes, do yourself a favor and edit the project file directly.

The real problem with VisualStudio, is that it is a huge kludge of what used to be Visual C++, Visual Basic, and Visual InterDev... all into one package. Half is writen in MFC, the half stolen from Office and another half writen from scratch (some in C++, some in C#). It is actually amazing that it works. It is virtually imposible to implement such a huge beast in a clean and efficient way. Even if you wanted to, you would then have to spend man-decades, trying to port all that existing code to the new framework.

Ultimately, VS suffers some of the same problems as Windows Vista. It is too sprawling and too full of legacy crap to have any kind of coherent plan.

One of the reasons why Linux has been able to eat Microsft's lunch in some markets is because it is so much smaller and less dragged down by legacy. I don't mean support for legacy devices, I mean legacy apps.

Back to VisualStudio, the problem with day-dreaming about a replacement is profits. There is very little profit in shipping development tools. Especially, now with Eclipse and NetBeans setting the price bar at $0. A good development tool, something even remotely clost to VisualStudio is a huge effort, easily into the man-decades, possibly man-centuries, of development effort. What company in their right mind would fund that? IBM funded Eclipse because they needed a good IDE to replace their aging VisualAge series.

On that optimistic note, I'll just enjoy the fact that VS 2005 doesn't actually crash much at all, and pray that someone ships a real C# environment for Eclipse.


Post a Comment

<< Home