On Thu, May 9, 2024 at 3:34 PM Ville Voutilainen < ville.voutilainen@gmail.com> 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