Saturday, June 09, 2007

two days to go

When Steve Jobs discussed Mac OS X 10.5 (Leopard) at Macworld in January, he made it clear that he wasn't mentioning everything there was to talk about, that some aspects of Leopard remained "Top Secret" as the screen behind him said.

More recently he has promised that a "feature complete" beta version of Leopard would be made available to attendees at Apple's Worldwide Developers Conference (WWDC). This has been widely conflated with a promise to announce all of the remaining secret features, but he hasn't actually promised that, although it's very likely that he'll at least hit most of the remaining high points in his keynote presentation.

If the beta that Apple distributes at WWDC actually is feature complete - and I have no reason to think that it won't be - then anything he neglects to mention will doubtless be ferreted out over the next few days following his keynote, since there's always someone who wants to be the first to break their NDA by revealing some juicy Apple secret, and Apple actually counts on this as part of their marketing strategy. It's a great way to hold people's attention, so don't be too surprised if a few surprises turn up later in the week.

It's already plain that Leopard is HUGE, meaning a bigger improvement over the current version of Mac OS X (Tiger) than any previous version has been over its predecessor, and Tiger is really good, so that's saying something. We already know about Time Machine, Core Animation, iChat integration, Calendar Store, resolution independence, and full 64-bit support, as well as big improvements to Xcode, Apple's integrated development environment. What more could there be?

One recent rumor has it that the default filesystem in Leopard will be ZFS. Others speak to integration with iPhone and Apple TV, both of which are givens in my opinion. There are also rumors about big improvements to Apple’s .Mac service, which would be echoed in Leopard. So far as I’m aware, no one has yet seriously suggested that Leopard will allow Macs to levitate and move about on their own, although I’ve little doubt that the day is coming when OS X (Mac OS X minus its desktop-specific components) finds its way into hardware that can move, probably sooner rather than later.

What else?

How about retroactively turning sequential code into multithreaded code? (I hear the sound of eyes glazing over. ;-) Traditionally, computer programs have done one thing at a time, and there was no disadvantage to this because computers also did one thing at a time. But the trend in computing is toward multiple cores, which is to say toward doing more than one thing at a time, and programs that aren't able to take advantage of this will soon be upstaged by those that can. Compilers - the programs that turn the code that programmers write into code that computers can execute - are, in some cases, already able to detect which parts of a program could run simultaneously and produce code that does so, but that requires recompilation, at the minimum, and also can't really optimize the code without some knowledge of the hardware it will be running on (without providing multiple versions). An elegant approach is for the operating system to further process the code produced by a compiler, as it's loading a program, to tune it for the specific environment in which it will be running, including how many cores are available. Java works this way, but is arguably not an ideal solution. (Considering that Apple's Rosetta translator is already based upon QuickTransit, it doesn't seem like much of a stretch to think that Leopard might possess such a capability, at least for recompiled code.)

What else?

How about Core Heuristics, a framework that makes it easier to write programs that learn as they are used?

How about Core Physics, a framework that makes it easier to provide animations with realistic motion, reflecting mass, force, and momentum?

Okay, maybe I'm wishing for the pot of gold at the end of the rainbow, but the point is that, with Apple, doing so isn't so farfetched. There are always solid business reasons for what they choose to (or not to) invest in, but without being privy to their internal deliberations it can be very difficult to guess which way they might go next. Hence the excitement as the minutes tick by and Steve Jobs's keynote presentation approaches.

No comments: