Kevin Ragsdale: Visual FoxPro 9.0

Define Your Lowest Common Denominator

I think of the lowest common denominator as the minimum supported operated system for my apps.

I spent many years supporting apps on Windows 95/98, Windows ME and Windows 2000, but recently I have set my lowest common denominator to be Windows XP (even more specifically for some apps, Windows XP Service Pack 3).

Why? Tons of code wrapped in IF – ENDIF statements, checking for the major version number of the OS: If Windows 98, do this, else if Windows 2000, do this, else if Windows XP, do that, else if Windows Vista, do something else.

Frankly, it just seems a waste of time to continue adding to that code. I’d much rather take out the parts I don’t need anymore. Plus, I gain the benefit of ease in my design decisions.

Windows XP is an eleven year-old operating system. Supporting anything earlier than XP just doesn’t make much sense to me (though depending on your own situation, your mileage may vary).

About two years ago, I had a new customer complaining that an app I wrote just wasn’t working right on his Windows 2000 computer. After a few emails (during which he continually shared with me that he is a professional software developer and he is running Windows 2000 Professional), I asked him which Service Pack he was running (I had successfully tested the app on Windows 2000 Service Pack 4, and assumed anyone still using Windows 2000 would be running SP4).

He wrote back saying he was on Service Pack 2, because in his opinion it is rock solid and he has his development environment set up just right for SP2 and he doesn’t want to mess that up.

He refused to even consider updating to Service Pack 4.

So, I refunded his purchase and said, “When you’re ready to join us in the 21st century, we’ll be here. Just email me when you get a new computer with a newer version of Windows, and I’ll give you a free copy of the software.”

As far as I know, he still hasn’t joined us in the 21st century.

In an earlier post, I mentioned that a lot of my apps these days use the IE web browser control. Lately, I’ve found myself changing the lowest common denominator for IE as well. At this point, I require at least IE8.

Do you have a lowest common denominator for your apps?