This question is from 2012. If you are reading this in 2019 or later, then the answer really is: No. There is no good reason in 2019 to be maintaining 32-bit desktop operating systems.
Original question below:
Server software has been 64-bit only for a while now (Since Server 2008 R2 for Windows, even earlier for Exchange and Sharepoint) and even Ubuntu are pushing you away from 32-bit versions for their server OSes.
But is there any good, quantifiable reason to keep a 32-bit desktop operating system maintained? We're preparing our Windows 8 images for the (unfortunate?) few that will be early adopters.
The majority of our desktop computers have 4gb or less of RAM, but I would love to not have to bother supporting a 32-bit flavoured operating system any more.
Any reason why I should?
32-bit can be slightly faster in certain use cases -- the smaller addresses means sightly more compact code, which means greater cache efficiency. In the benchmarks I've seen, that efficiency tends to be be overshadowed by 64-bit's greater computational efficiency in heavy-computation environments. But 32-bit does in fact occasionally win on some benchmarks. YMMV. The age of your software matters, as newer builds take advantage of 64-bit stuff that older builds do not.
More compact code means less disk space. Just go download the ISOs for your favorite OS in 64 and 32 -bit flavors to see the difference. It's not trivial. It's also quite a lot more once you uncompress the binaries. As pointed out by OrangeDog: Much of this space consumption comes from the fact that 64-bit OSes ship 32-bit libraries in addition to the 64-bit ones.
You still get better compatibility with legacy components and software with 32-bit. This is particularly visible in systems that dynamically compile on the host machine but pull in 3rd-party binary libraries at the same time. Microsoft's .NET framework is a great example of this: while the programs are theoretically architecture-independent, anytime you link to a native binary you tie to one arch or the other. Many developers don't even know this is happening, and ship production components that will fail to run on 64-bit systems without some tweaking to explicitly instruct .NET to run in 32-bit mode. Most people don't know how to do this.
As pointed out by Daniel B: Windows .NET development on 64-bit machines leaves you open to a frustrating inconsistency where under certain circumstances exceptions are masked by the OS.
Legacy hardware. You can't run a 32-bit driver on a 64-bit kernel.
None of this adds up to a show-stopper for most people. Still, you have to decide how these factors affect your environment.
The only reason I can think of to keep a 32-bit desktop operating system is if you use old 16 bit (e.g. DOS) programs and you do not have the windows version which supports Windows Virtual PC.
(And even then I would install a 64 bit OS and use something like DOSbox).
Edit: There actually is another reason: Hardware which fails to cope with more than 4GB address space. E.g. FireWire trying to do DMA. Or any (old) hardware with no 64 bit drivers.
Anything that will run Windows 8 is already 64-bit capable, unless you happen to have some first-generation Intel Atom netbooks (and I doubt that very much). That's about the only thing I can think of.
AMD released its first 64-bit capable Opteron in 2003; and since then virtually every processor they have made has been 64-bit capable.
Intel was a year later, releasing its first 64-bit Xeon (Nocona) in 2004, and expanding to just about the entire product line by 2006. Aside from the aforementioned early Atom chips, every Intel processor today is 64-bit.
Wikipedia has a broken down processor list if you're interested in ancient history.
Compatibility with Ancient Software/Hardware.
If everything works under x64, I wouldn't bother with 32 bit.
Memory addresses in a 64 bit machine naturally take 64 bits. Those same addresses take 32 bits in a 32 bit machine. Under some pretty exceptional circumstances, that "increase" in needed number of bits can be the difference between good performance and poor performance on a memory limited machine.
Beyond that, since you are likely to be running 32 bit software on a machine that could be running 64 bit software anyway, and 32 bit support works reasonably well on 64 bit machines, the differences on the hardware side are not game changing. Occasionally you will find a legacy device that doesn't have a 64 bit hardware driver, but that is now very rare due to 64 bit operating systems being available for over a decade.
One point to consider is that many older 32 bit applications are older in many ways beyond their bit-ness. On the windows OS side, a 32 bit app might get confused if it is looking for files in "Program Files" that are now located in "Program Files (x86)". Certain registry items likewise might need manual attention. Again this is more a function of slightly mis-written applications that now need your help to "find" things that would have "just worked" if the machine happened to be 32 bit.
Many people don't know that 64-bit programs and libraries occupy more memory than 32-bit equivalents.
For example, when using low-memory virtual machines, it is advisable to use 32-bit operating systems to maximize memory availability inside that VM.
Speaking of Ubuntu, we have been running 64-bit 12.04 LTS under LTSP for a few weeks now.
The only hassle we've run into for the initial beta testers is that the LTSP terminals we use (Dell GX2xx) require a 32-bit kernel and thus we have to compile a 2nd LTSP kernel and maintain twice as many packages for the two architectures.
LTSP being QUITE an edge case, I think 64-bit is fairly ready to go unless your particular testing shows a defect.
Although I'd personally recommend moving to 64-bit as soon as possible and just bite the bullet sooner rather than later, it won't be without impact to your IT support team. If the support team's bandwidth is already stretched to a maximum (i.e., already understaffed), then I'd actually consider waiting.
So, this is one answer that concerns human resources, not just software in/compatibility.
The roll-out should be of course carefully planned (preferably gradual rather than all-at-once). There are going to be issues "discovered" that will take hours to resolve on a per-user basis. Once the more common issues are identified, "how-to's" can guide faster resolutions for both support calls as well as self-service.
Mostly, (for example), I'm thinking of all the 32 and 64 bit (in)compatibility issues between the OS, a specific software package and the associated plugins, such as having both 32-bit and 64-bit browsers installed (and/or multiple browsers) on a single 64-bit OS, shortcuts for 'run as admin' vs 'run as normal user', having options for both a 32 and 64-bit plugin for those browsers (or sometimes maybe restricted to only 32-bit plugins which only work in one version of the browser) -- all that break applications and workflows built on top of those plugins. (By "plugins" I mean anything from Java to flash to embedded pdf readers to web conferencing software -- either built in-house or widely available, both commercial and free.) You can attempt to test for all of these issues, but it's hard to predict if a user will inadvertently install plugin B before plugin A, which causes a different result than another user who installs plugin A before plugin B (basically it's always hard to predict what damage users will do when their actions change the state of the system.)
The only reason to keep 32 bit versions of... anything... around is to support "legacy" applications and systems. If you can run everything on 64 bit OSes, count yourself lucky and move on. You could be like some poor SAs who are in a corporate environment for a non tech firm, where the plan for migrating from the user base from XP to Windows 7 starts in the thrid quarter of 2014.
<cries>
Anyway, I don't know about Shift+Del, and I'd probably just leave them ignored in some corner of the environment, in case the unspeakable happens and you find yourself needing
Windows XP
for something. Definitely stop bothering to maintain, update, test or anthing else on them, but keep them around should they ever be needed. It happened the other day that a client wanted me to support someWindows 2000
PoS, which I could, because I didn't blow away all myServer 2000
images whenServer 2003
came out (and I really wanted to, too).As much as you pray and hope that time never comes, it's always nice to have that stuff around "just in case," and the costs of keeping it are so insignificantly small, I think it's foolish not to.
Having had considerable problems due to legacy software issues I can only say to make sure everything you run can be run on a 64 bit OS. If it does then you have no reason not to migrate, assuming licensing isn't a factor.
In my case I was able to reconfigure systems so that all 32bit only applications were able to run on the one machine, allowing all the other workstations to be 64 bit. Eventually I even migrated that 32 bit machine to a VM on Virtualbox, running on a Debian host, mainly because the capacity was there and I wanted to reduce the box count.