Ich denke, die Fragen, die wir stellen müssen, um Ihre Fragen zu beantworten, lauten: "Was haben andere Sprachen / Ökosysteme davon, ein eigenes zentrales Paket-Repository zu haben?" und "Gilt das für C / C ++?"
Ich glaube, die Antwort auf die erste Frage hat etwas mit der anfänglichen Förderung einer neuen Sprache zu tun: Die Early Adopters möchten es Neuankömmlingen so einfach wie möglich machen, in das Ökosystem einzusteigen, nützlichen, getesteten Code zu erwerben und ihren eigenen Code zurückzugeben. Aus offensichtlichen Gründen hat der "Verwendungsgraph" immer eine einzige Wurzel - den Schöpfer (die Schöpfer) der Sprache. Normalerweise gibt es eine Referenzimplementierung (zumindest anfangs), und daher muss jeder Code, den Sie freigeben möchten, dieser entsprechen.
Dies macht es einfach, Pakete zu erstellen, die nur heruntergeladen und kompiliert werden. Wäre C oder C ++ im Jahr 2013 eingeführt worden, hätten ihre Communities einen ähnlichen Entwicklungspfad beschreiten können, aber das war nicht der Fall, und es gibt keine einzige Toolchain, auf die ein Paketmanager angewendet werden könnte. Dies macht die Implementierung eines solchen Programms zu mühsam, um den Aufwand wert zu sein. (Sollten Sie Benutzer dazu bringen, zwischen libfoo-gcc und libfoo-vs zu wählen? Überlassen Sie die Lösung dem Packager? Oder dem Erstellungsprozess? Wenn ja, wie unterscheidet sich ein Paket von einem reinen Tarball?)
Um meine Antwort auf die erste Frage zusammenzufassen: Ich denke, das Muster der Erstellung von Paketmanagern dient hauptsächlich dazu, die Akzeptanz voranzutreiben .
In Anbetracht dessen ist es meiner Meinung nach ziemlich einfach zu verstehen, warum kein einzelnes System aufgestiegen ist, um diesen Bedarf zu decken - da C- und C ++ - Programmierer nicht benötigt werden. Was für die C- und C ++ - Community (oder wirklich für jede Programmierer-Community) ein Problem darstellt, ist die ursprünglich implizierte Notwendigkeit, Code zu verteilen, auf dem neuesten Stand zu halten und einen Beitrag zum Code zu leisten. Dies wurde viele Male von verschiedenen Personen mit unterschiedlichem Erfolg gelöst, und tatsächlich gewinnt ein System einen signifikanten Marktanteil: git (und einige andere Systeme zuvor).
Grundsätzlich, wenn sich die Probleme unterscheiden, sehen die Lösungen auch anders aus, aber IMHO ist der Unterschied zwischen Tippen gem install
und git clone
strittig.