Subject: Re: [boost] [review] Dataflow Library
From: Stjepan Rajko (stipe_at_[hidden])
Date: 2008-09-04 14:12:52
On Thu, Sep 4, 2008 at 10:58 AM, David Abrahams <dave_at_[hidden]> wrote:
> on Thu Sep 04 2008, "Giovanni Piero Deretta" <gpderetta-AT-gmail.com> wrote:
>> On Thu, Sep 4, 2008 at 7:21 PM, David Abrahams <dave_at_[hidden]> wrote:
>>> Okay, but which applications need runtime configurability? Would not
>>> the performance advantages of a compile-time structure be more valuable
>>> than the flexibility of runtime configuration in most applications?
>> Distributed applications could be a good use case. If you have your
>> components on different machines, you can't take advantage of
>> compile-time structure anyways.
>> Even for normal applications it is often very useful to be able to
>> reorganize your pipeline without a recompile, at least for coarse
>> grained components, where the benefit of static checking and
>> optimization might be less important. In particular, the ability to
>> add or remove sink and sources, or disabling optional components, is
>> very useful.
> Good points, all.
Indeed - thanks for mentioning these. Some more examples are when you
would like to load the components dynamically (e.g., using
Boost.Extension) so that new components could be added without
touching the main application. In combination with the GUI system, it
can also be used for rapid prototyping (in a future far far away,
when/if the Dataflow library starts supporting compile-time
specification of dataflow networks, I could see a cycle involving
rapid prototyping using the GUI, and then exporting the final solution
to a source file which can be used to produce an optimized version of
the run-time network).