Boost logo

Boost :

From: Fernando Cacciola (fernando_cacciola_at_[hidden])
Date: 2004-02-19 17:07:11


  a.. What is your evaluation of the design?

Overall, it's really great (there are a few dark corners I commented on
already)
I really like the functoids taxonomy; and as I said on another post I like
(most of) the lambda/mondas stuff.

I didn't quite get the "arity" issue though, and I'm worried about the
prefix curring problem shown by Peter Dimov.
Maybe the solution is to require all curring to have placeholders, so that
prefix curring always use a trailing "_".

  a.. What is your evaluation of the implementation?

Haven't looked at it (yet at least)
  a.. What is your evaluation of the documentation?

Well, this is the weakest thing of FC++ IMHO.
There are different problems I see here:

1) The documentation that comes with the boost version is not self
contained. It refers to external documents (on the FC++), which AFAICT are
required reading in order to know and understand all of the library.
Most boost users would expect to get everthing they need in the download and
they will be discouraged if they find out they need to pick additional
documentation elsewhere.

2) There are too many features which are underdocumented or not documented
at all: they're just shown by example or merely mentioned. Examples are
strict_list, the epilog functions, most of the special lambda stuff
(let/letrec,LETtype....)

In general, the documentation shows FC++ as a FP library "for functional
programmers who want to do some C++"
Most of the stuff ommited or barely mentioned are well know to FP
programmers, but to most C++ programmers they are very obscure (LISP-derived
languages keep on using short meaningless identifiers, and so does FC++)

It might be ok for FC++ itself to be targeted to FP programmers (after all,
it is a functional programming library), but IMO Boost.FC++ should we
presented the other way around: for C++ programmers who "don't know"
functional programming "at all", but who are now given the oportunity the
learn about it, as they apply the concepts and tools to everyday C++
programming, because of FC++.

If the documentation of FC++ is reworked with that goal in mind, given the
reach of Boost, I guess a great deal of the C++ community will get to know
the best of FP while keeping their (our) favorite language.
And who knows, maybe we come up with a "core" FC++ in the future...

  a.. What is your evaluation of the potential usefulness of the library?

I'm sure this library will bring a new level of powerful idioms.
  a.. Did you try to use the library? With what compiler? Did you have any
problems?

Not yet.

  a.. How much effort did you put into your evaluation? A glance? A quick
reading? In-depth study?

I've made an in-depth study of its design (taking up many hours)
  a.. Are you knowledgeable about the problem domain?
Well, I don't do any production code in FP, but I'm familiar enough with it
to appreciate the library.
  a.. Do you think the library should be accepted as a Boost library? Be
sure to say this explicitly so that your other comments don't obscure your
overall opinion.
Yes, I think FC++ should be accepted into boost.

Fernando Cacciola
SciSoft


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