Library (computing) is a collection of pre-compiled and assembled program code, subroutines, classes and objects that are used to develop software applications. It provides functionality that can be used to reduce development time and effort.
A library is typically distributed in the form of reusable software components containing all the necessary instructions and data-structures for the developer to create an application. Unlike a pre-compiled piece of software, a library supplies only certain functions that can be incorporated into online programs, compacting the development of a larger program.
A library is composed of several modules, each supplying a micro-level portion of the intended overall output. This approach helps save time while developing as long as the programmer already has an understanding of what the library is doing and how to use it. The newest version of the library is usually available through the developer’s website and many times libraries are open-source, meaning that they are available to anyone for use in any project.
Most libraries can be categorized as either static or dynamic. In static libraries, the code is copied into the application’s memory and pre-loaded during the compilation stage. This type of library is usually used when the code in the library is not likely to change, or if frequent access to the code is required.
Dynamic libraries are more versatile and have the ability to load the library from the address space of the application the moment it is executed. This type of library is useful when the code contained within it needs to be updated for bug fixes or other desired changes. An example of a dynamic library would be a library that contains functions and objects for a 3D graphics engine.
Libraries are essential for development and even in the most everyday home computing tasks. Developers use libraries to ensure that their applications are smaller, more efficient and more reliable than it would be if the code was written into the program from scratch. Libraries can also be used to speed up development and make it easier to implement specific tasks.
This guide to Library (computing) provides an introduction to this important software development tool. For more information, consult a library-specific resource or contact a library developer.