Boost logo

Boost :

From: Vinnie Falco (vinnie.falco_at_[hidden])
Date: 2024-05-09 23:01:01


On Thu, May 9, 2024 at 3:34 PM Ville Voutilainen <
ville.voutilainen_at_[hidden]> wrote:

> standardizing the Networking TS wouldn't have made the standard
>
library able to connect to the Internet, because the Networking TS
> doesn't have that ability.
>

The last draft of N4734 from 2018 shows the types `basic_stream_socket`,
`ip::basic_resolver `, and `ip::tcp` on pages 140, 206, and 212
respectively. This allows you to resolve a network name to an IP address,
connect to the address, and communicate using TCP/IP. The Networking TS
also supports UDP. It is true that SSL/TLS streams are missing but N4734 is
certainly capable of "connect to the Internet" while C++23 and C++26 are
certainly not.

It seems obvious to me that the standard library needs a foundational
networking component which identically mirrors the functionality of POSIX
sockets, but with a modern interface approach and a reasonable solution to
satisfying all desired flavors of asynchrony. POSIX sockets are
battle-tested and proven with 36 years of experience. Yet the collective
genius of WG21's democracy-flavored consensus algorithm has concluded that
they can do better. There isn't even yet a paper proposing a way to connect
two endpoints using TCP/IP aside from the rejected Networking TS. We do
have a paper that proposes WG21 investigate, look into, and ponder the idea
of maybe modeling some future API on a message-passing system which
according to rumors is popular in some circles.

In general.. there are various points that you raise that the project
> that is the topic of this thread can apparently help with.
>

I am supportive of any new external project including the Beman Project,
because the principals have skin in the game. They are risking their time
and reputation on something which is not guaranteed success. I think that
the rest of the Boost community should cut them some slack and give the
project the time it needs to get its resources such as the website, the
forum (or mailing list), GitHub repositories, mission statement, and other
exposition fully developed and deployed.

However I do not see how this solves the problem. LEWG would have to
mandate that library-only proposals go through the Beman Project for
external review and field experience gathering. What incentive does the
chair of LEWG have to do this? If anything this decreases the power of the
chair and transfers it to the Beman Project.

Ironically, I liked it better when Beman was around and involved in WG21,
before LEWG existed. You had to go through LWG. And let me tell you those
LWG people, they were immensely qualified to make those decisions, as they
are language lawyers, wordsmiths, and incredibly knowledgeable. Now things
have to go through LEWG-I first and then LEWG before it lands on LWG. No
offense but the real engineering talent is in LWG not LEWG. So now, by the
time it gets to LWG all the design choices have been made and WG21 has tied
the hands of the people most qualified to reject bad things or make
necessary design corrections.

The real problem is that the people who run the system are not aware it is
broken, and derive social benefits from said system. No bureaucrat ever
takes actions to reduce their own power (except maybe George Washington who
refused to run for president again). Some other people might argue that
while the system is broken, it isn't clear what the better system looks
like. Regardless, I would like to be able to connect to the Internet using
the standard library in my lifetime and it isn't immediately obvious that
this will be possible.

Thanks

-- 
Regards,
Vinnie
Follow me on GitHub: https://github.com/vinniefalco

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