Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is there a networking library proposal for C++14/17? [closed]

Tags:

c++

standards

iso

Even though TCP/UDP/IP are commonly used protocols, I do not understand why they want it to be part of the ISO C++ Standard. These have nothing to do with the core of the language. Data structures are universally required tools hence STL makes sense but these protocols are too specific IMO.

like image 421
Benji Mizrahi Avatar asked Nov 25 '14 11:11

Benji Mizrahi


2 Answers

C++ 11 includes Threading in Standard. Now programmers need not to write PThread in Linux and Windows Threads in Windows, separably. Same can happen if Networking library gets Standardized.

like image 111
Pranit Kothari Avatar answered Oct 23 '22 11:10

Pranit Kothari


There has been a long-standing sentiment that the C++ library's tiny focus area is something bad that's holding the language back. Most "modern" languages come with large framework libraries which include networking, graphics and JSON. By contrast, if you want to do any of these in C++, you a) don't get anything by default, and b) are overwhelmed with a choice of third-party libraries which you are usually unable to appraise properly and select from.

This is how that side of the opinion goes.

Of course there are other people who think that that's just the way it should be. Nonetheless, standardization is hard work, and whereas languages like Java and C# and Go have large companies behind them that can put energy into developing a huge library, C++ doesn't have that kind of manpower, and most people who spend time on C++ standardization are more interested in core aspects of programming: data structures, concurrency, language evolution (concepts, ranges, modules...).

So it isn't so much that people are generally opposed to a larger library, but it's not a priority for many. But if good ideas come around, they have a good chance for being considered. And large library components like networking won't be going into the standard library anyway, but rather into a free-standing Technical Specification, which is a way to see whether the idea is useful, popular and correct. Only if a TS gets widely used and receives lots of positive feedback will there be a possible future effort to include it into the IS.

(You may have noticed similar efforts to create Technical Specifications for file systems and for graphics.)

like image 42
Kerrek SB Avatar answered Oct 23 '22 11:10

Kerrek SB