|
Boost : |
From: Asger Alstrup Nielsen (alstrup_at_[hidden])
Date: 2002-02-26 12:45:20
My review of the signal system based on reading the documentation only:
I vote to accept, since the proposed system seems well designed, and well thought out.
I feel that a signal system is a very important component that every programmer should have in his toolbox, since it allows you to decouple things a lot.
A few issues for consideration:
- The terms signal/slot are not intuitive. I know this has been discussed earlier, so this is just to say that I personally find the terms "callback" or "delegate" better. Now, naming debates are not very productive, so I hope this won't develop into a big naming fight. Allow me to say that I can live with "signal", but I would be happier if the word "slot" was not used. As I understood the documentation, a slot is nothing more than a function, so maybe we can do without introducing this non-intuitive term at all, and just use "function" instead?
- The tutorial has a demanding structure. We have a bunch of concepts A, B and C. For each concept, we have different kinds of each, A1 and A2. The tutorial presents the system in a sequence like A1, A2, B1, B2, C1, C2. I would prefer a sequence like A1, B1, C1, A2, B2, C2. This way, I think it will be easier to understand why you need A1 and A2, and what the whole thing is about.
- The ordering issue. As a user of other signal systems for many years, let me express that I consider control over ordering much more important than return values and naming. At the minimum, there should be optional deterministic ordering. I.e. you should be able to use a signal that guaranteed some kind of simple ordering, be it FIFO, or LIFO. At the next level, control over this ordering using naming or priorities or whatever would be great.
Other than that, let me express my appreciation of the work you have done on the signal system, which I think contains some innovative ideas that sets it apart from other signal/slot implementations. I like the fact that you try hard to make each single component self-contained in order to decrease coupling, and this is exactly why signals are interesting themselves.
Greets,
Asger Alstrup Nielsen
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk