Writing this out of frustration. Visual studio (2005 SP1) is a pig eating my desktop!
It strikes me it’s a good enough tool written by people who have never used anything else. My background is ‘enterprise’ java but part of my job is requires me to work in the .net world where I mess about with things like c# winforms, .net web services and occasionally a bit of asp.net. For a good chunk of my day on one monitor i’ll have IntelliJ IDEA and visual studio on the other. I’ve used many editors over time, JBuilder, eclipse, netbeans, emacs, vim, …. but it seems the least responsive and most annoying appears to be visual studio. I do have Resharper installed so I can have the same semantics as IDEA, but even with it off it seems like a pig.
My current gripes are
- Hangs everything. Startup blocks other operations. Build blocks other operations. I can’t do a build and switch to another tool.
- I have my start bar on the left with autohide, starting visual studio changes the z index so it’s under every other window. I have to hit the windows key and click on a grey area to force if back to the top.
- Default behaviour appears to continue compilation even if errors occur, fail early fail fast? http://www.ftponline.com/vsm/2003_10/online/hottips/sabbadin/ shows how to change this behaviour.
- Having a panel auto hide doesn’t guarantee that it will stay that way. Every day I have to at least once set various windows to stop autohiding and then autohide to have it stick again.
- This might actually be resharper but having windows dragged off into second monitor after a run will move back to the first!
- Tooltips seem to be late and laggish.
This is on a 2.16 dual core, 2 gig ram laptop running XP with a primary 7200 rpm drive. I followed some of the steps in this useful visual studio speed up guide but my main gripes are the building and startup which this won’t address.
Another gripe is the use of external API’s. This may be heresy (from the blogs I read I didn’t think it was but they may be biased [alt.net]) in the .net world but we use open source components in our tools. Java tools fundamentally have to assume that you will be using external libraries so making it easy in the editor to discover an API and how it works is important and it’s something most do well off the dot keypress. When you have a company that does so much in a relatively isolated environment then this kind of thing just doesn’t happen. I think there’s a fundamental gap with the community and Microsoft. There are great people and developers both near to and within Microsoft trying to close it but being such a big company that has a schizophrenic relationship with open source means that internal solutions gain precedence over community or external tools. eg MSBuild vs nant. Java and other tools/languages because they’re forced to exist in the open domain, inevitably adopt the most valuable, best of breed and community accepted tools as first class development tools. Think of it as Darwinian selection for software development. I shouldn’t need a different version of visual studio to integrate/write/think about unit tests.
Another bugbear of mine is why is msdn so slow? sure it’s pretty, but i don’t want pretty, I want to GTD. Eg. ‘java list sort’ in google comes up with the direct API doco which is a simple navigable html page. I think making this stuff hard to discover means that ‘c# list sort’ (again in google) means that the API doco isn’t the first result. It seems that the developers exist in a walled garden, there are openings and some adventurous folk who venture outside, but a good deal of people prefer the garden.
I just saw this http://beautifulcode.oreillynet.com/2007/10/skinny_languages_and_fat_tools.php . Fat tools or intelligent tools are great but it’s the whole package and adopting community driven technologies as first class concepts is a way of leveraging the intelligence of the community. I just don’t see Microsoft adopting the good things coming out of the community. Sure it’s Microsoft and they’re under no obligation to do so, but the competing model of open development to me at least seems to result in cheaper, quicker and more innovative outcomes. I think companies such as Google, Sun, Novell have all navigated this new paradigm much better.
Individually all the issues I’ve outlined above are really just niggles. But the whole package cumulatively seems just to make my experience as a developer more painful than it should. I don’t tend to get excited when I write in .net because the niggles just distract and make it an unpleasant experience.