Creo que las preguntas que debemos formular para responder a las suyas son "¿Qué ganan otros idiomas / ecosistemas al tener su propio repositorio de paquetes centralizado?" 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 idioma: los primeros usuarios quieren facilitar que los nuevos usuarios ingresen al ecosistema, adquieran códigos útiles y probados y contribuyan con la devolución. su propia Por razones obvias, el "gráfico de uso" siempre tiene una sola raíz: el / los creador (es) del lenguaje. Por lo general, hay una implementación de referencia (al menos inicialmente) y, por lo tanto, cualquier código que quieras compartir tiene que ajustarse a ella.
Esto facilita la creación de paquetes que solo se descargan y compilan. Ciertamente, si se hubiera introducido C o C ++ 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 tal programa sea demasiado problemática para que valga la pena la molestia. (¿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?)
Para resumir mi respuesta a la primera pregunta, creo que el patrón de creación de administradores de paquetes sirve principalmente para impulsar adopción .
Con eso en mente, creo que es bastante fácil ver por qué ningún sistema ha aumentado para satisfacer esta necesidad, porque no existe la necesidad de programadores C y C ++. Lo que constituye un problema para la comunidad de C y C ++ (o cualquier comunidad de programadores, en realidad) es la necesidad implícita originalmente: distribuir, mantenerse actualizado y contribuir con el código anterior. Esto ha sido resuelto muchas veces por diferentes personas con diferentes grados de éxito, y de hecho, un sistema está ganando una participación de mercado significativa: git (y algunos otros sistemas antes).
Básicamente, cuando los problemas difieren, las soluciones también se ven diferentes, pero en mi opinión, la diferencia entre escribir gem install
y git clone
es discutible.