That's a damn good video guys, I'm going to have to watch that one again.
Some great discussion on gc, synchronous destruction, etc. Would love to see an extended discussion on that (memory leaks in gc environments,, scaling gc for large heaps or many cores, exception safety, gc for type safety, dealing with non-memory resources).
Also liked that you keep touching on early warning as a benefit. Could get into static vs dynamic, contracts or static analysis annotations and even the billion dollar mistake.
(I don't think anyone but Erik could have kept up with STL in this video, he's a machine!)
If I have multiple producers and one of them calls bc.CompleteAdding() wouldn't it be possible for the consumer to exit before the other consumers have finished their bc.Add() calls? Am I misunderstanding the behavior?
I'm still bullish on message passing in the long term for a number of reasons. I find the Erlang world view (if not the details of the language) very appealing. And I systems like Singularity make me even more optimistic about it. I look at IOCP and see the
same sort of thing going on.
It might be interesting for a future video to "go deep" on how synchronization primitives work (right down to the opcodes). I'd like to know if we'll ever get to the point where hardware designers can no longer maintain cache coherency system wide.
It might also be interesting to look into how Second Life's new Mono based script engine handles massive parallelism. You could also touch on Erlang style processes and the way the CCR can leverage iterators.