One reason I absolutely adore open source projects and programs is that all the nitty little bugs that annoy me usually go away pretty quickly within the release cycle. Especially so if the program has a GUI.
Microsoft, on the other hand (a prime example of a proprietary software vendor) just lets their bugs sit in there for years, and they never get fixed. Instead, the only time they revisit a project is if it has a security flaw that might affect everyone.
And so I’m left to wonder … if this program I’m using has so many bugs that are visible (in the GUI), who knows how many are in the backend! It doesn’t exactly inspire my confidence.
Case in point. If you change the name of a stored procedure in MS SQL Server 2000, the actual properties of the name in the sp won’t change as well. It’s not a frustrating bug, but it’s one that gives me the impression their developers are somewhat lazy.
To illustrate, here’s how the bug works: When you create a stored procedure, either through the GUI in Enterprise Manager or just as a normal SQL statement, they all start with a line like this: “CREATE procedure fooBar() AS ….” When you finish running the query or creating the sp, it will save it as fooBar. Now, in Enterprise Manager if you right-click on the newly created sp and select ‘Rename’, and change the name, it won’t update the “CREATE procedure …” line in the function.
That’s just one small example, I know, but Windows is riddled with them. Again, its not a really big deal, but when you add up all these small little bugs that will likely never be fixed, you have to train yourself to work around them and hopefully remember them next time your stored procedure doesn’t work.
Yes, security is extremely important, much more so than my whining about small errors. And bugs are a part of all software programs. I’m sure the MS apologist would just tell me to upgrade to the latest and greatest version of SQL Server. To that, I reply, didn’t I pay enough already?
Let’s hear it for incremental bugfix upgrades. Not just security fixes.