It looks like a trap where decades long C++ programmers go into: Programming basic libraries which where done by other people so many times.
My assumption is that this happens because C++ libraries in general have a steep learning curve (thinking of some templated boost libs) and the obvious missing standard dependency management in CPP.
I made a few dot graphs if people are interested.
This is where I see this weird disconnect between communities. A C person doesn't want layers.
Really? So why are C persons then using formatted output libraries (printf, part of the standard library), libraries for regular expressions (PCRE), GUI toolkits (Gtk+, sitting ontop of Glib)?
I absolutely second that in the C/C++ world, we see shallow layers of abstraction, but nevertheless they are there. In my experience, the seperation happens frequently because people seperate basics from their code, such as in the given Glib/Gtk+ example.
In GTK+ everything has a clear purpose:
* glib: Portable OO and data structures for C
* gdk: Interaction with the windowing system
* cairo: Drawing
* gtk+: widgets
An application touches each of these directly according to its needs.
Nobody in their right mind would say "we need a wrapper to abstract glib". Which is a suggestion here for boost. Pretty senseless.
But I think the subtext of this discussion is that all the javascript kids expect 20 layers deep and the top ones get rewritten every year or they're considered obsolete, meanwhile the bottom 18 or so are "too close to the metal" for a reasonable person to work with. A C and C++ person of a particular mindset will seek to avoid such a thing. You want to be able to have the whole picture in your head.
From this angle it's a very weird complaint to say "I counted how many layers there were and it was too small!"
I remain baffled that anyone uses boost for anything in production.
Smart pointers (unique, shared, auto), now part of the standard <random> The new Filesystem TR unordered_{map,set} enable_if/type_traits
Some is probably less important, but they’ve been instrumental in moving the C++ standard library forward.
Shame to see it spent on this instead of virtually anything else. After skimming this a bit, I feel that realistically no company, organization, or individual should rely on this codebase due to its license and contribution by only one individual. I'd rather use Boost or well-established and popular third-party libraries to solve the problems this repo attempts to solve.
What if you're delivering software to a client and they find an issue with the JSON parser? HA! Time to switch libraries, because you legally can't fix the issue for them. What a horrible idea.