Standard Library Concerns (Phobos / Tango)

Jarrod qwerty at ytre.wq
Fri Feb 15 03:23:41 PST 2008


On Wed, 13 Feb 2008 00:44:56 +0900, Bill Baxter wrote:
 
> People seem to forget that C++ really has multiple "standard" libraries
> too: the one inherited from C, the C++ native one (STL/iostreams), and
> then Boost.  Then on top of that just about every single GUI toolkit has
> its own set of utility classes because first off templates were
> extremely unreliably when most of the GUI projects were started, and
> second the official standard libraries try so damned hard to be
> platform-neutral that they are often not that useful for getting real
> work done.
> 
> So I agree.  There's absolutely no problem with multiple "standard"
> libraries.  People will use what suits them, and the chances of one
> library pleasing everyone are slim in a multi-paradigm language like D.
> 
> The main difference in the D situation is that all those various C++
> libraries can be linked together and used in the same app without
> requiring modification of your compiler's installation.
> 
> --bb

You are correct that C++ has multiple standard libraries, but you neglect 
the key point: They all work together, and for the most part they offer 
complimentary rather than competitive functions (ignoring of course the C 
and C++ standard libs which clearly do clash but for a valid reason)
Furthermore, the overall compilation result of C++ code -does- depend on 
a single specific 'standard' runtime library for entry point/exit 
handling and several other things like signal/exception handling and what 
have you.
Boost also does not replace nor prevent the use of the STL/std, and does 
not offer a lot of functionality provided by the stock standard libraries 
(I'm pretty sure boost does not provide POSIX or system API). I would 
call boost more of a heavily packed utility library.

On the other hand, in the case of Tango and Phobos you have to replace 
one of them to use the other, and their API compete with one another to 
the point of complete redundancy. This is a big difference compared to 
the C++ situation.



More information about the Digitalmars-d mailing list