Creo que las preguntas que debemos hacer para responder a las suyas son "¿Qué ganan otros lenguajes / ecosistemas al tener su propio repositorio centralizado de paquetes?" y "¿Se aplica esto a C / C ++?"
Creo que la respuesta a la primera pregunta tiene algo que ver con la promoción inicial de un nuevo lenguaje: los primeros usuarios quieren que sea lo más fácil posible para los recién llegados ingresar al ecosistema, adquirir código útil y probado y contribuir de nuevo. Por razones obvias, el "gráfico de uso" siempre tiene una única raíz: los creadores del idioma. Por lo general, hay una implementación de referencia (al menos inicialmente) y, por lo tanto, cualquier código que desee compartir debe ajustarse a ella.
Esto facilita la creación de paquetes que solo se descargan y compilan. Ciertamente, si C o C ++ se introdujeran en 2013, sus comunidades podrían haber seguido un camino evolutivo similar, pero no lo hicieron y no hay una única cadena de herramientas predominante para aplicar un administrador de paquetes. Esto hace que la implementación de dicho programa sea demasiado problemática para que valga la pena. (¿Debería hacer que los usuarios elijan entre libfoo-gcc y libfoo-vs? ¿Deja que el empaquetador lo resuelva? ¿O el proceso de compilación? Si es así, ¿en qué se diferencia un paquete de un tarball directo?)
Entonces, para resumir mi respuesta a la primera pregunta, creo que el patrón de crear administradores de paquetes sirve principalmente para impulsar la adopción .
Con eso en mente, creo que es bastante fácil ver por qué ningún sistema único ha surgido para satisfacer esta necesidad, porque la necesidad no existe para los programadores C y C ++. Lo que sí constituye un problema para la comunidad C y C ++ (o cualquier comunidad de programadores, en realidad) es la necesidad originalmente implicada: distribuir, mantenerse actualizado y contribuir con el código. Esto ha sido resuelto muchas veces por diferentes personas con diferentes grados de éxito, y de hecho, un sistema está ganando una importante cuota de mercado: git (y algunos otros sistemas antes de eso).
Básicamente, cuando los problemas difieren, las soluciones también se ven diferentes, pero en mi humilde opinión, la diferencia entre escribir gem install
y git clone
es discutible.