ฉันคิดว่าคำถามที่เราต้องถามเพื่อตอบคำถามของคุณคือ "ภาษา / ระบบนิเวศอื่น ๆ ได้ประโยชน์อะไรจากการมีพื้นที่เก็บข้อมูลส่วนกลางของตนเอง" และ "สิ่งนี้ใช้ได้กับ C / C ++ หรือไม่"
ฉันรู้สึกว่าคำตอบสำหรับคำถามแรกนั้นเกี่ยวข้องกับการส่งเสริมภาษาเริ่มต้น: ผู้ใช้ในยุคแรกต้องการทำให้ง่ายที่สุดเท่าที่จะเป็นไปได้สำหรับผู้มาใหม่ที่จะเข้าสู่ระบบนิเวศการได้รับโค้ดที่มีประโยชน์ ด้วยเหตุผลที่ชัดเจน "กราฟการใช้งาน" จะมีรูทเดียวซึ่งเป็นผู้สร้างภาษาเสมอ โดยทั่วไปจะมีการใช้งานอ้างอิงหนึ่งรายการ (อย่างน้อยเริ่มต้น) ดังนั้นรหัสใด ๆ ที่คุณอาจต้องการแบ่งปันต้องเป็นไปตามนั้น
สิ่งนี้ทำให้ง่ายต่อการสร้างแพ็คเกจที่เพิ่งดาวน์โหลดและคอมไพล์ แน่นอนว่าหากมีการนำ C หรือ C ++ มาใช้ในปี 2013 ชุมชนของพวกเขาสามารถทำตามเส้นทางวิวัฒนาการที่คล้ายกันได้ แต่พวกเขาไม่ได้และไม่มี toolchain ที่มีอยู่เดียวที่จะนำไปใช้กับตัวจัดการแพ็คเกจ สิ่งนี้ทำให้การใช้งานโปรแกรมดังกล่าวยุ่งยากเกินไปที่จะคุ้มค่ากับความยุ่งยาก (คุณควรให้ผู้ใช้เลือกระหว่าง libfoo-gcc และ libfoo-vs หรือไม่คุณปล่อยให้มันถึงห่อเพื่อแก้ไขหรือกระบวนการสร้างหรือไม่ถ้าเป็นเช่นนั้นแพคเกจแตกต่างจาก tarball ตรงขึ้นอย่างไร)
ดังนั้นจะสรุปคำตอบของฉันคำถามแรกที่ผมคิดว่ารูปแบบของการสร้างผู้จัดการแพคเกจให้บริการส่วนใหญ่จะขับรถการยอมรับ
โดยที่ในใจฉันคิดว่ามันค่อนข้างง่ายที่จะดูว่าทำไมไม่มีระบบเดียวเพิ่มขึ้นเพื่อตอบสนองความต้องการนี้ - เนื่องจากความต้องการไม่มีอยู่สำหรับโปรแกรมเมอร์ C และ C ++ สิ่งที่ก่อให้เกิดปัญหาสำหรับชุมชน C และ C ++ (หรือชุมชนโปรแกรมเมอร์ใด ๆ จริง ๆ ) เป็นสิ่งที่จำเป็นต้องบอกเป็นนัยในตอนแรก: เพื่อแจกจ่ายให้ทันสมัยและสนับสนุนโค้ดกลับ สิ่งนี้ได้รับการแก้ไขหลายครั้งโดยคนที่แตกต่างกันซึ่งมีระดับความสำเร็จที่แตกต่างกันและแน่นอนว่าระบบหนึ่งระบบได้รับส่วนแบ่งการตลาดที่สำคัญ: git (และระบบอื่น ๆ ก่อนหน้านี้)
โดยทั่วไปเมื่อปัญหาแตกต่างกันวิธีแก้ไขก็ดูแตกต่างเช่นกัน แต่ IMHO แตกต่างกันระหว่างการพิมพ์gem install
และgit clone
moot