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.

10 Respostas para “O que é biblioteca de programação | library | lib ? O que é API | Application Programming Interface ?”

  1. carlos scheng Diz:

    Muito bom!
    Para quem está começando isso ajuda muito.
    Abraço!

  2. jessica Diz:

    Show esse artigo PARABÉNS!!!!!!! :-)


  3. 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!

    • Jarbas Jácome Diz:

      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

  4. Rafael Diz:

    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!


  5. [...] 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 [...]

  6. Tiago D Cipriano Diz:

    Cara gostei muito… eu usava e nem sabia o que era… muito bom para quem está começando


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.