Monday, June 06, 2005

The challenge for Apple going Intel...

...is that a whole new layer of complexity will need to be added to the Mac platform. I have no doubt that the vast majority of the technical stuff that's going to need to be done to ensure a "seamless" transition from PPC to x86 will be handled well and will be kept mostly behind the scenes for the average user, but still... Supporting two processor architectures introduces a hell of a lot of additional complexity to the platform.

One of the Mac's biggest advantages has always been the simplicity and elegance of its hardware and software (relative to other platforms). And one of Windows' (and Linux's) biggest stumbling points has been its complexity (i.e. support for nearly every type of hardware/software/processor out there).

Going to Intel is probably a very good move for Apple, and I'm pretty confident they're going to do it "right". The biggest challenge for them, as I see it, is to minimize the complexity of the switch and to preserve the elegance of their platform while doing it. And if anyone can do that, it's Apple.

This brings up a related point: the balance between elegance and simplicity of design versus "real world" issues in software development. While I'm not a developer, I manage software projects and am an armchair programmer/hobbyist. The Holy Grail of computer programming (and most logic-oriented enterprises) is to come up with an extremely simple set of tools and rules that, when used properly, can accomplish a set of tasks in an efficient way. The simpler the building blocks, and the more consistent the rules of their use, the better.

The real world often works differently. The real world is messy, human, and organic. Things don't always work the way they "should"- tools and rules break and are broken. Unforeseen situations occur and tools and rules are forced to do things they weren't designed to do. For example, today's air traffic control systems use computer technology that is literally decades old, when out of everyone in the world who could benefit from better computers, it would be those poor people. But in reality, the difficulty of upgrading systems that are in such constant use has (so far) outweighed the benefit of replacing them. An ATC system designed today would be so much more efficient and elegant than whatever Frankenstein mess of we-don't-even-want-to-know is currently keeping planes in the air- but only on paper.

Software's the same way. The internal workings of a program (or an operating system) need to take into account the real world situations in which it will find itself. And those situations often require a level of complexity to be introduced into the program that is unfortunate from a design perspective.

In Apple's present situation with Intel, because of ecnonomics and (to some extent) industry politics, the world of Mac software design is going to have to accomodate two incompatible processor architectures for several years to come. No engineering purist would have designed this fact by choice- it was the real world that mandated it.

In other words, in the real world, the ends are almost always more important than the means. And that's distressing to someone who (like me) worships at the alter of logic and order. The most "perfect" system can be easily defeated by the most mundane aspect of the real world.

But really, more than being distressing, that fact is inspiring (or should be). It represents change. Software is changing because it is being asked to do more complicated things, in more complicated situations, than ever before. It's getting more "real". For the previous (and current) generations of software, it was typically expected that a program's user would need to understand and obey and rules and tools of the software itself in order for the software to work properly.

Not anymore- not if software is going to be made to work for us, as opposed to the other way around. Complexity and messiness (which is not the same thing as sloppiness, by the way) are signs of software maturing- growing pains, for sure.

But the ends will justify the means.

0 Comments:

Post a Comment

<< Home