Boost logo

Boost :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2004-03-02 04:09:39


Gennadiy Rozental wrote:

> > Insofar as Boost has become something of an authoritative repository
> > of "GTM libraries", I think that FC++ has perhaps earned a place
> > here. I think it probably needs work to become idiomatic in the most
> > current style, but then, so do probably a lot of libraries.
>
> If I understand you correctly what you are saying is: "let's have it just
> because it's cool example of what could be done with C++, good example of
> GTM in use".

[...]

> 2. There is nothing cool about class designed and implemented the way so it
> works 320 times slower then similar solution written in different style.

[...]

> 3. One of the main lessons I brought from numerous examples of GTM is
> actually that we need to stay away from FP in our production programming as
> far as possible. After all usage of FP techniques it's primary reason why
> compilation more and more taking ridiculously long time nowadays. IOW from
> where I stand now I wouldn't want my fellow coworkers to start using FP in
> our design. If you(anybody) know an example where FP actually does bring
> any advantages, please step out. In other case your statement that
> lazy_list design/implementation/idea is cool have no grounds.

I agree with Gennadiy here. I haven't found the time to review FC++ and just
read the docs once, so I by no means qualified to vote for or against it.

However, it's alarming that the docs don't say when the library should be
used. Nobody's going to move their entire project to FP, so it worth knowing
what parts can be beneficially moved. And the performance results Gennadiy
quotes is vary alarming.

I was rather exited about FP some years ago when I first exposed to the
concept. I've experimented for some time, and now I'm not as excited. While

    max_element(my_namespace::transform(some_container, functor));

does save some typing, it might negatively affect compile time. And if
'functor' is tryly polymorphic (i.e. has templated operator()), you can get
the the point when all the application is one big translation unit full of
templates.

- Volodya


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk