While all the Apple hardware announcements look great, I think this is possibly an even more significant announcement. C/Objective-C/C++ gets lambdas and closures! It looks like Apple has a very interesting single machine concurrency story here.<p>Right now I'm really enjoying Clojure- it's lockless approach to single machine concurrency is plenty, plenty fun. Unfortunately the downside of learning Clojure is that many other popular languages look downright archaic to me in this regard now. Now reading over this document, whodathunk, concurrency programming might be as fun in C as it is in Clojure!
First of all, this is awesome.<p>I am missing some details though. Are these true closures? What are the scoping rules? Can you read data declared outside of your block? Can you alter it? Is the only way to keep alterations safe to use a private queue? I guess time (or a closer reading) will tell.
This sounds inspired by SEDA (Staged Event-Driven Architecture). <a href="http://www.eecs.harvard.edu/~mdw/proj/seda/" rel="nofollow">http://www.eecs.harvard.edu/~mdw/proj/seda/</a>
It was about time someone made good use of it, too!<p>Is there more info available? The white paper is nice, but not too packed with detail.
This encourages a very different style of multicore programming than is common on desktops today, closer to that of grid systems. Very interesting to see how this develops.
I wonder how this will affect the legacy methods of concurrency in OS X -- specifically POSIX threads. I know I wrote a number of C apps using POSIX threads that worked well in OS X and in Linux. While this is nice and interesting for Mac only programs, I hope that I don't have to rewrite my cross platform apps to take advantage of the API.