Tuesday, September 28, 2004

Feeble UIs and Antiquated Coding Standards

So I spent all day trying to find a replacement for SourceSafe, and it was not a pleasant experience. I ran across an alternative called Subversion. As I previously mentioned, I develop native windows applications using Visual C++ with MFC. Obviously, my top priority was to find a technically superior alternative that integrated into the Visual Studio environment as well as SourceSafe. The Visual Studio environment has gotten so much better since Visual Studio 6. It is really a great development environment. And while I am a recovering open source zealot, I have to admit Microsoft's interfaces are almost always superior to open source alternatives. Hell, how can I not admit it when Eric S. Raymond does? Don't get me wrong, I still use and believe in several open source projects (Apache, MySQL, to name a few). So basically, I needed an SCC plugin for Visual Studio that works with Subversion. That led me to a couple of projects/applications:



Well, Subway is apparently an abandoned project. I can't blame this on open source or bad UIs, but it was frustrating nonetheless. I understand there is an NDA and all, but couldn't this guy have found someone to take over? Actually, I would take this over and I have "signed" the NDA (well, I clicked OK. Surely that is as legally binding as a blood oath). He claimed it hosted itself. I got nowhere with it. It crashed hard and frequently, sort of like Robert Downey, Jr. Obviously, this was not a viable option.

So I tried SVNSCC. It installed fine. That was where the simplicity ended. It ships with a utility to ease changing SCC providers, which is certainly necessary. I launched that utility and nothing happened. Well, I thought nothing happened, but later noticed there was a new goofy icon in my already overcrowded system tray. Yes, the epitome of intuitive interfaces. So I right-clicked on the icon and it showed the SCCs I had installed. When I selected "PushOK SVN proxy", it told me I was unregistered or my trial time period was up (I am paraphrasing here). WTF?! I just installed the damn thing. I clicked "Cancel" thinking there was a problem with the its timeframe computing function. Weeeee, it crashed. After much frustration, I thought I'd push the other button ("Register") to see if I got prompted for credit card info. No, you have to go through some free registration stuff before you can it will work. <Sarcasm>Glad to know that up front.</Sarcasm> So I finally get the software "working". The interface left much to be desired. The dialog asking for the information to retrieve the right repository used cryptic, Subversion specific terms. I wanted something that will act as much like SourceSafe as possible. So I fill out the information to the best of my ability, and right away, I see an issue. Apparently, it doesn't work with Subversion repositories that contain only one project at the root. At this point, I am all like "Fuck it. I will write my own."

After cutting my teeth for the majority of the day, I start browsing the Subversion developer info. Here is an excerpt from the HACKING file:

* Use only spaces for indenting code, never tabs. Tab display
width is not standardized enough, and anyway it's easier to
manually adjust indentation that uses spaces.

* Stay within 80 columns, the width of a minimal standard display
window.

Tabs not standardized enough? If there is someone out there who still codes with tabs set to eight spaces, they should be stabbed in the face repeatedly in front of their families. Is there anyone out there blind enough that using four space tab looks left aligned to the previous block? I know, you are probably thinking" Jim, you un-PC bastard! There are probably some very talented, legally blind coders out there." My point exactly. If there are very talented, legally blind coders, or VTLBCs as I like to call them, they are using voice recognition software and don't give a wet fart if the next block is indented four or eight spaces. And if you have a decent programmers editor like the Visual Studio editor or UltraEdit, it is more work to reformat code that uses spaces rather than tabs. I would guess that vi and emacs can be configured to have the same advantages. And the 80 columns thing. What year is this? I didn't buy 21" monitors running at 1600x1200 to waste half my screen real estate so I could collabarate with some schmuck running text VGA mode or whatever.

Then I tried AnkhSVN .NET Add-in. While it didn't integrate with Visual Studio the way I hoped, it integrates well enough for me. I was able to check in, check out, and check in multiple files within a few minutes of using it without reading any documentation. This solution looks promising and I suggest it be explored for people looking to leave SourceSafe but still enjoy the rich IDE of Visual Studio .NET.

1 Comments:

At 5:45 AM, Blogger Stefan said...

Hi, I'm just as frustrated. I'm looking for a way to integrate subversion into Visual Studio 6, but I'm ready to give up. Do you know if there is a plugin or addon out there?

 

Post a Comment

<< Home