Subject: [boost] [Boost.Local] Review
From: Hartmut Kaiser (hartmut.kaiser_at_[hidden])
Date: 2011-11-18 18:41:57
This is not a full review, mainly because I have not had the time to devote
more than a quick glance over the documentation (which is a good read, btw).
Upfront my vote: no, please do not include this library into Boost.
My reasons are:
a) Boost is a library which has quite some visibility not only for library
writers but also for application developers. IMHO, Boost not only has the
task of finding new ways for using C++, but it plays the role of
evangelizing good programming style, great API design, and thoughtful
functionality. Using macros as the sole API of a library to be mainly used
by application writers (not library authors) is not a good idea because of
all those well know problems related to macros: difficult to debug, error
messages are even more difficult to interpret than those generated by TMP,
macros are type agnostic and have absolutely no knowledge of C++, etc.
b) The proposed library does not add any functionality which couldn't be
_easily_ replaced by using existing C++ language features or libraries. This
is especially true if we talk about C++11 (which we should, IHMO).
c) A very personal reason: code written based on the proposed library for me
tends to be an unreadable mess. I have problems to remember, what arguments
to the macros means what, when to use additional parenthesis and when not,
etc. This is especially true when it comes to using 'default' and 'bind' in
the argument list. This just does not 'look right' to me.