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
abril 4, 2014 às 12:34 pm
Como consigo acessar um API pago restrito sem ter a licença dele posso simplesmente usar um codx para entrar nele ?
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! 🙂
fevereiro 3, 2013 às 2:19 am
mto bom o post kra! Ajudou bastante.
vlw!
maio 22, 2013 às 2:05 pm
[…] Fonte: Jarbas Jácome […]
agosto 30, 2013 às 9:15 pm
[…] Fonte: Jarbas Jácome […]
outubro 24, 2013 às 5:18 am
Como faço para executar um audio no c ou c++?
agosto 2, 2014 às 2:46 am
Ola desculpe nao tinha visto essa sua pergunta na época, só vi agora. De qq forma para fazer isso vc precisa escolher alguma biblioteca de c ou c++ (openal por exemplo) e procurar a função q toca o arquivo. Aqui um tutorial: http://enigma-dev.org/forums/index.php?topic=730.0;wap2
agosto 1, 2014 às 12:42 pm
O que é biblioteca padrao do compilador C?
agosto 2, 2014 às 2:51 am
É a biblioteca q já vem no compilador de c, a biblioteca padrão de c, que é feita pelo comitê responsável por criar e manter essa linguagem. http://pt.m.wikipedia.org/wiki/Biblioteca_padr%C3%A3o_do_C
outubro 2, 2014 às 3:17 am
Matéria ótima, estou voltando a estudar programação e preciso de alguns conceitos básicos que eu não tenho.
Ajudou infinitamente!
junho 30, 2015 às 7:28 pm
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 ???
junho 30, 2015 às 7:32 pm
Existe uma API pré carregada ? que livro devo ler para me inteirar disso? Quais funções estão disponíveis nesta API ??
agosto 30, 2015 às 9:32 pm
Gostei do texto. Simples e sucinto mas bem esclarecedor. Parabéns!
outubro 30, 2015 às 9:36 pm
Top.
Parabéns, uma explicação completamente explícita.
janeiro 24, 2020 às 3:16 am
Que explicação magnífica! Cara, você resumiu tudo de uma forma muito fácil de entender! Muito obrigado pelo post.