|
Boost : |
Subject: [boost] [Hana] Formal review
From: Manu343726 (manu343726_at_[hidden])
Date: 2015-06-28 04:32:33
Here's my formal review of Hana
- Whether you believe the library should be accepted into Boost
Yes
- Your name
Manuel Sánchez
- Your knowledge of the problem domain.
I have been doing TMP side projects as a hobby, including my own tmp library
in the same sense of Hana but metafunction based (Like Boost.MPL).
- What is your evaluation of the library's:
* Design
Hana design and wording makes it look more like a Hakell library than a C++
one (All the functional concepts, algorithms etc). I think it's fine since
Hana algorithms are about declarative data transformation. C++ needs that
change in the way of thinking, but I expect some others (more conservative
C++ programmers) to not accept Hana for not being too much "C++ish".
About metaprogramming, wrapping types into template variables is a game
changer. Some others noticed that doing type and value manipulation with the
same code may be confusing since with templates there is a clear line
between type manipulation code (templates) and value manipulation code
(normal C++). I'm partially agree, but I prefer not to write/maintain two
different libraries for exactly the same algorithms. That's the core value
of Hana.
* Implementation
Tmp is usually ugly, but Louis does a great work at making code as clear as
possible. Code is well divided and documented.
* Documentation
The library is documented in depth. I have mainly two issues: More
references about basic concepts and navigation. Both are already covered by
issues at github, so I will not dive into them here.
* Tests
Not looked.
* Usefulness
There are only a few libraries out there that provide this kind of
STL-quality set of algorithms. Having those work with types and values
worths it. As others said, there's a problem on current compiler support
(Only recent versions of Clang). I like the idea of pushing towards compiler
vendors, but it's true that since the beginning Boost libraries were
designed to work on any C++ platform available.
In my opinion, we should give Louis an opportunity, while giving vendors
time to update their implementations.
- Did you attempt to use the library? If so:
* Which compiler(s)
clang 3.6.1
* What was the experience? Any problems?
I tried some experiments regarding type manipulation. No special issues
raised out. It worked as expected.
- How much effort did you put into your evaluation of the review?
A few hours playing with the lib, plus a couple of hours to write the
review.
-- View this message in context: http://boost.2283326.n4.nabble.com/Hana-Formal-review-tp4677606.html Sent from the Boost - Dev mailing list archive at Nabble.com.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk