귀하의 질문에 답변하기 위해 우리가 요구해야 할 질문은 "다른 언어 / 생태계가 자체 중앙 집중식 패키지 저장소를 보유함으로써 얻는 이점은 무엇입니까?" "C / C ++에 적용됩니까?"
첫 번째 질문에 대한 답은 새로운 언어의 초기 홍보와 관련이 있다고 생각합니다. 얼리 어답터는 초보자가 생태계에 들어가고 유용하고 테스트 된 코드를 획득하고 스스로 기여할 수 있도록 가능한 한 쉽게 만들고 싶어합니다. 명백한 이유로, "사용 그래프"에는 항상 언어의 작성자 인 단일 루트가 있습니다. 일반적으로 하나의 참조 구현이 있으며 (최소한 초기에) 공유하려는 코드는이를 준수해야합니다.
따라서 다운로드 및 컴파일 만하는 패키지를 쉽게 만들 수 있습니다. 확실히, 2013 년에 C 또는 C ++가 도입 된 이후, 그들의 커뮤니티는 비슷한 진화 경로를 따를 수 있었지만 패키지 관리자를 적용 할 단일 툴킷은 없었습니다. 이것은 그러한 프로그램의 구현이 번거롭지 않을 정도로 번거 롭다. (사용자가 libfoo-gcc와 libfoo-vs 중에서 선택하도록해야합니까? 해결하기 위해 패키저에 맡기시겠습니까? 아니면 빌드 프로세스입니까? 그렇다면 패키지가 직선 타르볼과 어떻게 다른가요?)
첫 번째 질문에 대한 대답을 요약하면 패키지 관리자를 만드는 패턴이 대부분 채택 을 유도하는 데 도움이된다고 생각합니다 .
이를 염두에두고 C와 C ++ 프로그래머에게는 그 필요성이 존재하지 않기 때문에 단일 시스템이 왜이 요구를 충족시키지 못했는지를 쉽게 알 수 있다고 생각합니다. C 및 C ++ 커뮤니티 (또는 실제로는 프로그래머 커뮤니티)에게 문제가되는 것은 원래 배포, 최신 상태 유지 및 백 코드 제공에 대한 내재 된 필요성입니다. 이것은 다양한 성공률을 가진 다른 사람들에 의해 여러 번 해결되었으며 실제로 하나의 시스템은 git (및 그 이전의 다른 시스템)에서 상당한 시장 점유율을 얻고 있습니다.
기본적으로 문제가 다르면 솔루션도 다르게 보이지만 타이핑 gem install
과 차이 git clone
는 없습니다.