Acho que as perguntas que precisamos fazer para responder a sua pergunta são: "O que outros idiomas / ecossistemas ganham por ter seu próprio repositório centralizado de pacotes?" e "Isso se aplica ao C / C ++?"
Eu sinto que a resposta para a primeira pergunta tem algo a ver com a promoção inicial de uma nova linguagem: os primeiros adotantes querem que seja tão fácil quanto possível para os recém-chegados entrarem no ecossistema, adquirirem código útil e testado e contribuírem de volta. seus próprios. Por razões óbvias, o "gráfico de uso" sempre tem uma única raiz - o (s) criador (es) da linguagem. Geralmente, há uma implementação de referência (pelo menos inicialmente) e, portanto, qualquer código que você queira compartilhar tem que estar de acordo com ela.
Isso facilita a criação de pacotes que apenas baixam e compilam. Certamente, se C ou C ++ tivessem sido introduzidos em 2013, suas comunidades poderiam ter seguido um caminho evolucionário similar, mas eles não o fizeram e não há uma única cadeia de ferramentas prevalecente para aplicar um gerenciador de pacotes. Isso torna a implementação de tal programa muito problemática para valer a pena. (você deve fazer os usuários escolher entre libfoo-gcc e libfoo-vs? Você deixa para o empacotador resolver? Ou o processo de compilação? Se sim, como um pacote é diferente de um tarball direto?)
Então, para resumir minha resposta à primeira pergunta, acho que o padrão de criação de gerenciadores de pacotes serve principalmente para impulsionar adoção .
Com isso em mente, acho que é bem fácil perceber por que nenhum sistema único surgiu para atender a essa necessidade - porque não existe necessidade de programadores C e C ++. O que constitui um problema para a comunidade C e C ++ (ou qualquer comunidade de programadores, na verdade) é a necessidade originalmente implícita: distribuir, manter-se atualizado e contribuir com código de volta. Isso foi resolvido muitas vezes por pessoas diferentes com vários graus de sucesso e, de fato, um sistema está ganhando uma participação de mercado significativa: git (e alguns outros sistemas antes disso).
Basicamente, quando os problemas diferem, as soluções parecem diferentes também, mas IMHO a diferença entre digitar gem install
e git clone
é irrelevante.