Mac OS X/Intel

There were two points in the 2005 WWDC keynote where I wanted someone to heckle. The first was where Steve Jobs said that performance per Watt was more important than performance.

"Says who, laptop boy?"

The other moment begging for a question from the audience was where the guy from Mathematica was telling us what an enormous program Mathematica is, "a beast", but that only 20 lines needed changing to port it to Mac OS/Intel.

"What went wrong?"

You see, Mathematica may be "a beast", but it's a cross-platform beast. Apple presumably wanted to showcase Mathematica because it's well known that it's huge, and most programmers are rightly scared of numeric code anyway. So obviously, Mathematica must be really hard to port, and if it was easy for them, it's therefore going to be easy for everyone else?

But that logic misses what seems to me a very important point; one I'm surprised not to have heard anyone pick up on. According to Wolfram Research's list of supported platforms, Mathematica runs on IA-32 (x86), IA-64 (the only Intel architecture I've ever had any affection for), x86-64 (amd64), PowerPC, UltraSPARC, Alpha, PA-RISC, Power, and MIPS. Sometimes on more than on OS
per architecture. So you'd expect the beastliness to be mostly tamed by now. I can only assume that those 20 lines that needed changing were in Mac-only code.

So what were these 20 lines? And how much Mac-only code is there in Mathematica?


Some things make more sense now the switch to Intel is public. I didn't understand why Intel CEO Otellini came out the other week saying Macs are safer. Now it seems embarrassingly obvious.

I also didn't understand why 10.4 was supposed to appeal to anyone but developers. Dashboard's stupid, Spotlight's not finished yet (its speed is crippled on my Mac by its insistence on waiting to spin up my iPod's disk, during which the UI is frozen; that alone makes it pretty useless to me), Mail seems to have got more ugly rather than more functional... The built-in dictionary's really useful (though let down by not one but three fairly weak interfaces, each with different problems to the other two), but other than that I can't think of a single thing that would sell 10.4 to a non-developer. Real people don't care about Java 1.5, for example, even though that alone was enough to secure my pre-order.

But CoreImage seems like a great way to add extra portability at the same time as extra performance (assuming you're using Objective C++). Maybe that was just the first prod in the direction of transition.

Maybe 10.4 really was just for developers.


I'm pretty ambivalent about the switch to Intel, myself. Any time there's a Mac twice as fast as my current Mac, I'll buy a new one. So it's probably going to be another two years before I want a new one anyway. I'm slightly bummed that my world is going to turn little-endian, and that I'm going to be staring at Intel assembler in gdb(1) or objdump(1) output. (Sorry, I mean otool(1), because fat binaries are still Mach-O, worse luck!) I'm also bummed that I'm going to pay those costs without the benefit of some of the good Linux tools that I've had to live without. Though valgrind(1) should be a lot easier to port now!

Weird to me that Apple were so careful to say Intel. Didn't it strike everyone else as a type error to have "PowerPC" and "Intel" as the choices in the Xcode build dialog? Presumably part of the deal the two companies made.

I for one welcome Intel, our new little-endian, Z80-imitating, hardware DRM (Distributor's Rip-off Mechanism) pushing overlords. I just hope their other 32 bits show up soon; be that courtesy of IA-64 or amd64.