With Gecko 1.9 development wrapping up, I’ve been thinking about the roadmap for Gecko 2.0’s Mac OS X support. One of the items that we’ll need to consider is architecture support – this is something on many Mac OS X developers’ minds since Mac OS X 10.5 was just released with top-to-bottom support for PPC, PPC64, x86, and x86-64.
I think we should make 2 architecture changes during the Gecko 2 development cycle – add support for x86-64 and drop support for PPC. I think the arguments for both changes are pretty solid.
x86-64 is the future for Mac OS X applications, and that future is likely to come sooner rather than later. Apple has a history of successfully making aggressive changes to their platform in order to stay on the cutting edge, and I think it is a pretty safe bet that come the next WWDC encouraging all developers to move to x86-64 will be a top item on the agenda. They have been dropping technical hints for years and sowing the seeds for this change in their hardware offerings. The reason for this is much bigger than x86-64’s technical advantages though – Apple wants to consolidate. PPC is on the way out altogether, but if 32-bit x86 applications don’t go away soon too then Mac OS X has to ship with support for more than one architecture for a lot longer and users will need to have 32-bit and 64-bit frameworks loaded into memory at the same time. I highly doubt Apple will drop support for 32-bit x86 in Mac OS X 10.6, but I think they would like the average 10.6 user to not ever have to load a 32-bit application for performance reasons. You can bet that they’ll offer some creative enticements for 64-bit migration by making some APIs x86-64-only in 10.6.
Gecko 2.0 is a great time to add support for x86-64 even if the first version of Firefox that ships with Gecko 2.0 doesn’t ship an x64-64 binary. I’m not suggesting that we necessarily make it a tier-1 supported platform, but we can get started down the path to tier-1 quality. It shouldn’t be too hard to do the work, we will have to do it anyway, and by getting this work done earlier we’ll eventually ship a higher-quality x86-64 product with less stress on development and QA.
Obviously PPC is on the way out in the Mac OS X world. I doubt that Mac OS X 10.6 will support PPC hardware, and by the time Gecko 2.0 ships (Q1 2009 at a minimum) we will have very few PPC users remaining. It simply won’t be worth the effort required to support it properly even if it seems like a good idea at the beginning of the development cycle. Not supporting PPC will free up engineering and QA resource to work on much more important things, and we will no longer have to ship a universal binary. PPC users will have access to a supported Gecko 1.9.x Firefox for some time after Gecko 2.0 is released, so it isn’t like they will be without a modern web browser. Dropping PPC support will be unfortunate for some just like dropping support for anything is, but on the whole I think it is definitely the right thing to do for Gecko 2.0.
Update: There is some confusion in the comments about what dropping PPC Mac OS X support would actually mean. First of all, I was referring to PPC Mac OS X only. PPC Linux and any other PPC platforms would not be affected. Secondly, I should have said we would just bump it from tier-1 supported status. There would be little in the way of code changes, PPC Mac OS X builds could remain available through a community effort.