32 Bit is Dead, Long Live 64 Bit!

posted on

OK, let's be frank. 32 bit is dead on the Mac. Apple cut out most of their 32 bit users when they dropped PPC support in Snow Leopard. Those that remain are 3-4 year old machines, so are likely to be replaced in the next 12 months given the 3-5 year upgrade cycle most people have. 32 bit is a legacy platform and should be treated as such.

Given that the last 32 bit machines were sold only a year after the last PPC machines, I would not at all be surprised if OS X 10.7 dropped 32 bit completely. Like PPC it is unnecessary cruft when the future (and several years of the past) is entirely 64 bit. Given this, I'm also phasing out 32 bit support for M Cubed's apps as I move them to be 10.6 only. The first of these will be Lighthouse Keeper 1.2.

Difficulties

I am under no illusions that this will be an easy move. I'm effectively dropping 3 platforms in one go: 32 bit Intel, PPC users and 10.5 users. But the fact is that those are all platforms that are rapidly shrinking in size. Probably the one that will cause the most pain to my users is dropping 10.5 support, I'd wager there are more 64 bit Intel users of 10.5 than there are 32 bit Intel or PPC users, even at this stage. But every new Mac ships with Snow Leopard and it is only a $29 upgrade.

There are also difficulties in terms of marketing. How do you inform a user what platforms something will run on? Do they know if their machine is 64 bit? What if I list the processor brands that are 64 bit, will they know that? What if I tell them where to look, am I asking the user too much? How about instead telling them what won't work, or tell them that Macs sold after a certain date will work? There are flaws in many of these and yes it will be fairly messy. It could even be seen as a big risk to take, doing this now rather than waiting until Apple drops 32 bit support. But that is a risk I'm willing to take.

Comparisons to PPC

What PPC Macs are to Intel Macs, 32 bit Macs are to 64 bit Macs. However, there are some differences from a technical point of view. Firstly, dropping PPC support gains you relatively little as a developer. Unless you're dealing with something low level your code is generally identical for both platforms, you are basically just reducing the size of your shipping app and your testing requirements. And lets be honest here, how many of us have been testing on PPC as much as we have on Intel? Most of my PPC testing involve booting my computer into OS X 10.5 and running my app in Rosetta, not exactly ideal.

Where this comparison is different is in the code you can write. By going 64 bit you can use the modern Objective-C runtime. This gives you lots of new language features, including some that make your code more future proof. Many of these features mean you can write less code. Code you don't write is the easiest and fastest to debut, test, document, read and support. There are also features that any app that runs in 64 bit mode (even those universal apps) get, such as access to more memory, increased processing speed and better security. Things that require 64 bit are just going to get more and more common.

But why drop 32 bit?

I could get the access to memory, processing speed and security features just by having a 64 bit mode in my app. So it seems like my argument is just wanting a few new language features for myself. Well in a way it is that, but it also comes down to two beliefs I have about software development, one of my own and one taken from Wil Shipley:

1. You should remove legacy and unused code from your application as soon as possible 2. People are going to be buying the latest hardware/OS before they buy your app

I re-enabled the recording of system profile info sent to M Cubed's server when a user who has opted in checks for updates. It will take a week before I get the stats that are going to come in, but so far all of the submissions are using 64 bit Intel Macs. Even if the odd few 32 bit macs pop up, it would still mean that I am writing, compiling and shipping code that almost nobody is using. Why have that code polluting my codebase?

Aren't there lots of 32 bit Intel Macs out there?

You would think so, but Apple didn't actually sell that many of them. Apple started moving from PPC to Intel in the first half of 2006. In the second half of 2006 they were moving from 32 bit to 64 bit. This is how long Apple sold 32 bit Intel versions of each Mac:

  • iMac: 9 months
  • Mac mini: 18 months
  • MacBook: 6 months
  • MacBook Pro: 10 months

Doing some VERY rough calculations, assuming that all Macs sold until October 2006 were Intel Macs (they weren't), 15% of Mac sales in the first half of 2007 were Mac minis (I seriously doubt it is that high) and all of those 32 bit Intel Macs are still actively used (they won't be) then you get a figure around 4.78 million 32 bit Intel Macs sold. Of course this is out of around around 37.5 million Intel Macs sold between January 2006 and April 2010. That would mean that 13% of all actively used Intel Macs are 32 bit machines (and that is having all 3 figures making up their total being over estimates).

Of course in the next few weeks we'll get the 3rd quarter results from Apple and I would be surprised if they didn't sell 2.5 million Macs or more, so if we add that to the total Intel Macs sold then we get 12%. Assuming they sell 3 million Macs again in the 4th quarter that drops to 11% and if they do 3.3 million Macs in the 1st quarter of 2011 again then we have 10%. Basically every quarter 32 bit Macs are accounting for a whole percentage point less.

And the above figures all assume nobody is replacing their 32 bit Macs. Even if we be very generous and assume that only 30% of those Macs have been replaced, then we get them making up 9% of Intel Macs. There are more people using Tiger right now than are using 32 bit Intel Macs!

Ultimately, 32 bit makes up less than 10% of people able to run Snow Leopard. Odds are that number is even less if you took the subset that actively buy Mac software. If you are writing new software, or re-writing existing software, then there is little reason to support something that is rapidly fading into irrelevance and may be dropped entirely from OS X in the next 12-18 months.