2014-11-25 19 views
7
giao thức

Mặc dù giao thức TCP/UDP/IP được sử dụng phổ biến, tôi không hiểu tại sao họ muốn nó là một phần của tiêu chuẩn ISO ++ C. Chúng không liên quan gì đến cốt lõi của ngôn ngữ. Các cấu trúc dữ liệu là các công cụ được yêu cầu phổ dụng do đó STL có ý nghĩa nhưng các giao thức này là IMO quá cụ thể.Tại sao có đề xuất thư viện mạng cho C++ 14/17?

+0

Câu hỏi này là quá mở kết thúc. Bạn nên dùng nó trong danh sách gửi thư của C++. –

+3

Đề xuất dành cho thư viện chứ không phải là "cốt lõi của ngôn ngữ". Tôi cho một sẽ tìm thấy một thư viện mạng chuẩn hóa hữu ích. –

+0

Nếu nó trở thành một phần của tiêu chuẩn ISO C++, điều gì sẽ xảy ra nếu tôi sử dụng trình biên dịch đó trên hệ điều hành không có ngăn xếp TCP/IP? –

Trả lời

7

C++ 11 bao gồm Threading trong Standard. Bây giờ các lập trình viên không cần phải viết PThread trong Linux và Windows Threads trong Windows, tách biệt. Tương tự có thể xảy ra nếu Thư viện mạng được Chuẩn hóa.

+3

Tôi tìm thấy các chủ đề phổ dụng như nhau. Nhưng TCP/UDP không phải là IMO. Có những lựa chọn thay thế (ví dụ SCTP - mặc dù chủ yếu được sử dụng trong 3GPP) –

+0

@BenjiMizrahi Điều đáng nói đến là thư viện mạng chuẩn sẽ dễ dàng mở rộng và bổ sung thêm việc thực hiện nhiều nền tảng (ví dụ) SCTP sẽ dễ dàng và đa nền tảng theo thiết kế. –

14

Đã có một tình cảm lâu dài rằng khu vực tập trung nhỏ bé của thư viện C++ là thứ gì đó tệ hại đang giữ lại ngôn ngữ. Hầu hết các ngôn ngữ "hiện đại" đều có các thư viện khung lớn bao gồm mạng, đồ họa và JSON. Ngược lại, nếu bạn muốn thực hiện bất kỳ thứ gì trong C++, bạn a) không nhận được bất cứ điều gì theo mặc định, và b) bị choáng ngợp với một sự lựa chọn các thư viện của bên thứ ba mà bạn thường không thể đánh giá đúng và chọn.

Đây là cách mà bên có ý kiến ​​đi.

Tất nhiên có những người khác nghĩ rằng đó chỉ là cách mà nó cần. Tuy nhiên, tiêu chuẩn hóa là công việc khó khăn, và trong khi các ngôn ngữ như Java và C# và Go có các công ty lớn đằng sau họ có thể đưa năng lượng vào việc phát triển một thư viện khổng lồ, C++ không có loại nhân lực đó, và hầu hết mọi người dành thời gian cho chuẩn hóa C++ quan tâm nhiều hơn đến khía cạnh cốt lõi của lập trình: cấu trúc dữ liệu, đồng thời, tiến hóa ngôn ngữ (khái niệm, phạm vi, mô-đun ...).

Vì vậy, nó không phải là quá nhiều mà mọi người thường phản đối với một thư viện lớn hơn, nhưng nó không phải là một ưu tiên đối với nhiều người. Nhưng nếu những ý tưởng hay xảy ra, họ có cơ hội tốt để được cân nhắc. Và các thành phần thư viện lớn như mạng sẽ không được đi vào các thư viện chuẩn anyway, nhưng thay vào tự do đứng Thông số kỹ thuật, đó là một cách để xem liệu ý tưởng là hữu ích, phổ biến và chính xác. Chỉ khi một TS được sử dụng rộng rãi và nhận được rất nhiều phản hồi tích cực thì sẽ có một nỗ lực trong tương lai để đưa nó vào IS.

(Bạn có thể nhận thấy những nỗ lực tương tự để tạo ra số kỹ thuật cho các hệ thống tập tin và cho đồ họa.)

+1

Hãy tưởng tượng một đứa trẻ sinh ra vào năm 2005, những người nhận được một chiếc iPhone7 cho sinh nhật lần thứ 10 của họ, nhưng biết rằng tất cả những đứa trẻ tuyệt vời ở trường đều làm C++. "Mẹ ơi, tôi chỉ muốn vẽ một số hình dạng giao nhau trên vải HTML của mình (mã nhiều công văn của tôi đã hoạt động hoàn hảo) - lớp nào tôi cần để khởi tạo cho nó?" (Vào thời điểm đó mẹ mở một chai Jack và để đứa trẻ sử dụng XCode của cô ấy với Swift.) –

Các vấn đề liên quan