In light of that, one could see Blocks as Apple wanting to ensure that at least one closures-for-C implementation starts getting real-world exposure, much as OpenCL was their way of ensuring that there is at least one vendor-neutral GPGPU API, even if it isn't the best possible. If their methods do end up becoming de facto standards , Apple could gain a lot by being the preferred and most mature implementation. If not, there's no real harm to Apple, because their platform is already "different".
I agree, but the compiler changes are open source, and I'm happy to use them on a Mac (where I'm already using ObjC anyway).
And anyway, function pointers aren't that hard to groc.
Function pointers aren't closures. "Groking" isn't the issue -- accomplishing more with less code and fewer bugs is.
Speaking of which, are blocks supported by the iPhone's objC runtime?
UPDATE:
Unofficial support exists right now: