O que é biblioteca de programação | library | lib ? O que é API | Application Programming Interface ?
De uma discussão na lista Devolts (http://artesanato.devolts.org/).
quando vc escreve um programa usando uma linguagem de programação existe a possibilidade de você usar um conjunto de funções pré-escritas por outros programadores que já resolvem determinados problemas para você sem que vc precise “reinventar a roda”. a esse conjunto de funções damos o nome de BIBLIOTECA, do inglês, library. Muitos traduzem como livraria, isso dificulta a compreensão pois livraria é uma LOJA DE LIVROS enquanto biblioteca é um conjunto de livros que vc pode usar sem precisar PAGAR!
exemplos de bibliotecas que eu uso diariamente:
- OpenGL: conjunto de funções para desenhar diretamente no buffer da placa de vídeo;
- OpenCV: conjunto de funções para processamento de imagem e visão computacional;
- OpenAL: conjunto de funções para processamento, síntese e execução de áudio.
na prática, pra vc usar uma biblioteca basta incluir uma chamada para ela no início do código, por exemplo, para usar OpenGL em C ou C++ vc deve ter uma linha no início do código assim:
#include “GL/gl.h”
“gl.h” é uma INTERFACE de programação (NÃO CONFUNDA COM INTERFACE GRÁFICA) que contém declarada todas as funções de OpenGL que você pode usar no seu programa.
O que é API?
API é justamente a lista e a descrição das funções de uma biblioteca (ou de um aplicativo) que um programador pode chamar dentro do código dele.
- biblioteca: conjunto de funções pré-compiladas
- API: lista e descrição das funções
Realmente é fácil confundir API com biblioteca, mas API é um conceito mais geral, pois essa lista de funções pode ser de uma biblioteca ou de um outro aplicativo!
Na prática, a diferença entre uma biblioteca e um aplicativo é que um aplicativo tem um executável (arquivos binários no Linux ou “.exe” no windows) e uma biblioteca não tem, pois ela é só um conjunto de funções pré-compiladas (no linux arquivos .o, no windows arquivos .dll) que não faz sentido bibliotecas serem executadas do nada, elas devem ter suas funções chamadas por aplicativos.
Então toda biblioteca (conjunto de funções pré-compiladas) tem que ter uma API (lista e descrição das funções). Mas nem toda API necessariamente é implementada por uma biblioteca. O Mozilla Firefox por exemplo, é um aplicativo mas tem uma API que pode ser usada por seus plugins.
novembro 7, 2010 às 2:54 pm
Muito bom!
Para quem está começando isso ajuda muito.
Abraço!
novembro 8, 2010 às 2:11 pm
olá! valeu! qq dúvida dessas paradas é só mandar aqui. abraço.
jjR
janeiro 24, 2011 às 8:57 pm
Show esse artigo PARABÉNS!!!!!!!
janeiro 25, 2011 às 2:55 pm
valeu!!!
janeiro 29, 2011 às 12:14 am
Cara, foi muito legal esse post tava entendendo tudo, viajei mesmo, só que quando tu começo a falar de Mozila e dos plugins bagunço minha cabeça… Agora quero descobrir como é que é nesse caso do firefox…rs Mas valeu. Muito bacana a iniciativa!
fevereiro 2, 2011 às 3:34 am
Salve Felipe! valeu o comentário.
Pra entender melhor esse último exemplo vale a pena pesquisar como se faz um plugin para o Mozila, então realmente não foi um exemplo muito bom dada essa dificuldade.
Mas, tentando esclarecer um pouco, quando você vai programar um plugin para o Mozilla vc precisa ter a lista de funções que vc vai usar, então essa lista de funções é uma API. Esse, por tanto é um caso de uma API de um aplicativo e não de uma biblioteca.
Se ainda não tiver ficado claro posso tentar explicar de outro jeito.
grande abraço!
jjR
fevereiro 10, 2011 às 5:24 pm
Hahaha! Caí nesse link porcausa de uma busca no Google! Que massa Jarbinhas! Clareou bastante essa dúvida que eu tinha na cabeça.
Um abraço ae!
maio 6, 2011 às 7:15 am
[...] são programas, normalmente antigos ou de pouco suporte, que apontam para diretórios padrões de libs (onde há libs de 64bits que podem ser incompatíveis) em busca de libs 32bits. As vezes isso pode [...]
maio 11, 2012 às 10:51 am
Cara gostei muito… eu usava e nem sabia o que era… muito bom para quem está começando
maio 14, 2012 às 1:45 am
valeu!