मुझे लगता है कि आपके जवाब देने के लिए हमें जो प्रश्न पूछने की आवश्यकता है, वे हैं "अन्य भाषाएं / पारिस्थितिक तंत्र अपने स्वयं के केंद्रीकृत पैकेज भंडार से क्या प्राप्त करते हैं?" और "क्या यह C / C ++ पर लागू होता है?"
मुझे लगता है कि पहले प्रश्न के उत्तर का नई भाषा के शुरुआती प्रचार से कुछ लेना-देना है: शुरुआती अपनाने वाले नए लोगों के लिए पारिस्थितिकी तंत्र में प्रवेश करना, उपयोगी, परीक्षण किए गए कोड प्राप्त करना और अपना स्वयं का योगदान देना आसान बनाना चाहते हैं। स्पष्ट कारणों के लिए, "उपयोग ग्राफ" में हमेशा एक ही मूल होता है - भाषा का निर्माता (रों)। आमतौर पर एक संदर्भ कार्यान्वयन होता है (कम से कम शुरू में) और इसलिए कोई भी कोड जिसे आप साझा करना चाहते हैं, उसके अनुरूप होना चाहिए।
यह उन पैकेजों को बनाना आसान बनाता है जो बस डाउनलोड और संकलन करते हैं। निश्चित रूप से, 2013 में C या C ++ को पेश किया गया था, उनके समुदाय एक समान विकासवादी पथ का अनुसरण कर सकते थे, लेकिन उनके पास पैकेज प्रबंधक को लागू करने के लिए कोई भी प्रचलित टूलचिन नहीं था। यह इस तरह के कार्यक्रम के कार्यान्वयन को परेशानी के लायक बनाता है। (क्या आपको उपयोगकर्ताओं को libfoo-gcc और libfoo-vs के बीच चयन करना चाहिए? क्या आप इसे हल करने के लिए ग्रामीण तक छोड़ देते हैं? या निर्माण प्रक्रिया? यदि हां, तो पैकेज सीधे टारबॉल से अलग कैसे है?)
इसलिए पहले सवाल के लिए मेरे जवाब को समझने के लिए, मुझे लगता है कि पैकेज मैनेजर बनाने का पैटर्न ज्यादातर गोद लेने के लिए काम करता है ।
इसे ध्यान में रखते हुए, मुझे लगता है कि यह देखना काफी आसान है कि कोई एकल प्रणाली इस आवश्यकता को पूरा करने के लिए क्यों नहीं बढ़ी है - क्योंकि सी और सी ++ प्रोग्रामर के लिए आवश्यकता मौजूद नहीं है। सी और सी ++ समुदाय (या किसी भी प्रोग्रामर समुदाय, वास्तव में) के लिए एक समस्या का गठन क्या है जो मूल रूप से निहित है: वितरित करने, अद्यतित रहने और वापस कोड योगदान करने के लिए। यह कई बार अलग-अलग लोगों द्वारा सफलता की बदलती डिग्री के साथ हल किया गया है, और वास्तव में एक प्रणाली महत्वपूर्ण बाजार हिस्सेदारी हासिल कर रही है: गिट (और इससे पहले कुछ अन्य सिस्टम)।
मूल रूप से जब समस्याएं अलग होती हैं, तो समाधान भी अलग-अलग दिखते हैं, लेकिन IMHO टाइपिंग gem install
और git clone
मूट के बीच का अंतर है।