$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] boost::directx?
From: David Bergman (David.Bergman_at_[hidden])
Date: 2009-06-08 21:18:55
On Jun 8, 2009, at 8:47 PM, David Bergman wrote:
> The bulk are generic language-lifting tools, basically giving the  
> programmer a greater vocabulary. And, even if I bashed math  
> libraries a bit, I would classify the current (as of 1.39.0)  
> libraries as (and I did go through each library, and might have  
> counted wrong with a few units here and there):
>
> 1. Language Extensions - 60   (including Statechart and BGL, which  
> are applicable much more often than the developer realizes)
>
> 2. Common Types & Features (often part of newer languages standard  
> libraries) - 8   (Accumulate, Numeric Conversion, Date, Format,  
> Random, Regex, Serialization, Xpressive)
>
> 3. OS Abstraction Layer  - 8   (Filesystem, Asio, Interprocess,  
> Iostreams, Pool, System, Thread, Timer)
>
> 4. Math - 8  (Interval, various Math libraries, Rational)
>
> 5. Other Specialized - 7   (CRC, GIL, MPI, Proto, Python, Spirit,  
> uBLAS, Units)
>
> The first two categories can be characterized as bringing the  
> language of C++ up to (and beyond) that of newer creations, where  
> the third category is often part of such a standard library. The  
> number of libraries belonging to those three categories is 76.
>
> The latter two categories are clearly domain-specific, though. The  
> number of such libraries is 15.
>
> If you disagree with these figures, I welcome a revised table,  
> otherwise we can clearly state that domain- and target-*agnostic*  
> libraries constitute the bulk of Boost, by far.
>
>> We could say "OK, no more domain-specific libraries in
>> Boost!!!~!~1`~!!~111" but first we must formally define the domain of
>> libraries that are acceptable in Boost. Good luck with that. :)
>
> First of all, I do not understand why we would have to use profanity  
> in stating that, but alright, I would definitely welcome such a  
> decision, and it is quite easy; just see the table above. I would  
> welcome exclusion of those 15 domain-specific libraries...
Looking even closer at the potentially domain-specific libraries  
(those 15; I actually moved Spirit up to #2, I see now), we see tthat  
12 of them belong to the domain of Scientific Computing.
So, if we state that "Boost is a set of language-enhancing libraries  
along with the slight exception of one domain, scientific computing"  
we are left with only three libraries. Three oucasts: CRC, Python and  
GIL. The first one can easily be transitioned into category #2, and  
then we are left with only two: Python and GIL. And the former one is  
not even specific to any business domain. Let me put it this way: if  
something like Boost.Python was suggested today, and by somebody  
fairly new to the Boost community, it would not stand a chance to be  
considered ;-)
Going back to your challenge of formally defining the "admissible"  
domains, where you even wished me good luck: there is only *one*  
specific domain for which Boost includes support and that is  
scientific computing, and even in such cases, the libraries should be  
multi-platform as far as possible. This holds up to two tiny  
exceptions, GIL and Python. And even those clearly exceptional cases  
are multi-platform.
/David