ไลบรารีที่ใช้ร่วมกันโดยทั่วไปไม่ค่อยเป็นสิ่งที่ดี
(lore.kernel.org)- เหตุผลที่ clang/llvm บน Fedora ช้า เป็นเพราะตามนโยบายแล้วมีการลิงก์แบบไดนามิกกับแพ็กเกจอื่น
→ ความเห็นของ Linus Torvalds เกี่ยวกับเรื่องนี้
"ผมอยากให้ Fedora ไม่ทำแบบนั้น ไลบรารีที่ใช้ร่วมกันโดยทั่วไปไม่ค่อยเป็นสิ่งที่ดี
ในกรณีนี้ (clang) มันทำให้เกิดโอเวอร์เฮดมาก และเพิ่ม dependency กับความซับซ้อนที่ไม่จำเป็น
ไลบรารีที่ใช้ร่วมกันส่วนใหญ่ก็ไม่ได้ version-safe จริง ๆ ด้วย ดังนั้นแทบไม่มีข้อดีเลย"
"มันอาจช่วยประหยัดพื้นที่ดิสก์ได้ แต่ดิสก์ราคาถูก และการประหยัดหน่วยความจำก็ในความเป็นจริงกลับติดลบด้วย
ผู้คนมักพูดว่า 'ไลบรารีที่ใช้ร่วมกันนั้นดีโดยเนื้อแท้' แต่จริง ๆ แล้วไม่ใช่แบบนั้น มันสร้างปัญหามากมาย และข้อดีของมันต้องถูกชั่งเทียบกับข้อเสียใหญ่ ๆ เหล่านี้
ที่ที่ไลบรารีที่ใช้ร่วมกันมีประโยชน์จริง ๆ มีเพียง system libraries ของดิสทริบิวชันพื้นฐานที่เป็นมาตรฐานอย่างแท้จริงเท่านั้น"
2 ความคิดเห็น
มันทำให้นึกถึงตอนสมัยก่อนที่เขียนโปรแกรมบน Windows แล้วต้องชั่งใจว่าจะทำเป็น DLL หรือจะยัดเข้าไปใน EXE เป็น static library ดี
ช่วงแรกผมชอบใช้ shared library เพราะช่วยลดการใช้ดิสก์และหน่วยความจำ แถมยังเพิ่มอัตราการใช้แคชได้ด้วย แต่พอหลัง ๆ ไปมันจัดการยากเกินไหวและไม่สะดวกหลายอย่าง สุดท้ายก็เลยเริ่มยัดทุกอย่างเป็น static หมดเลย
หลังจากนั้นร่างกายสบายขึ้นก็จริง แต่ในใจกลับยังรู้สึกคา ๆ มาตลอด พอได้ยินพี่ Torvalds พูดแล้ว ตอนนี้ค่อยโล่งใจเสียที.....
รู้งี้ใช้ชีวิตแบบสบาย ๆ ตั้งแต่แรกก็ดีแล้ว
ใช่ครับ และในทางปฏิบัติ นอกจากจะช่วยให้นักพัฒนาทำงานได้สะดวกขึ้นแล้ว การลดภาระในการรองรับปัญหาที่แตกต่างกันไปตามแต่ละสภาพแวดล้อมก็เป็นอีกส่วนสำคัญมากเช่นกัน