The Infinite Loop

June 15th, 2008 by ken

You can separate the OS X feature engineering work done by Apple into two categories. There’s the features that are exciting to the typical Mac user, and then there’s the features that are only exciting to software developers. When Apple says that they’re “hitting the pause button on new features”, they’re talking about that first category of features. From a developer’s perspective, Snow Leopard is overflowing with exciting system enhancements, tantalizing new goodies to allow for faster development and huge performance improvements.

The tradeoff triangle.
Image credit: Microsoft

Pausing to focus on stability and performance is every large software company’s fantasy. The typical process of software development is a cycle: New feature requirements are handed down from on high, developers work furiously on the new features, cut corners to get them just to the point where they’re (mostly) working, and then rush them out the door on a slipped deadline. Fixes to critical bugs come iteratively as point release updates, but the majority of the engineering team has already moved on to the next batch of new features. There’s never any time to go back and improve on things.

It’s unprecedented for a company to have this luxury: To be able to pause the infinite loop and concentrate entirely on making the current feature set work better. In the large part, working better means running faster. It also means adding new frameworks and paradigms to allow future features to be built on a firm foundation. They’re improving the underpinnings of the OS. You can think of it like Verizon’s FIOS project. Customers might not see a huge benefit today, but by replacing their copper infrastructure with fiber-optic, they’re enabling future technologies. Similarly, Apple is building a powerful new infrastructure for the future of the platform. Competitors are going to be left with crackly old wiring.

A winning strategy

Clearly, I’m very excited by this strategy. By taking a whole engineering cycle to focus on enhancements and create performance-improving technologies, Apple is going to move so far ahead of competition that the competition might never be able to recover. They’re going to skunk the competition.

Concentrating on performance improvements isn’t something new for Apple. I haven’t verified this scientifically, but from personal experience, upgrading to Leopard actually results in a speed boost for things like boot time and application launch time. This comes as a surprise to many people. We just assume that a newer OS will require a faster machine and say things like: “I’m not sure my old laptop can handle Leopard.” In fact, Leopard is a faster operating system than its predecessors. Upgrading will actually result in a performance increase.

The things I saw this week at WWDC made my eyes bug out. They’re determined to squeeze every last cycle out of the CPU (and the GPU for that matter), constantly asking the question “How can we make this faster?”. I imagine a big banner, a la Office Space, hanging above the cubicle farm in Cupertino. Another important focus is enabling 3rd party developers to easily (or even automatically) benefit from these new technologies.

With each normal development cycle, performance might move up by some small amount. (In the competition’s case, it might actually go down.) In the Snow Leopard release, it’s going to make a huge jump.

Putting all your cores in one basket

While every shipping Mac is now a multi-core machine, programming languages and application architectures have not kept up in a way that allows developers to easily take full advantage. Until now, efficiently and properly taking advantage of all available cores has been a tricky and error-prone process even for the most brilliant of engineers. Snow Leopard will solve this problem in many ways, with new language features, and a new operation paradigm which shifts the burden of threaded programming away from the developer and into the capable hands of the OS.

Who needs so many bits?

For developers, moving to 64-bit is a cheerless and time consuming process, made even worse by the fact that consumers will not even notice an immediate difference. Apple is going to do it in Snow Leopard because they know it will make things better over the long run. It’s like getting your wisdom teeth removed when they’re not yet causing any discomfort. It’s going to need to happen at some point, and better to do it now when you can schedule a convenient time for the procedure. You won’t feel better right afterwards. In fact, for a short period of time afterwards you’ll feel worse. But once you’re recovered, you’ll be glad you did it. Apple’s investing in a healthy future. Competitors are going to end up wearing braces.

As hip as a software engineer

I love that Apple doesn’t try to use the current buzzwords and trendy technologies. They could be trying to generate investor excitement with things like XML and social networking, but they’re not. Instead they’re putting lay-people to sleep with things like OpenCL and gigaflops. It’s as if they’ve put the developers in charge and everyone else is out to lunch.

Way to go Apple. Power to the Programmers!


20 Responses to “The Infinite Loop”

  1. Joachim Bengtsson Says:

    The biggest surprise to me during this my first WWDC was that Apple was *so* into performance! I did not know that.

    Apple’s into pretty, all the way from case design to code API; and if you have beautiful code it usually means (if you’re not so hot) that you’re sacrificing some performance for readability. This is the idea I got that Apple’s been doing, because Cocoa is the most beautiful API there is. But that’s not the case! From friends who’ve gone to WWDC for a long time, this year was actually *a lot less* concentrated on performance than before. I’m having a hard time imagining a WWDC *more* performance-centric than this one…

    And definitely I agree with what you say — every Mac OS has been faster than its predecessor, and Snow Leopard will be so very much more so, especially if you have several cores and/or a current-generation graphics card.

  2. Christian Says:

    If more updates were simply speed and stability improvements I would be a happy camper. I like most of the new user features (QuickLook—OMG!) and others I don’t care about too much (Spaces—eh).

    But if I had a major upgrade only created a steady bug-fixed architecture-streamlined release I wouldn’t complain one little bit.

  3. Paul D. Waite Says:

    > every Mac OS has been faster than its predecessor, and Snow Leopard will be so very much more so, especially if you have several cores and/or a current-generation graphics card

    Or even if you’ve just got an iPhone or an iPod Touch. It’ll be more responsive, and use less power.

    Boom, as they say.

  4. David McCabe Says:

    But aren’t we spending most of our time waiting for the disk?

  5. Mark Says:

    Man, I wish they would do this to the iWork apps. Just get what’s there working at a higher performance level.

  6. ken Says:

    @David: It’s funny you should say that. At WWDC they released a new iPhone SDK which is a > 1 gigabyte download. They were smart enough not to allow it to be downloaded via the convention center’s Wi-Fi. If you tried, you got a screen instructing you to connect to ethernet instead, with a map of ethernet-enabled locations around the building. When I connected to a hard-wire, and downloaded the dmg, it downloaded at a blazing 20 megabytes a second. Yeah, 20MB per second! But guess what? This was too fast for Safari to handle and the app beach-balled for the duration of the download (about 50 seconds.) I can only assume that it was downloading so fast that the main thread was blocked, probably by disk IO.

  7. Jens Alfke Says:

    @ken — It’s not actually a cube farm. Almost all of Infinite Loop is offices.

    @David — You’re right that disk I/O is a bigger problem that CPU for the most part. But a primary reason the system hits the disk is because address space got paged out; so memory usage turns out to be the biggest culprit. And there are definitely areas where CPU speed is critical too, like A/V.

  8. eddy Says:

    in 2001 XP shipped; for 5, 6 years MSFT focused on the platform, performance etc (.NET, various features mix) and they delivered Vista.

    I could only hope AAPL is not doing something stupid. From the consumer’s standpoint, it’s always better for a company to kill its products and move on, deliver a better one.

  9. Hamranhansenhansen Says:

    > It’s unprecedented

    Except when Apple did this same thing recently with Tiger for Intel, which is “Snow Tiger” in retrospect. The user-facing part stayed the same but underneath they added developer-friendly features like Universal Binaries and Rosetta, and future-focused features such as compatibility with Intel architecture and EFI.

    A case could be made that Puma (10.1) was the same. It was free to 10.0 users, offered as a bug fix essentially. They didn’t even change the box artwork for Puma.

    One could argue that Apple was forced into Puma by the low quality of the initial release and forced into Tiger for Intel by lack of PowerBook G5, and that Snow Leopard they are doing by choice. But a year or two after Snow Leopard we may say Apple was forced into Snow Leopard by CPU’s with 128 cores.

  10. Fred Brunel Says:

    I couldn’t agree more. Apple is truly determined to get rid of the competition. I’m pretty amazed how far the company is going.

    OpenCL and multicore technologies are going to be huge for pro apps. I can imagine Adobe taking advantage of both technologies for the next Photoshop. No PC (and OS) on the market will be able to compete anymore.

  11. Chris Says:

    Yes, agree almost 100% apart from the speed increase with Leopard. With every release of OS X (& I have run every one!) I have noticed a speed increase, apart from Leopard! IMHO Leopard is a superior OS but slower to start up and doesn’t feel quite as solid as Panther - probably the best release ever. Tiger was quicker than Panther but had a stack of bugs which took a while to iron out. With Leopard I noticed a clear speed decrease compared to Tiger and there have been a slew of issues with the new features like Stacks and Time Machine.

    So I, for one, am delighted that Apple are forgoing releasing buggy new features and going for stability and performance. I think the ability to maximise the resources in your existing hardware investment e.g. easily utilise the GPU for generic code is something I’m genuinely excited about.

    Additionally now that the barriers to adoption in the Enterprise are seriously removed with the support for Exchange in Snow Leopard I also suspect that Enterprise purchasers will be able to seriously consider using Macs as an alternative. Why would they consider such a decision? Because for the last 7 years Apple has demonstrated that OS X more effectively uses the resources on older machines - meaning that the organisation is less likely to require expensive hardware refreshes. OS X = a lower TCO per platform.

    My theory is Snow Leopard + iPhone is Apple’s big push back into the Enterprise desktop, relegating Microsoft to providing core services such as Office and Exchange. Good on them - about time too!!!!!

  12. miles2gob4isleep Says:

    > But aren’t we spending most of our time waiting for the disk?

    I hope they also optimize it to take full advantage of fast SSDs (fast IO and low-latency), they will become more affordable one day

  13. Jaakko Saari Says:

    Wonderful post. After reading I thought Snow Leopard is definably going to be an upgrade what I will buy sooner than I did Leopard. Actually I just recently switched to Leopard as my Macbook Pro came with it, and soon I upgraded my iMac. I didn’t feel like jumping into the new train so soon.
    Snow Leopard seems indeed a fantasy upgrade to me, long time mac fan and user of pro apps.

  14. jeff Says:

    Excellent post, and it echoes exactly what I was feeling Monday during Bertrand’s talk and throughout the week in the various “What’s New in …” talks. This is stuff only developers can get excited about in the short term, but it’s stuff we can really get excited about because we know what it means in the long term.

    I used to work for a large software company, and the developers were always begging management to take a release to catch up, do bug fixes, catch our breath, and make a better foundation for going forward, but we could never convince management that it was worthwhile. They wanted releases every eighteen months, and they wanted flashy new features the sales force could demo.

    This is darn cool stuff. I was giddy watching some of the stuff that’s coming, but could I explain to my Mom why this is so awesome? Probably not, so for a consumer software company to do this is just amazing.

  15. ken Says:

    @ Hamranhansenhansen: Yeah, good points!

    @eddy: Snow Leopard is planned for next year, so hopefully it won’t take as long as Vista! ;)

    I’m sure they’ll squeeze a handful of new features in there too just to keep things fresh. At the least they’ll make all the system icons look shinier as is their custom.

  16. conigs Says:

    “I can imagine Adobe taking advantage of both technologies for the next Photoshop.”

    Only they won’t. They’re using Carbon right now (actually, so is Apple for most of their pro apps), and Photoshop CS4 will still be 32-bit since Apple dropped Carbon-64 support. I’d be surprised if CS5 even uses any of the new features (though that should be at least 64-bit by that point, which should mean they’ve moved on to Cocoa).

  17. milo Says:

    “They’re using Carbon right now (actually, so is Apple for most of their pro apps), and Photoshop CS4 will still be 32-bit since Apple dropped Carbon-64 support.”

    Except that neither of those new features has anything to do with 64 bit. Is there any reason to believe that Apple would require apps to be 64 bit to take advantage? Or has Apple said that either of those features will be Cocoa only?

  18. David H Dennis Says:

    Miles2Go, it might not take that long. Engadget mentioned an announcement of a 256gb SSD that was planned to ship this fall and sell for around $600.

    I think it could be possible to have a quad-core 256gb SSD 17″ MacBook Pro in the fall. They could build in a thinner form factor like the Air and put in full connectors in the back, unlike the Air. I’m pretty sure that’s what Steve wants to do. The reason it’s taken so long is that only the SSD would be fast enough to keep MacBook Pro performance up, and I’m sure there are cooling issues with the Quad Core.

    I don’t know if he could do it for less than $3,999 but I know it would sell like crazy, even at that price. If we’re lucky maybe we’ll see $3,499.

    I think if it can be done, we’ll see it this fall. I’m definitely looking forward to it and only fearing the price :-(.

    D

  19. A. Nonymouse Says:

    @milo: Apple has deprecated Carbon since last year, despite it being touted as a “First Class Citizen in Mac OS X” in previous years. This means new features cannot be accessed from it, so Adobe has indeed got to rewrite its apps. Apparently there are a lot of long time Mac devs who are in the same boat. Not a nice situation to be forced into really… I sympathize with them all.

  20. ken Says:

    It’s funny, because if Adobe wanted to take full advantage of Apple’s new performance features, they’d have to do a lot of re-writing of existing code… And as I said in the post, large software companies almost never have this luxury. Maybe it wouldn’t take up an entire release cycle, but it would definitely be painful for management to trade-off exciting new features for faster effects.

Leave a Reply