Visualize History

How it all went down.

"What a nifty way of doing things!" says I

I’ve been committing a fairly substantial mistake on Visualize History, and while I’d usually be the last one to admit any mistakes I make, I’ll admit to making this once since I think it may be fairly common among programmers and, in addition, real human beings. 

The problem stems from finding out a new and cutting edge way of attacking some problem, in our case AJAX.  “What a nifty way of doing things!” says I, and now every problem needs an asynchronous call.  Now you may not care about the technical advantages or disadvantages of AJAX, nor should you.  The big point is that for 7 or 8 years I’ve been doing things one way, and now everyone seems to want to do things a new way, and so do I.  But the old way has worked pretty well, and, well, you and I both know not to fix things if they ain’t broke.

I remembered that Joel Spolsky wrote about something similar and in trying to find it, found this instead:

The MSDN Magazine Camp is always trying to convince you to use new and complicated external technology like COM+, MSMQ, MSDE, Microsoft Office, Internet Explorer and its components, MSXML, DirectX (the very latest version, please), Windows Media Player, and Sharepoint… Sharepoint! which nobody has; a veritable panoply of external dependencies each one of which is going to be a huge headache when you ship your application to a paying customer and it doesn’t work right. The technical name for this is DLL Hell. It works here: why doesn’t it work there?

http://www.joelonsoftware.com/articles/APIWar.html

I’ve read Joel’s article, and I agree with it.  It resonates with me, and yet I still fall for these tricks all the time.  I fall for them when there is not company pushing on me, whether by convention or by advertising.  I fall for them all the time, and I don’t know why.

The problem is very closely related to the problem as discussed by Raymond Chen which he calls “solving one problem by creating a bigger problem.”  It’s not exactly the same but for some reason I do both, and I think for a similar reason.  Once I understand a concept very well, or at least like a concept a lot, I find that I can jam any problem into that concept, no matter how dissimilar they may seem.  So if that means installing cygwin on my PC so that I don’t have to learn Windows command line syntax, then so be it.

So this post is to remind you (and by that I mean me) not to force new techniques on old problems where they don’t really belong, and to treat a new technique as just another technique.  There’s more than one way to do it, but that doesn’t mean try all the ways, or even just one way all the time.

No comments

No comments yet. Be the first.

Leave a reply