Boost logo

Boost :

Subject: Re: [boost] [Experimental Boost.DI] [v1.0.0 released] [Looking for a Review Manager] Your C+14 Dependency Injection library with no overhead and compile time creation guarantee!
From: Paul A. Bristow (pbristow_at_[hidden])
Date: 2016-02-26 07:55:34


> -----Original Message-----
> From: Boost [mailto:boost-bounces_at_[hidden]] On Behalf Of Krzysztof Jusiak
> Sent: 23 February 2016 12:41
> To: boost_at_[hidden]
> Subject: [boost] [Experimental Boost.DI] [v1.0.0 released] [Looking for a Review Manager] Your C+14 Dependency Injection
> library with no overhead and compile time creation guarantee!
>
> Dear Boosters,
>
> I have just released version 1.0.0 of experimental Boost.DI library.
> Your C++14 header only Dependency Injection library with no dependencies.
>
> Library entered Boost Formal Review Queue some time ago and right now,
> IMHO, is ready to be reviewed.
> http://www.boost.org/community/review_schedule.html
>
> Therefore, I'm looking for a Review Manager, so if you think that Boost.DI
> is good enough to be reviewed and you would like to help with it, please
> let me know. Thank you!
>
> In the mean time check out the library yourself online!
> http://boost-experimental.github.io/di/examples/index.html
>
> Or read the interactive documentation...
> http://boost-experimental.github.io/di
>
> Or check out the source code...
> https://github.com/boost-experimental/di
>
> Why Boost.DI?
> * Boost.DI has none or minimal run-time overhead
> * Boost.DI compiles fast / Faster than Java-Dagger2!
> * Boost.DI gives short diagnostic messages
> * Boost.DI is non-intrusive
> * Boost.DI reduces boilerplate code
> * Boost.DI reduces testing effort
> * Boost.DI gives better control of what and how is created
> * Boost.DI gives better understanding about objects hierarchy
>
> Read more why here -> http://boost-experimental.github.io/di/index.html
>
> Any feedback is more than welcome!

This documentation looks very swish and sexy and has obviously received a lot of thoughtful work.

I'm not needing injections at present (apart from monkey glands perhaps ;-) but you told a plausible story with good graphics
(though I was left with a bit of a Huh? feeling).

I'm not at all convinced that it's really worth making it all interactive.

Without going all NIH (Not Invented Here), I feel there are some big things missing.

1 Versioning - each released Boost version needs its own version of the docs - or people will get really confused.

2 Not standalone - we aren't all always online. HTML version is vital, single PDF is neatest.

3 Unfamiliar. For a 'simple' (in what it offers, rather than its internal complexity) library like this, this is not so important,
but the toolchain doesn't scale IMO.

4 Difficult to find what you are looking for. This start with the library name Boost.DI - how are you going to know that you might
want it in the first place? (There are lots of other 'pet' library names that will not draw users unless they know what they are
looking for). And it gets worse when you fail to find a detailed table of contents and class, macro, function, concept and general
index.

For me 'how to find' is an major documentation problem that we haven't cracked yet.

4 Not maintainable. This is a BIG issue. We are already seeing a lot of Boost libraries where the documentation cannot be
maintained by anyone other than the original author (they all disappear eventually). Some have been completely refactored (a lot of
rather tedious work) but in several cases we have effectively given up on making any changes to the documentation. This is really,
really BAD.

Using the Quickbook mark-up language (for example because it is used for many libraries) anyone can make small changes with any
plain text editor, and there are many people who can make much bigger revisions.

Using Doxygen-syntax comments in the source code, anyone can easily change these comments with their preferred IDE or editor. All
changes will appear in documentation automatically.

Anyone can change the indexing by changing the source code (or the index.idx plain text-file that controls Boost auto-indexing).

Setting up the building tools is some hassle (like all other tools, including getting endless Javascript updates!),
but these tools don't need to be used by the person who makes the documentation changes - the build process will take care of that.

So nice try, but no banana.

Paul

PS The one thing that we could do is to use the CSS to make it easy for users to impose their own syntax color scheme onto Boost
libraries. I'm really sensitive to this (and for chromatically challenged it will be a major readability issue).

I feel person CSS should be a quick win.

---
Paul A. Bristow
Prizet Farmhouse
Kendal UK LA8 8AB
+44 (0) 1539 561830

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