On Sep 3, 2009, at 9:44 AM, David Leimbach wrote:

I'm not 100% sure why the heck they did it this way, which is totally different from any other version of concurrent programming setup I've seen, except maybe that Apple likes to "think different"?

This API looks a lot to me like doing event-driven programming with jQuery. It lets you structure the code about the same as you would blocking, single-threaded code. That's the main benefit. The new stuff isn't intended to help you do Erlang-style concurrency or run on clusters. It's intended to help regular developers spawn a couple threads when it might help a little. Ease of use to the developer is priority 1 here.

Apple's strategy is, I think, fairly transparent: they want to make programming easier, and they want to make programming all of their different platforms seem similar. It works both intellectually (if they are similar, it's less to learn) and emotionally (it feels like a good investment to learn one, because it might at least apply to the others.) When you don't have the dominant platform, it's wise to cater to the laziest developers, because they are the ones who make the platform seem large and inviting to the customers. The more fun they make programming, the more it helps their bottom line.

— 
Daniel Lyons