Tôi nghĩ rằng những câu hỏi chúng ta cần đặt ra để trả lời câu hỏi của bạn là "Ngôn ngữ / hệ sinh thái khác có được gì khi có kho lưu trữ gói tập trung của riêng mình?" và "Điều này có áp dụng cho C / C ++ không?"
Tôi cảm thấy câu trả lời cho câu hỏi đầu tiên có liên quan đến việc quảng bá ban đầu một ngôn ngữ mới: những người chấp nhận sớm muốn tạo điều kiện dễ dàng nhất cho những người mới tham gia vào hệ sinh thái, có được mã thử nghiệm hữu ích và đóng góp lại. Vì những lý do rõ ràng, "biểu đồ sử dụng" luôn có một gốc duy nhất - người tạo ngôn ngữ. Thường có một triển khai tham chiếu (ít nhất là ban đầu) và do đó, bất kỳ mã nào bạn muốn chia sẻ đều phải tuân theo nó.
Điều này giúp dễ dàng tạo các gói chỉ cần tải xuống và biên dịch. Chắc chắn, nếu C hoặc C ++ được giới thiệu vào năm 2013, cộng đồng của họ có thể đã đi theo một con đường tiến hóa tương tự, nhưng họ đã không và không có một công cụ phổ biến nào để áp dụng trình quản lý gói. Điều này làm cho việc thực hiện một chương trình như vậy quá rắc rối để có giá trị rắc rối. (bạn có nên khiến người dùng lựa chọn giữa libfoo-gcc và libfoo-vs không? Bạn có để nó cho người đóng gói giải quyết không? Hoặc quá trình xây dựng? Nếu vậy, một gói khác với tarball thẳng như thế nào?)
Vì vậy, để tổng hợp câu trả lời của tôi cho câu hỏi đầu tiên, tôi nghĩ rằng mô hình tạo các trình quản lý gói phục vụ chủ yếu để thúc đẩy việc áp dụng .
Với ý nghĩ đó, tôi nghĩ khá dễ hiểu tại sao không có hệ thống đơn lẻ nào tăng lên để đáp ứng nhu cầu này - bởi vì nhu cầu không tồn tại đối với các lập trình viên C và C ++. Điều gì tạo nên một vấn đề đối với cộng đồng C và C ++ (hoặc bất kỳ cộng đồng lập trình viên nào, thực sự) là nhu cầu ban đầu ngụ ý: phân phối, cập nhật và đóng góp mã trở lại. Điều này đã được giải quyết nhiều lần bởi những người khác nhau với mức độ thành công khác nhau và thực sự một hệ thống đang chiếm thị phần đáng kể: git (và một số hệ thống khác trước đó).
Về cơ bản khi các vấn đề khác nhau, các giải pháp trông cũng khác nhau, nhưng IMHO sự khác biệt giữa gõ gem install
và git clone
là tranh luận.