Hi St�phane,
Benjamin Pollack @bitquabit just tweeted the features list for 3.0. I have to say that you folks have some really exciting things happening there.
However, the naming of the methods for the "Simple Delayed Execution for Blocks" needs work. The #value* methods are so named because they return the value from the Block's execution. Neither #valueWithInterval: nor #valueAfterWaiting: answers the result of the Block's evaluation.
The naming of the arguments is questionable, too. The name "aDelay" suggests an instance of a given class, but the comment suggests the argument is an integer (milliseconds). I can see argument for a Duration as the argument, in the expression
[...something...] evaluateEvery: 100 ms. I don't think it can get clearer than that. But for performance, one might want an integer argument. Here the naming gets challenging. #evaluateEveryMilliseconds: is as close as I can come to readable, but I don't really like it either.
Thanks for all your hard work (and good work!).
Richard Sargent