|
Boost : |
From: Jeff Garland (jeff_at_[hidden])
Date: 2002-11-24 21:07:18
> I think ACE is an almost perfect model for what we want. The main
I agree there are many good things about ACE.
> things I would like to see done differently in boost are
>
> 1) Use namespaces.
> 2) Support exception handling.
> 3) Use std containers.
> 3) Use other boost libraries.
Yes and:
5) Try and keep the 'MACRO laden' implementation under control
6) Be less 'monolithic'
7) Integrate more cleanly with standard C++ I/O streams
(where possible -- extend them where needed)
The biggest issue I have with ACE is that it is just way too much
sometimes. If I want to write a simple client app to download a
web page from a URL and process it, I have to take the threading
library and everything else. Not only do I have to download it,
but I have to compile and link to it. Boost has the opportunity
to not fall into this trap from the start.
So I think we should be careful to keep it simple. I think it is
interesting that in Hugo's current implementation, no library is
required. Very nice. I won't be surprised if we need a real
library at some point, but it won't be anything like the size of
ACE.
> Section A.6.3 in C++NP describes the reasoning behind the absence of
In case anyone missed it this is C++ Network Programming by Doug
Schmidt and Steve Huston -- 2 of the prime movers in the development
of ACE.
> exceptions. But as I described in another post I think we can use a
> policy class to support a nothrow interface for people who need it.
They also discuss other issues like performance. I'm in
total agreement with you that exceptions should be the 'out-of-the-box'
policy, but if we can support BOOST_NO_EXCEPTIONS that would be nice.
As described here:
http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?BoostSocket/SocketErrorConcept
Jeff
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk