Page 1 of 2
1
2
LastLast
  1. #1
    Bloodsail Admiral
    10+ Year Old Account
    Join Date
    Feb 2012
    Location
    NC
    Posts
    1,011

    Reasoning behind Program Files and Program Files (x86)...the real reason

    I was thinking while organizing and throwing out 8 year old data and was looking at the root of my drive and wondering why Microsoft chose to do Program Files and Program Files (x86) for 32-bit programs on a 64-bit system. Maybe it's just me but I don't find the usefulness of having two folders virtually identical except for x86 at the end of the name. Why not just have the 32-bit program installed in Program Files\AppName\x86. Would reduce the folders in the root drive, just by 1, but it would be one step closer to being cleaner in my opinion.

    Now, I wonder if there's a registry edit I could do to change %PROGRAMFILESDIR% or whatever it's called, I forget, so that it does just that.

    What are your thoughts on what the real decision was for having two folders and not just a sub-folder in the main program files folder.

  2. #2
    It's for easier backwards compatibility. They decided this was the easiest and safest way to do it.

  3. #3
    Bloodsail Admiral
    10+ Year Old Account
    Join Date
    Feb 2012
    Location
    NC
    Posts
    1,011
    Sure, it may be easier and lazy on their part, but why though. I know the technical reason to why, but yea.

  4. #4
    Well if it's easier then why wouldn't you do it that way.

  5. #5
    Deleted
    In order of importance,

    1. Shared libaries: avoids clobbering shared library name space, like the "Common Files" folder.
    - Windows can easily detect which version of an executable is being loaded. But libraries are loaded by applications themselves, some by names. The API for this cannot be changed, at least not for legacy architectures. If all architectures shared the same file space, they could easily attempt to call on each other or overwrite each other.

    2. Migration: significantly simplifies recompilation and distribution of 32-bit programs into 64-bit because you do not have to change all your names.

    3. Environmental variables: greatly simplifies environmental variable names, which are used everywhere in Windows, since there's only two toplevel variables for both architectures.
    Last edited by mmoc83df313720; 2013-04-28 at 02:14 AM.

  6. #6
    The reason is very simple: because the person who designed the 64bit Windows was apparently an idiot. There is no technical reason t have two separate folders as the architecture of the application is defined in the exe file anyway. You can drop 64bit application into the (x86) folder and via versa. Even more, I have no idea why they couldn't do it like this other OS did and just seamlessly integrate 32 and 64 bit software. This separation into win32 vs win64 is absolutely unnecessary and I am appalled that it still even exists.

  7. #7
    Quote Originally Posted by Bryce View Post
    Now, I wonder if there's a registry edit I could do to change %PROGRAMFILESDIR% or whatever it's called, I forget, so that it does just that.
    Yes you can technically do that, but it's not recommended because you might break some old braindead programs that rely on hard-coded paths instead of using %programfiles% variable.

    The reason for double folders is pretty simple, or actually there are two things intertwined:

    For 100% backward compatibility with every single installer. With two separate folders that windows manages you never need to know when writing 32 or 64bit or future 128bit programs what the actual location is, all you do is install into %programfiles% and let the OS sort it out. Without the double folders what would happen is that all installers need to be written separately for 32 and 64 bit applications adding to the headache of software developers.

    Second half is that if you'd go for c:\program files\blahblah\x64 style folders it would look fugly when 32bit support is dropped from the OS. At that point Microsoft can simply delete whole c:\program files (x86)\ and all legacy software is gone without any trace left of the temporary crutches that were necessary for the interim. In some years there'll probably be third folder for the 128bit apps following the same design.


    Quote Originally Posted by mafao View Post
    The reason is very simple: because the person who designed the 64bit Windows was apparently an idiot. There is no technical reason t have two separate folders as the architecture of the application is defined in the exe file anyway.
    Just because you can't figure it out does not mean somebody else is the idiot.
    Never going to log into this garbage forum again as long as calling obvious troll obvious troll is the easiest way to get banned.
    Trolling should be.

  8. #8
    Quote Originally Posted by vesseblah View Post
    For 100% backward compatibility with every single installer. With two separate folders that windows manages you never need to know when writing 32 or 64bit or future 128bit programs what the actual location is, all you do is install into %programfiles% and let the OS sort it out. Without the double folders what would happen is that all installers need to be written separately for 32 and 64 bit applications adding to the headache of software developers.
    Oh come on... why not just install everything into Program Files (no matter if its 32 or 64 bit) and let the OS figure it out after that? Again, there is no single technical reason why 32 bit and 64 bit applications should reside in different FS trees.

    Quote Originally Posted by vesseblah View Post
    Just because you can't figure it out does not mean somebody else is the idiot.
    More likely that somebody else was just too lazy to design a proper solution.

  9. #9
    Quote Originally Posted by mafao View Post
    Oh come on... why not just install everything into Program Files (no matter if its 32 or 64 bit) and let the OS figure it out after that? Again, there is no single technical reason why 32 bit and 64 bit applications should reside in different FS trees.
    Read the next paragraph after the one you quoted.

    Quote Originally Posted by mafao View Post
    More likely that somebody else was just too lazy to design a proper solution.
    Or were you too lazy to do that?
    Never going to log into this garbage forum again as long as calling obvious troll obvious troll is the easiest way to get banned.
    Trolling should be.

  10. #10
    I am Murloc! Cyanotical's Avatar
    10+ Year Old Account
    Join Date
    Feb 2011
    Location
    Colorado
    Posts
    5,553
    honestly i don't understand why anyone has a problem with this, who cares that it is two folders

  11. #11
    Deleted
    Quote Originally Posted by Cyanotical View Post
    honestly i don't understand why anyone has a problem with this, who cares that it is two folders
    I have to agree with this. It doesn't really matter in all honesty. As time goes by the (x86) folder will become unused as the world transitions to 64-bit applications. I'm sure there was a valid design reason why it was done this way, at least at the time. It was possibly done this way for users or businesses who have the same application installed in both 32 and 64 bit variety and want to easily differentiate between the two. I have a few applications like that and it's useful to keep them separate for uninstallation purposes.

    I'd rather organise it the way it currently is, which is a more standardised way of differentiating:
    Program Files/Application
    Program Files (x86)/Application

    Rather than:
    Program Files/Application/32/..
    Program Files/Application/64/..

    Which results in developers actually ending up doing things like this:
    Program Files/Application/32-bit/
    Program Files/Application/64-bit/
    or:
    Program Files/Application (32)/
    Program Files/Application (64)/
    i.e. Naming conventions not standardised, messy.. Not cool
    Last edited by mmocabe77c30e6; 2013-04-28 at 03:15 PM.

  12. #12
    Quote Originally Posted by vesseblah View Post
    Yes you can technically do that, but it's not recommended because you might break some old braindead programs that rely on hard-coded paths instead of using %programfiles% variable.
    Guess I've been lucky. I install all programs that I have control over the install path into the \program Files folders, I don't care if it's 32 or 64 bit. They all go into the 1 common folder. No problems for me yet.

  13. #13
    Deleted
    The funny thing is, even on a 64 bit install of windows 7, there are files for some windows apps (Media player for example) in both the x86 and 64 bit program files folders.

  14. #14
    i honestly don't see how adding another folder called x86 inside the installation directory of EVERY 32 bit program is cleaner or more efficient, as it adds an additional folder for EVERY program you install to the default directory location.
    Last edited by zhero; 2013-04-28 at 03:46 PM.

  15. #15
    Quote Originally Posted by Dingolicious View Post
    The funny thing is, even on a 64 bit install of windows 7, there are files for some windows apps (Media player for example) in both the x86 and 64 bit program files folders.
    32/64bit versions of WMP and IE are for compatibility with old codecs and plugins. 32bit plugins dont work with 64bit programs and vice versa.

    Quote Originally Posted by zhero View Post
    i honestly don't see how adding another folder called x86 inside the installation directory of EVERY 32 bit program is cleaner or more efficient, as it adds an additional folder for EVERY program you install in the default directory location.
    And it would break some legacy programs that are hard-coded to use the 32bit WinXP directory structure. Things like XFire for example that scan what games you have installed on the computer checks for .exe files inside c:\program files\anything\, and putting game executables into c:\program files\anything\x86\ would prevent the scanner from detecting the games. Exactly same thing happens with many uninstall tools for example.


    Bottom line is that every change is a thing that can break million old things, but when you add instead, the chances to fail are significantly lower. Therefore it's safer to add features than change them on something as complicated as Windows.
    Last edited by vesseblah; 2013-04-28 at 03:48 PM.
    Never going to log into this garbage forum again as long as calling obvious troll obvious troll is the easiest way to get banned.
    Trolling should be.

  16. #16
    The Lightbringer Twoddle's Avatar
    10+ Year Old Account
    Join Date
    Feb 2011
    Location
    UK
    Posts
    3,775
    What I find even worse than the Program Files thing is that as the whole file system gets dumbed down with every OS, in reality it actually gets more confusing because extra layers of complexity are artificially added in order to achieve it.

    It was just about bearable in Windows XP, I could put up with Documents, My Pictures, Program Files, Documents and Settings folders, hidden files all over the place etc. etc. But now we have the marvelous Libraries system which Microsoft have deemed that everyone actually wants! We also get a more complex non-intuitive file explorer with extra panels, useless icons (and the removal of the useful ones) and other bells and whistles. I have also lost count of the number of machines I've had to fix that were screwed up because someone had accidentally dragged a folder/shortcut/library from one place to another and couldn't figure out how to put it back. Even I have a problem.

  17. #17
    Deleted
    Quote Originally Posted by Twoddle View Post
    What I find even worse than the Program Files thing is that as the whole file system gets dumbed down with every OS, in reality it actually gets more confusing because extra layers of complexity are artificially added in order to achieve it.

    It was just about bearable in Windows XP, I could put up with Documents, My Pictures, Program Files, Documents and Settings folders, hidden files all over the place etc. etc. But now we have the marvelous Libraries system which Microsoft have deemed that everyone actually wants! We also get a more complex non-intuitive file explorer with extra panels, useless icons (and the removal of the useful ones) and other bells and whistles. I have also lost count of the number of machines I've had to fix that were screwed up because someone had accidentally dragged a folder/shortcut/library from one place to another and couldn't figure out how to put it back. Even I have a problem.
    As somebody who works in IT Support for a living, that does not surprise me. Last week I had to give someone a second monitor for their work purposes and the confusion shortly after doing so was amazing.

  18. #18
    Deleted
    Quote Originally Posted by Dingolicious View Post
    As somebody who works in IT Support for a living, that does not surprise me. Last week I had to give someone a second monitor for their work purposes and the confusion shortly after doing so was amazing.
    Perhaps I'm missing something, but why? Something to do with Windows 8?

  19. #19
    Quote Originally Posted by vesseblah View Post
    Read the next paragraph after the one you quoted.
    The day the OS just starts randomly deleting my folders I will get very angry

    Quote Originally Posted by Synthaxx View Post
    However, it'd still be better to do that than using a global 'common files' directory because as squeeze said, there's a risk that you'll end up overwriting someone elses libraries (or someone else will overwrite yours). It's not a massive problem when you're using truly common libraries such as the ones supplied by Microsoft, as it's usually just revisions and additions that are made between versions, but if you happen to use your own custom library, and it shares a name with someone elses, then one of the programs ends up being broken. If it came down to common files, or installing x64 in the x86 folder (or vice versa), the second option is still more preferable.
    This I don't understand. The libraries I distribute with my application usually go into the application folder anyway. I do not risk overwriting anything at all. It is something else if I have to install some DLLs into a shared library folder, but this is a can of worms anyway and always has been.

    Quote Originally Posted by vesseblah View Post
    Bottom line is that every change is a thing that can break million old things, but when you add instead, the chances to fail are significantly lower. Therefore it's safer to add features than change them on something as complicated as Windows.
    I 100% agree with this statement. However, we seem to disagree on what is a 'change' and what is an 'addition'. For me, splitting applications folders is a change, and a rather ugly one. It would be better to 'add' some features (for example fat binaries or new 64bit installer APIs) to let 32 and 64 bit applications seamlessly coexist in the same environment.

  20. #20
    Quote Originally Posted by mafao View Post
    The day the OS just starts randomly deleting my folders I will get very angry
    The day when "program files (x86)" is gone you don't care because that Windows will no longer support legacy 32bit applications.

    Quote Originally Posted by mafao View Post
    I 100% agree with this statement. However, we seem to disagree on what is a 'change' and what is an 'addition'. For me, splitting applications folders is a change, and a rather ugly one.
    You're looking at it totally wrong way.

    Adding "program files (x86)" is a minor thing from developers' point of view, you still have "program files" which works exactly same way as before. Instead if they had forced something ridiculous like "program files\blahblah\x86" that would've been a major change breaking compatibility left and right. For applications nothing is different today because OS handles the folders automagically on the background as long as you use "%programfiles%\blahblah" as you're supposed to. It's zero change for well-behaving software developers, and those home users who are nosy enough to look into c:\ drive (it's contents are hidden by default and you have to opt in to see what's in there, remember?) it's a small addition users don't need to worry about. Whole premise of this thread is somewhere between absurd and retarded.
    Never going to log into this garbage forum again as long as calling obvious troll obvious troll is the easiest way to get banned.
    Trolling should be.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •