ในการเขียนโปรแกรมเราเขียนโปรแกรมด้วยภาษาที่เราอ่านออกเรียกว่าภาษาระดับสูง (high level language) แต่เราต้องเอาโปรแกรมที่เราเขียนไปคอมไพล์เป็นภาษาเครื่อง (machine level language) ซึ่งประกอบไปด้วยเลข 0 และเลข 1 ก่อนจึงจะสามารถนำไปใช้งานกับครื่องคอมพิวเตอร์ได้ และเมื่อเราต้องการเอาโปรแกรมกลับมาใช้ใหม่เพื่อลดเวลาในการเขียนโปรแกรม แทนที่เราจะสำเนาโปรแกรมที่ต้องการในรูปแบบของภาษาระดับสูงมาแปะในโปรแกรมของเราและคอมไพล์รวมกันไปใหม่อีกครั้ง ซึ่งจะทำให้โปรแกรมใหญ่ขึ้นโดยไม่จำเป็น ดังนั้นจะเป็นการดีกว่าถ้าเราสามารถเรียกใช้งานโปรแกรมที่คอมไฟล์แล้วได้โดยที่ไม่ต้องเอามาผนวกเป็นส่วนหนึ่งของโปรแกรมของเราและต้องสามารถเรียกใช้งานได้ง่ายด้วยภาษาระดับสูง จึงเป็นที่มาของไลบรารี่ (libraries) ซึ่งเป็นโปรแกรมที่ถูกคอมไพล์แล้วและมีวิธีการเรียกใช้งานที่ชัดเจน

ไลบรารี่คือกลุ่มของโปรแกรมที่ถูกคอมไพล์แล้วและมีวิธีการเรียกใช้งานที่ชัดเจน ไลบรารี่จะถูกแจกจ่ายเพื่อให้นำไปใช้งานเพื่อที่นักพัฒนาจะได้ไม่ต้องเสียเวลามาเขียนโปรแกรมเพื่อแก้ปัญหาเดียวกันซ้ำๆ ไลบรารี่เหล่านี้จะถูกทดสอบมาแล้วว่าทำงานได้ดีและมีประสิทธิภาพ โดยไลบรารี่ที่ดีควรจะมีคุณสมบัติดังนี้

  • ทำงานเพียงเรื่องใดเรื่องหนึ่งเท่านั้น เช่น ถ้าเกี่ยวกับการอ่านไฟล์ ก็จะต้องไม่มีการทำงานเรื่องอื่นเกี่ยวกับไฟล์มาปะปน
  • มีเอกสารประกอบการใช้งานที่ชัดเจน
  • อินเตอร์เฟสมีความชัดเจน เข้าใจง่าย เช่น ตั้งชื่อเมธอดหรือฟังก์ชั่นที่สื่อถึงสิ่งที่จะทำ
  • ไม่มีโปรแกรมที่เป็นอันตราย
  • ผ่านการทดสอบมาแล้วอย่างดี
  • ลักษณะการเขียนโปรแกรมสอดคล้องตามมาตรฐานสากลของการเขียนโปรแกรม

ไลบรารี่มีอยู่มากมาย เช่น ในภาษาโปรแกรมจะมีไลบรารี่ที่ช่วยให้เราเขียนโปรแกรมได้เร็วขึ้นโดยจัดเตรียมโปรแกรมเพื่อเป็นเครื่องมือให้เรานำมาใช้ทำงานในเรื่องต่างๆไว้ให้เราแล้วเรียกว่า ไลบรารี่มาตรฐานของภาษาโปรแกรม (standard library) เช่น Java API ในภาษาจาวา แต่ในกรณีที่เราต้องการทำงานที่ซับซ้อนไลบรารี่มาตรฐานอาจจะไม่ตอบโจทย์ตามความต้องการของเรา เราอาจจะไปหาไลบรารี่เพิ่มเติมได้จากผู้พัฒนาอื่นๆ (third-party libraries) อย่างไรก็ตามหากปัญหาของเราเฉพาะเจาะจงมากก็เป็นไปได้ว่าจะไม่มีไลบรารี่ให้เราใช้งาน