September 11, 2004
At this week's Triangle .NET Users Group, Microsoft's Doug Neumann gave a presentation on Visual Studio 2005 Team System, which looks great. What wasn't so great, however, was the related news that Doug delivered: Whidbey will ship with a "new" version of crusty old Visual SourceSafe. There will be some new features, as outlined in Korby Parnell's blog:
- Remote Access. The new version of VSS will support remote access through firewalls via https. This is similar to an Outlook 2003 feature that enables people to access mail outside the firewall, without RAS. Remote access makes working from a remote location much easier. This includes remote teams (for example, with offshore development) as well as simpler scenarios like telecommuting or doing development work while traveling.
- Improved Performance. The new version of Visual SourceSafe will include improved performance and scalability for large projects and will make common operations faster and asynchronous, so you can start working more quickly on large projects and be productive while source control transfers are taking place.
- Other Features. SourceSafe Whidbey will include improved merging UI, support for Unicode file content viewing and merging, re-vamped source control for web service and web site projects, and a "check out local version" feature.
But this is still incredibly depressing news to me. Where do I begin?
Let's get this out of the way first: Visual SourceSafe sucks. I'm sorry, but it has to be said. It's a ten year old application, and boy does it ever show. This isn't an app that needs some incremental improvements, it's an app that needs to be taken out behind the woodshed and put out of its misery. It is acceptable for rudimentary "better than nothing" source control, but not much more. We can't even use branching on our projects at work because VSS has such terrible support for it!
Why isn't Microsoft shipping a "lite" version of Team System in the Whidbey box? Why keep VSS on life support? This seems like a profoundly bad decision to me for a number of reasons:
- It fragments the development userbase. Some people have the default VSS, some people have Team System. The two systems are completely different and totally incompatible. I also suspect VSS will enjoy much wider usage because it will be "in the box".
- VSS will continue to be a second-class citizen. Of course all the hot new features will be on the hot new platform, Team System. That's where all the cool developers work. You don't put your "A" development team on the crappy ten year old codebase.
- It creates a development caste system. The more I learn about TS, the more I think it seems destined for the nebulous and ultra-expensive "enterprise" software ghetto. I wonder how many people are going to actually benefit from it? How about a nice, modern version of source control for the common folk, without all that enterprise marketing crap (and the corresponding sticker shock).
- Source control is a bread and butter function of development. It's irritiating that Microsoft would treat such an essential part of development as something they can plug with a stopgap measure. this isn't the first misstep Microsoft has made in this area-- the Visual Studio 2005 Express products don't even support source control!
Wouldn't it be easier for Microsoft to have one source control product to support, rather than two? I don't care if we get the "lite" version of Team System in the box; we probably won't have time to make use of 80 percent of the whiz-bang features of the full Team System anyway.
But no. Instead, we're stuck with a band-aided version of the geriatric Visual SourceSafe. I have zero confidence that the many problems of VSS will be addressed with this gussied-up point release. That means we'll get the same marginal source control out of the box with VS.NET 2005 that we got with VS.NET 2003. How is this progress?
Posted by Jeff Atwood
Hear, hear! However, not including the Team System may turn out to be a blessing in disguise. The entire SCC API is stuck in SourceSafe's model, which make it incredible hard to integrate version control systems that support edit-merge-checkin, such as CVS, Subversion, Perforce and Vault. Frankly, the entire build system is version control unfriendly. I think Makefiles and the command line would be just as productive.
I laugh at VSS. I looked at it when I was playing around with VS.NET 2003 and decided against touching it. The UI is still very much Windows 95ish and probably hasn't been touched since then. I'm not running apps that look like they belong in Windows 3.1, no matter how functional they are. Chances are I can find one with a better UI that performs many of the same functions.
I think VSS will die out shortly, but Microsoft seems to think VSS IS Team System "lite". VSS is Team System built 10 years ago that is collecting dust in someone elses CVS repository. Lord knows they probably don't put the VSS code in a VSS store.
It's very annoying but at least we can use our own version control systems if we wish. I think it stinks about the Express line but that just means there's no integrated add-ins for your particular version control system. You can still work on it, but it'll be disconnected. Go efficiency!
Blah. I agree with everything you say basically. *Smile* *Nod*
Team System appears, at least in theory, to be third-party tool friendly.. this was brought up by Doug at several points in the presentation! They seem to be planning for third party plugins, unlike VSS..