Penso che le domande che dobbiamo porre per rispondere alle vostre siano "Che cosa guadagnano altre lingue / ecosistemi dall'avere il proprio repository di pacchetti centralizzato?" e "Questo vale per C / C ++?"
Sento che la risposta alla prima domanda ha qualcosa a che fare con la promozione iniziale di una nuova lingua: i primi utenti vogliono rendere il più semplice possibile l'ingresso dei nuovi arrivati nell'ecosistema, acquisire codice utile e testato e contribuire con il proprio. Per ovvie ragioni, il "grafico di utilizzo" ha sempre una sola radice: i creatori della lingua. Di solito c'è un'implementazione di riferimento (almeno inizialmente) e quindi qualsiasi codice che potresti voler condividere deve conformarsi ad esso.
Ciò semplifica la creazione di pacchetti che possono essere scaricati e compilati. Certamente, se C o C ++ fossero stati introdotti nel 2013, le loro comunità avrebbero potuto seguire un percorso evolutivo simile, ma non lo erano e non esiste un unico toolchain prevalente a cui applicare un gestore di pacchetti. Ciò rende l'implementazione di tale programma troppo problematica per valere la seccatura. (dovresti fare in modo che gli utenti scelgano tra libfoo-gcc e libfoo-vs? Lo lasci al packager per risolvere? O il processo di compilazione? In tal caso, in che modo un pacchetto è diverso da un tarball semplice?)
Quindi, per riassumere la mia risposta alla prima domanda, penso che il modello di creazione dei gestori di pacchetti serva principalmente a favorire l' adozione .
Con questo in mente, penso che sia abbastanza facile capire perché nessun singolo sistema è cresciuto per soddisfare questa esigenza, perché la necessità non esiste per i programmatori C e C ++. Ciò che costituisce un problema per la comunità C e C ++ (o qualsiasi comunità di programmatori, in realtà) è la necessità originariamente implicita: distribuire, tenersi aggiornati e contribuire con il back code. Ciò è stato risolto molte volte da persone diverse con vari gradi di successo, e in effetti un sistema sta guadagnando una significativa quota di mercato: git (e alcuni altri sistemi prima di quello).
Fondamentalmente quando i problemi differiscono, anche le soluzioni sembrano diverse, ma IMHO la differenza tra digitare gem install
ed git clone
è discutibile.