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.

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

  1. carlos scheng Says:

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

  2. jessica Says:

    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 Says:

      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 Says:

    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 Says:

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

  7. Dirley Says:

    mto bom o post kra! Ajudou bastante.
    vlw!

  8. Fenix Says:

    Como faço para executar um audio no c ou c++?


  9. O que é biblioteca padrao do compilador C?

  10. Leonardo Yoshio Says:

    Matéria ótima, estou voltando a estudar programação e preciso de alguns conceitos básicos que eu não tenho.
    Ajudou infinitamente!


  11. No Windows as principais bibliotecas (Ex: Kernel32.DLL, dlg32.DLL, shell32.dll, nt32.dll, … ) já são pre-carregadas no boot em seus próprios endereços pre fixados (Win 9.x até oXP), do Windows 7 em diante seus endereços são virtuais. Estas bibliotecas são sendo usadas a todo tempo tanto pelo próprio Windows como por todos os programas. Em assembly, quando quero usar uma determinada função da API só preciso saber o seu endereço físico (da dll) visto que ela já se encontra carregada e ai tudo se torna muito fácil é uma mão na roda 🙂 !! Minha pergunta isso existe no Linux ???


  12. Existe uma API pré carregada ? que livro devo ler para me inteirar disso? Quais funções estão disponíveis nesta API ??

  13. Jackson Says:

    Gostei do texto. Simples e sucinto mas bem esclarecedor. Parabéns!

  14. Sousa Says:

    Top.
    Parabéns, uma explicação completamente explícita.


Deixe um comentário

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

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: