Wednesday, May 13, 2009

Program Files (x86)

Okay, all of you Microsoft apologists out there - explain to me this: Why in tarnation does it make any sense at all to change the base pathname for legacy applications, instead of for new (x64) applications???

If MS had chosen:

C:\Program Files\
C:\Program Files (x64)\

That would have made somewhat more sense. But, why bother to divide 32bit and 64 bit applications at all? What was wrong with: C:\Program Files\ for both?

As a software developer, we would have considered it our responsibility to differentiate if we came out with a 64 bit product. It seems like an obvious thing... we write new software, we write a new installer for it, and we have it go to a different folder than our 32 bit software... or we maybe choose to place both the 32 bit and 64 bit versions in the same folder. Also a fairly obvious choice, and one we could have handled in our installer. i.e. if installing on x64, choose the 64 bit version of the exe and dlls and so on, and if installing under 32 bit OS, then choose the 32 bit versions of those files. I know for a fact that the 8 person company I work for could handle this with aplomb. I am pretty sure that even your average software development house, hell, even most corporate in-house developer teams could have handled such an obvious and simple issue.

So why the extra folder, and why rename the one that is likely to cause problems with legacy code?

If you haven't figured it out yet, then welcome to the group. I don't think there is a rational explanation. I have thought long and hard on this, and the only thing I can come up with is "group think" - design by committee. Its a stupid, stupid choice, and one that causes problems, and reflects the general pattern at Microsoft of disorganization. It was always horrendously shallow to choose an arbitrary folder like "Program Files" to shove... literally, everything you install on your machine into. Why not: Games, Productivity Apps, Tools & Utilities, and so on, actually organizing one's file system by some rational design?

Putting everything one owns into the same drawer is by definition not a system of organization at all. One must actually differentiate between things and group them by some level of conscious choice for there to be intelligence and organization in the system. Microsoft just doesn't seem to grasp the concept, and never has.

Its a stupid shame - and one that will doubtless cause many users grief and frustration as their software that used to work stops working, due to the broken paths. Here's an obvious example: In Vista and in Windows 7 we have the new "Games Explorer", where you can access all of the games on your PC from one convenient place. However, In many circumstances Windows shows the wrong icon for your game! You can take a what appears to be a well-formed shortcut from your start menu and copy it into your games explorer, only to have games explorer change the icon and substitute something retarded for it. At first this seems bizarre (in a way that only Windows is - commonly getting even the most basic things wrong). But then, you think: "I can fix that - just change the associated icon!" Hmm... well, Microsoft comes to the failure again by not providing a "properties" setting on many of the shortcuts - especially it would seem on the ones you add by hand from shortcuts!!!! Okay, well, that's bizarre (in a very Windows-way - where failure and stupidity seem to be "Job #1"). But maybe there was something wrong with the original shortcut, even though they appear correct in the Start Menu. You edit the start menu, get properties on the shortcut you need, and low-and-behold, the "change icon" dialog complains that it cannot find "%Program Files%/blah/blah/some.ico"!!! Seriously?! You've got to be kidding me, Microsoft?! Your idiotic decision to rename Program Files to Program Files (x86) now means that all of my 32 bit software's shortcuts will all always be wrong?! Wow. Just... wow.

I've also seen software that creates the old legacy paths for various things because the developer didn't realize that there was a dynamic way to get the paths from the OS, combined with MS's penchant for changing the rules every single time they release an OS (oh yeah, it makes perfect sense to change things arbitrarily from one bad system to another without actually making any gains in the process... that's surely someone's definition of "progress"... it just isn't any rational being's definition).


Or do you see the sense in Program Files (x86)?

No comments:

Post a Comment