Boost logo

Boost :

From: Boris (boris_at_[hidden])
Date: 2005-04-27 04:32:29


Iain Hanson wrote:
> [...]
> Not having done much work on iostreams for sockets I thought it would be
> a little of both but I was not sure. I saw it as a higher layer
> abstraction that had greater easy of use but probably less
> flexibility/control.
>
> Whereas Layer 2 has much greater flexibility and control but a greater
> learning curve if you want/need the more advanced features.

In my opinion this distinction is unclear and subjective. As I wrote in
http://article.gmane.org/gmane.comp.lib.boost.devel/122421 I agree with Don
that there is no need for more than 2 levels right now. Every level and
package should be well justified as anything else is confusing. If we can't
find good reasons to justify a design we will make it unnecessarily more
difficult for library users to understand the whole structure.

> [...]
> There has always been a need for standard applications protocols such as
> FTP, Telnet, SMTP, HTTP, etc. But Beman Dawes wrote a set of
> requirements for a socket library that said something like sockets are a
> chapter in the book no the whole book. He meant to limit the scope of a
> socket library so that it might actual get finished. I refined that idea
> by comming up with my layers which we've been using for the last 3 or 4
> years.

I agree that it is sad that a network library has been discussed for several
years without any practical result. But this is an organizational problem.
We shouldn't make it even worse and let the design of the network library be
influenced by that.

In the requirement list Beman Dawes wrote I can see three layers (see
http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?BoostSocket/SocketRequirements). I
don't know where he wrote we need an extra layer for standard application
protocols. Furthermore these layers are just an example. There is no
explanation why a network library should look like this. In my opinion this
is exactly one of the organizational problems we have: There is a lot of
talk but decisions are not written down. They do not need only to be written
down but must be explained. If it had been done before we wouldn't need to
start over and wouldn't need to question everything what was written down
once without any explanations in the Wiki.

That's why I put up
http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?BoostNet.
This is not "yet another network library" but a list of problems and
requirements which will hopefully lead us to a design of the network
library. The package diagram at
http://www.highscore.de/boost/net/packages.png is my continuous attempt to
put everything together.

> Thats why I'm objecting to you subtracting 1 from the layer numbers.

I don't remember who participated in the discussions several years ago.
Since the discussions were revived on 3 March we (not only me) have been
talking about level 0 and level 1 and everyone seems to have understood. I
don't mind to change the name but then everyone has to do of course. But do
we really have to change names which are used now for 2 months? And do we
really have to discuss if we should rename level 0 to layer 1 because some
people called it layer 1 several years ago? Let's concentrate on more
important things please.

Boris


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