Biblioteca x API x Framework
Galera, bele?
Na verdade o intuito deste post é só trazer um pouquinho de Luz nesse nesse mundão da programação. As terminologias muitas vezes possuem termos que se complementam ou que têm muita intersecção. Mas vamos lá tentar “separar” algumas responsabilidades.
Apenas um disclaimer: essas definições que eu vou aqui citar são mais resultantes de vivências do dia-a-dia do que necessariamente fruto de uma árdua pesquisa científica, ok? Então vamos lá:
Biblioteca/Library
Em geral uma biblioteca é um conjunto de funcionalidades genéricas que são agrupadas em arquivos (classes) que podem ser usadas em qualquer programa de qualquer forma. Exemplo: Biblioteca da classe Math do Java que contém um monte de funcionalidades de cálculos. Simples, fácil e rápido.
API – Application Program Interface
Conjunto de biblioteca (já ampliando o conceito anterior) para criação de aplicações de forma mais robusta. APIs em geral oferecem outros recursos além de uma biblioteca e tem propósitos de fornecer métodos para integrar aplicações distintas. Exemplo: API de conexão com banco de dados, que oferece bibliotecas para criação envio de comandos SQL, conversão de dados, etc. Ou mesmo um sistema que forneça suas bibliotecas para que os desenvolvedores possam criar suas aplicações em integração com o sistema em questão (como por exemplo, API do Google Maps).
Framework
Costumo chamar os Frameworks de “APIs com manual de uso”, ou seja, para propósitos específicos (Framework Web, Framework para desenvolvimento de games, etc). Um conjunto de bibliotecas vc usa como quer, APIs também são usadas como se quer, porém com um propósito mais específico. Agora, frameworks, se vc não seguir à risca seu propósito e seu “manual”, dificilmente vc conseguirá fazer qualquer coisa nele. Quer um exemplo? Angular é um framework. Se você não organizar sua página Web em componentes (que é a forma como o Angular preconiza a construção das Single-Page-Applications – componentes de página compostos de estrutura html/estilo css/código typescript), você não consegue fazer absolutamente nada com ele.
Ajudou?
Se quiser compartilhar com seus amigos, fique à vontade!
#vamosprogramar!
Tag:api, biblioteca, framework