What went wrong with the libdispatch. A tale of caution for the future of concurrency..
This post from “Thomas“, the creator of the OS X/Mac OS utility TimeMachineEditor crossed my desk the other day. I remember when Apple announced Grand Central Dispatch (the branded name for libdispatch
) as a thing, and being surprised that desktop systems developers were borrowing patterns (queues) that seemed to work well in the world of web applications. As I’m not an Apple developer I filed this away in my head as an example of asynchronous programming and went about my life.
Beyond the specific points raised by Thomas, this is a good example of be careful what your vendor tells you. It sounds like Grand Central Dispatch was initially oversold by Apple’s engineering and marketing departments. Not that it’s not a useful system, but that it’s not the end all be all “turn off your brain we’ve got this for you” concurrency solution everyone was looking for. Put another way — with libdispatch
you’re swapping one set of problems for another. That’s a pattern you’ll end up seeing over and over again if you stick around professional software development circles long enough.
If you are an Apple developer it looks like Thomas also has a list of tips/best-practices for using libdispatch
efficiently and (as usual) Michael Tsai’s website has a nice roundup of posts from Apple developer community on the topic.