Log in

No account? Create an account
Previous Entry Share Next Entry
64-bit applications
Frogmarch 2002 - Whitby
There has been furore this week after Mozilla removed the 64-bit version of Firefox for Windows from their nightly builds. They said that the 64-bit version for Windows wasn’t a priority for their development team, and that compatibility and performance problems meant that the 32-bit version of Firefox worked better for users. This is despite their Mac OS X of Firefox being a “universal” application, containing both 32-bit and 64-bit code, and apparently not suffering from compatibility or performance problems. (I understand that their Linux versions of Firefox are also 64-bit.)

There have been strong views expressed about this in some parts of the technology media, although I suppose one should take a step back and accept that Mozilla can and should make their own decisions about the priorities of the Firefox developers.


On my Mac, the majority of applications are “universal”, and run as 64-bit applications. Apple has made the move to 64-bit reasonably painless, and I would imagine that most users are unaware that the architecture of their applications has changed as the operating system and applications have been updated.

Microsoft, however, seems to have made more of a song and dance over 64-bit, with separate installations of Windows for 32-bit and 64-bit architectures, and different versions of applications available. I wonder why they didn’t go for a universal approach? It seems to have made life unnecessarily awkward for their developers.

  • 1
I was an early adopter for 64-bit Windows (back when it was a special edition only release for XP) and regretted it back then. I used to have to dual boot between 32-bit and 64-bit XPs mostly because 64-bit version didn't work with some copy protection systems.

But that was years and years ago. Windows 7 64-bit seems so universal it's always surprised me that Microsoft even bothered with a 32-bit version.

Still, it's not something that bothers me. In my own personal league table of "What is your favourite web browser?" Firefox now comes joint fourth.

It seems that it isn’t only Firefox that is stuck in 32-bit on Windows. The only Windows 8 browser that runs by default as 64-bit code is the Metro version of IE. Wonder if it is coincidence that the Metro IE doesn’t support plugins; maybe plugin compatibility is at the root of this.

Oh, and why do Microsoft keep up the 32-bit version of Windows? Because they are determined to be all things to all people, and as an organisation seem unable or unwilling to cut off support for older hardware.

I didn't see this before posting my longer response, but yes, plugin compatibility has a lot to do with it, though it may not be the only reason.

I don't entirely agree on the older hardware point though. I was unable to upgrade my laptop to Windows 8 because it didn't have a processor feature that Windows 8 requires. In terms of just general oomph, it could probably have run it because it benefited in performance from the upgrade to Windows 7 and Windows 8 is supposed to be a further improvement on that front. My older hardware (just pre-Vista vintage) has definitely had its support cut off!

Since it requires relatively modern hardware, then, I wonder why Microsoft didn’t choose to make Windows 8 64-bit-only? (As an operating system I mean; of course there is still a requirement to run 32-bit apps.)

Fear, I think. Fear of the fear of the customers.

Compatibility, the two-edged sword

One problem is that Microsoft have always been obsessive about maintaining backwards compatibility. As the owner of a Mac Mini that can't run Mountain Lion (10.8), only Lion (10.7) and a MacBook Pro still stuck on Snow Leopard (10.6), I'm no fan of Apple's enthusiasm for disowning even fairly recent and capable hardware (the Mini actually has the same CPU as the other which can run Mountain Lion, it just has a lesser graphics card - completely irrelevant in actual use, particularly since the machine is headless anyway!)

At Dundee University, apparently several of the applications we use don't yet work on 64 bit Windows - it doesn't help that Microsoft has changed some key file paths. Even 32 bit Windows 7 doesn't work properly with one application...

Worse still, while 64 bit Windows can still run 32 bit applications, it cannot run 16 bit ones - and a great many Windows applications are still distributed with 16 bit installers! To get around this, Windows has a 'blacklist' of known 16 bit installers and built-in substitutes - a hideous workaround at best.

It doesn't help that Microsoft has never supported the multi-architecture files Apple has taken advantage of right back to the M68k-PowerPC transition: unless you use a pure emulated system like Java or .Net's bytecode (MSIL), you have to choose one architecture (x86, x86-64, Itanium, ARM) and be stuck with it for that whole package. (You can't even have a mix of 32 and 64 bit code in a single MSI installer file cleanly, various bits break then!)

I've been x64 at work for so long now that I can't remember when it was exactly (but it was XP when I switched). At home I've been x64 since the new machine I got around Windows Vista launch time.

.NET programs are sort of equivalent to Mac "universal" programs, in that for the most part you compile them once (to IL) and at runtime they'll be x86 or x64 depending on where you run them. Exceptions to this are when they do "interop" (directly calling the Windows API, rather than a .NET equivalent), in which case they'll be bound to the bittedness they were compiled for.

While I think .NET programs are a bit more widespread than people sometimes think, the take-up is not overwhelming, and I guess that's for two main reasons - pre-existing apps it wouldn't be economic to rewrite, and concern about performance if you're not coding to the metal.

There's another catch though, which is that MSI installers are not universal. So even if your .NET app is bit-agnostic, the installer you use to put it on the machine isn't. No doubt it's possible to do something about this with clever bootstrapping, but with installers often left as an afterthought, most won't bother and will just have two installers, even if what they're installing is identical.

As for Firefox's decision, in Windows 7 both versions of IE existed, but the x64 version was not much used and had distinctly less support in the form of add-ins. Perhaps Firefox is in a similar place. I'm not quite sure what the story is on Windows 8 x64, but a little bit of checking with Process Explorer just now suggests that the desktop version of IE is still x86, but the more locked down Windows Store version is x64. There may also be an x64 version for the desktop, but if so it's well hidden and unlikely to be launched by someone who hasn't gone hunting for it.

  • 1