In computer programming, the term library refers to a well-documented collection of stable resources, which may include executable files, documentation, message templates, and written code.
The term may also refer to a collection of pre-written modules that when employed, perform a specific action or produce a particular output. The modules in the library can take the form of code, class definitions, procedures, scripts, and configuration data. This means that developers can call upon the modules in the library without having to rewrite the entire code for each module from scratch. In other words, they are able to reuse the behavior provided by other libraries instead of creating new modules themselves.
Libraries can be generalized for non-specialized usage (e.g., telling the time, basic mathematical operations) or highly specific for a particular use case (e.g., decoding sound file compression).
Therefore, using code libraries brings many advantages to developers and computer scientist. Some of them include the more efficient use of time and resources, making it easier for developers to develop and execute software.
One disadvantage of using code libraries is the so-called Black Box Effect where the developer is only able to see the input and output of its use, meaning they often have little to no understanding of what happens in between.