Steve Jobs Invents Threads!
Leon forwarded me this gushing NY Times regurgitation of this apple press release. This part on upcoming advancements in OSX Snow Leopard’s use of mutiple cores was interesting:
Snow Leopard delivers unrivaled support for multi-core processors with a new technology code-named “Grand Central,” making it easy for developers to create programs that take full advantage of the power of multi-core Macs.
The NY Times quoted Steve Jobs as saying:
“The way the processor industry is going is to add more and more cores, but nobody knows how to program those things,” he said. “I mean, two, yeah; four, not really; eight, forget it.”
And Apple’s “snow leopard” landing page says this:
Grand Central takes full advantage by making all of Mac OS X multicore aware and optimizing it for allocating tasks across multiple cores and processors. Grand Central also makes it much easier for developers to create programs that squeeze every last drop of power from multicore systems.
Colour me sceptical. Concurrency is a hard problem and current programming models rely on the developer to (try and) keep track of what is shared and what isn’t. Apple is certainly not the first company to notice the rise of multi-core, and not the first company to try and ease the pain for simple-minded developers. On top of the “normal” concurrency stuff (threads, monitors, locks etc) that are built into .NET Joe Duffy and co have been cranking out parallelfx releases for at least 6 months (and discussed for nearly a year and a half). Joes upcoming book on concurrency looks awesome. I’ve done some sholder-surfing while Joel has been flicking thru some of the chapters in the rough cuts version and I can’t wait. You can pre-order form Amazon.com here.
One thing I did like about the Apple press-release was the announcement that they are working on “foundational” enhancements in snow leopard rather than a lot of user-facing features. This is something that Microsoft tried with Vista. Time will tell if it has paid off for them or not, but I certainly think there is a lot of work that could be done on “foundational” stuff and “fit and finish” in Windows, rather than going for bullet-points-on-the-back-of-the-product-box features.
I think that Microsoft’s track record is exceptional in this area. Don’t the outlook team give roadshows on best practice for writing multi-threaded code.
:-)
Bruce