The Arduino native library and other libraries
A programming library is a collection of resources that are available for use by programs.
They can include different types of things, such as the following:
Configuration data
Help and documentation resources
Subroutines and reusable part of code
Classes
Type definitions
I like to say that libraries provide a behavior encapsulation; you don't have to know how the behavior is made for using it but you just use it.
Libraries can be very specific, or can have a global purpose.
For instance, if you intend to design firmware that connects the Arduino to the Internet in order to grab some information from a mail server, and react by making an LED matrix blink in one way or another according to the content of the mail server's response, you have the following two solutions:
Code the whole firmware from scratch
Use libraries
Even if we like to code things, we are happier if we can focus on the global purpose of our designs, aren't we?
In that case, we'll try...