Diferença de API, Biblioteca e Componente

4 respostas
T

Boa tarde, gostaria de saber a diferença entre api, biblioteca e componente (caso haja). Dei uma pesquisada na internet mas nao consegui ainda estabelecer uma definição para cada.
Achei o seguinte site que ainda compara biblioteca e api, farei um quote, nao sei se pode postar o site:

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

Vendo dessa forma, API e biblioteca são “a mesma coisa”?
E o que viria a ser componente?
Obrigado a todos.

4 Respostas

lina

Oi,

Na minha opinião: API = Conjunto de métodos disponíveis para utilizar uma determinada biblioteca.

Exemplo: Na tua aplicação você irá utilizar o método SendMail() da biblioteca JMail para conseguir enviar e-mails.

Neste caso, a biblioteca seria o JMail, onde você estaria usando o método SendMail da sua API na tua aplicação.

Já um componente, pode-se definir sendo uma representação gráfica de um Objeto. O que não existe uma definição 100% precisa, pois um componente pode ou não estar ligado em algo gráfico.

Tchauzin!

lina

Oi,

Olha… essa sua pergunta me deixou completamente confusa. Até que cheguei na conclusão acima.

rsrs

Tchauzin!

T

Muito obrigado, vejo que definir esses termos nao é uma coisa tao simples, rsrs.
:smiley:

ViniGodoy

Você está confuso porque existe mais de uma definição. Mas, alguns livros fazem as seguintes definições:

  1. Biblioteca, API ou SDK: Conjunto de código pronto. Pode ser um conjunto de funções matemáticas, não precisa necessariamente orientada a objetos. Portanto, é uma designação ampla, que pode ser usada para se referir a qualquer um dos itens abaixo.

  2. Toolkit: Conjunto de classes ou funções cuja arquitetura não se baseia em extensão, mas sim em uso. Um exemplo seria a STL e a OpenCV do C++, ou o pacote java.util.concurrent. Mas, por essa definição, não seria a AWT (Abstract Window Toolkit), já que boa parte de suas classes são extensíveis.

  3. Framework: Biblioteca de classes que suportam uma funcionalidade, mas que baseiam-se em extensão. Como o caso do Swing, onde você é obrigado a implementar um TableModel, por exemplo. O framework, portanto, é mais intrusivo e gera mais acoplamento do que um Toolkit. Geralmente, um framework chega a impor algum tipo de arquitetura ao projeto de software.

  4. Engine: Um framework que geralmente gerencia o fluxo do código (geralmente roda num loop). Seria também o caso do Swing, JMonkeyEngine, Ogre ou do glut. Hoje também associa-se engines a presença de editores e IDEs, que dão suporte ao ecossistema. Por exemplo, o Matisse para escrever telas do Swing, ou os editores de terreno da Unity.

Essas 4 são as definições que mais gosto. Mas autores diferentes misturam esses conceitos uma vez ou outra. Portanto, não fique tão preso as definições.

Criado 2 de maio de 2012
Ultima resposta 2 de mai. de 2012
Respostas 4
Participantes 3