Diferença entre framework x Biblioteca x IDE x API x SDK x Toolkits? [fechadas]

144

Eu quero alguns exemplos. Eu sempre fico confuso, então, com alguns exemplos, talvez eu consiga entender melhor.

Além disso: o Eclipse é uma API ou IDE?

Manoj hans
fonte
1
eclipse é um IDE
Thielicious 8/16

Respostas:

294

Um IDE é um ambiente de desenvolvimento integrado - um editor de texto substituído com suporte adicional para o desenvolvimento (como designers de formulários, editores de recursos etc.), aplicativos de compilação e depuração. por exemplo, Eclipse, Visual Studio.

Uma Biblioteca é um pedaço de código que você pode chamar de seu próprio código, para ajudá-lo a fazer as coisas de maneira mais rápida / fácil. Por exemplo, uma biblioteca de Processamento de bitmap fornecerá recursos para carregar e manipular imagens de bitmap, economizando a necessidade de escrever todo esse código. Normalmente, uma biblioteca oferece apenas uma área de funcionalidade (processamento de imagens ou operação em arquivos zip)

Uma API (interface de programação de aplicativos) é um termo que significa as funções / métodos em uma biblioteca que você pode chamar para solicitar que faça coisas para você - a interface da biblioteca.

Um SDK (kit de desenvolvimento de software) é uma biblioteca ou grupo de bibliotecas (geralmente com aplicativos de ferramentas extras, arquivos de dados e código de amostra) que ajudam no desenvolvimento de código que usa um sistema específico (por exemplo, código de extensão para usar os recursos de um sistema operacional ( Windows SDK), desenhando gráficos 3D por meio de um sistema específico (DirectX SDK), escrevendo suplementos para estender outros aplicativos (Office SDK) ou escrevendo código para fazer com que um dispositivo como um Arduino ou um celular faça o que você deseja. Um SDK normalmente ainda terá um único foco.

Um kit de ferramentas é como um SDK - é um grupo de ferramentas (e muitas vezes bibliotecas de código) que você pode usar para facilitar o acesso a um dispositivo ou sistema ... Embora talvez com mais foco no fornecimento de ferramentas e aplicativos do que apenas em bibliotecas de código .

Uma estrutura é uma grande biblioteca ou grupo de bibliotecas que fornece muitos serviços (em vez de talvez apenas uma capacidade focada, como a maioria das bibliotecas / SDKs). Por exemplo, o .NET fornece uma estrutura de aplicativos - facilita o uso da maioria (se não todos) dos serviços diferentes que você precisa (por exemplo, Windows, gráficos, impressão, comunicação etc.) para escrever uma vasta gama de aplicativos - portanto, um "library" fornece suporte para praticamente tudo o que você precisa fazer. Geralmente, uma estrutura fornece uma base completa na qual você cria seu próprio código, em vez de criar um aplicativo que consome código de biblioteca para executar partes de seu trabalho.

Naturalmente, existem muitos exemplos em estado selvagem que não correspondem exatamente a essas descrições.

Jason Williams
fonte
3
Você pode dizer que um SDK, uma biblioteca ou uma estrutura contém API.
Bastien Vandamme
6
Um SDK é uma implementação específica do cliente para facilitar o consumo de uma API, por exemplo, o SDK javascript para a API do Facebook. Frequentemente, você verá vários idiomas representados na seção SDK da documentação da API, por exemplo, a API do twilio possui um sdk python, ruby, C # e Java sdk para sua API. Só para confundir um pouco mais as coisas, eles chamam de API API e SDKs, e ouvi esses dois termos serem usados ​​de forma intercambiável.
Rob
97

A analogia do carro

insira a descrição da imagem aqui

IDE: O MS Office of Programming. É onde você digita seu código, além de alguns recursos adicionais para torná-lo um programador mais feliz. (por exemplo , Eclipse, Netbeans ). Corpo do carro: é o que você realmente toca, vê e trabalha.

Biblioteca: uma biblioteca é uma coleção de funções, geralmente agrupadas em vários arquivos de programa, mas empacotadas em um único arquivo morto. Ele contém programas criados por outras pessoas, para que você não precise reinventar a roda. (por exemplo , junit.jar, log4j.jar ). Uma biblioteca geralmente tem um papel fundamental, mas faz todo o seu trabalho nos bastidores, não possui uma GUI. Motor do carro.

API: a documentação do editor da biblioteca. É assim que você deve usar minha biblioteca. (por exemplo , API log4j , API junit ). Manual do usuário do carro - sim, os carros também vêm com um!


Kits

O que é um kit? É uma coleção de muitos itens relacionados que trabalham juntos para fornecer um serviço específico. Quando alguém diz kit de medicamentos, você obtém tudo o que precisa para uma emergência: emplastros, aspirina, gaze e anti-séptico, etc.

insira a descrição da imagem aqui

SDK : Refeição feliz do McDonald's . Você tem tudo o que precisa (e não precisa) em caixas ordenadamente: prato principal, bebida, sobremesa e um brinquedo bônus. Um SDK é um monte de componentes de software diferentes reunidos em um pacote, de modo que eles estão "prontos para a ação" imediatamente. Geralmente inclui várias bibliotecas e pode , mas pode não necessariamente incluir plug-ins, documentação de API e até mesmo um próprio IDE. (por exemplo, iOS Development Kit ).

Kit de ferramentas : GUI. GUI. GUI. Quando você ouve 'toolkit' em um contexto de programação, ele geralmente se refere a um conjunto de bibliotecas destinadas ao desenvolvimento da GUI. Como os kits de ferramentas são centrados na interface do usuário, eles geralmente vêm com plug-ins (ou IDEs independentes) que fornecem utilitários de pintura de tela. (por exemplo, GWT )

Estrutura : Embora não seja a noção predominante, uma estrutura pode ser vista como um kit. Ele também possui uma biblioteca (ou uma coleção de bibliotecas que trabalham juntas) que fornece uma estrutura e padrão de codificação específicos (portanto, a palavra, estrutura ). (por exemplo, Spring Framework)

Jops
fonte
41
Uma API não é apenas a documentação. Na verdade, não é documentação. Entendo sua analogia, mas a documentação ou a documentação da API é o manual do seu carro e a API é mais a placa e os botões do seu carro.
Bastien Vandamme
1
Você pode fazer a diferença entre a GUI e a API. A GUI (Interface Gráfica do Usuário) é a interface para o usuário final não profissional. A API (Application Programming Interface) é a interface para outros programas. Ao desenvolver um aplicativo, você pode criar uma GUI ou API ou ambas. Você também pode criar outro tipo de interfaces.
Bastien Vandamme
Sempre há uma API por trás de uma GUI. As GUIs simplificam apenas o caso de uso. Na TI, é mais por razões não profissionais, como interfaces gráficas, em vez de código. Ainda sobre a lógica do seu carro: você pode não ser capaz de dirigir sozinho, precisa aprender e saber dirigir (considere as lições de direção como um tutorial ou documentação). Se você não quiser alcançá-lo, pode entrar em um ônibus ou táxi, pois não são necessárias habilidades de condução (neste caso, aqui não há habilidades de programação) - portanto, consideraria os meios de transporte público como GUIs. Parece engraçado, mas é verdade.
22317 Thielicious
Eu discordo de "[library] não possui uma GUI". No mundo JavaScript, é muito comum que as bibliotecas contenham uma GUI.
user1505520
5

Considere o desenvolvimento do Android:

IDE: Eclipse etc.

Biblioteca: biblioteca android.app.Activity (classe com todo o código)

API: Interface basicamente todas as funções com as quais chamamos

SDK: o SDK do Android fornece as bibliotecas de API e as ferramentas de desenvolvedor necessárias para criar, testar e depurar aplicativos para Android (---- ferramentas - DDMS, Emulador ---- plataformas - versões de sistemas operacionais Android, ---- plataforma- ferramentas - ADB, ---- documentos da API)

ToolKit: pode ser um pacote ADT

Framework: Grande biblioteca, mas mais orientada à arquitetura

ashishpinninti
fonte
3

Em outras palavras...

IDE Até o seu bloco de notas é um IDE. Todo software com o qual você escreve / compila código é um IDE.

Biblioteca Um monte de código que simplifica funções / métodos para uso rápido.

API Uma interface de programação para funções / configurações com as quais você trabalha, seu uso é frequentemente documentado.

Extras do SDK e / ou para fins de desenvolvimento / teste.

ToolKit Pequenos aplicativos para uso rápido, geralmente GUIs.

Aplicativos GUI com uma interface gráfica, não requerem conhecimento de programação, ao contrário das APIs.

Estrutura Ramo de APIs / enorme Library / Snippets envolto em um namespace / ou encapsulados do escopo externo para um manuseamento compacto, sem conflitos com outro código.

MVC Um padrão de design separado em Modelos, Vistas e Controladores para grandes aplicações. Eles não são dependentes um do outro e podem ser alterados / aprimorados / substituídos sem precisar cuidar de outro código.

Exemplo:

Carro (modelo)
O objeto que está sendo apresentado.
Exemplo em TI: um formulário HTML.


Câmera (visão)
Algo capaz de ver o objeto (carro).
Exemplo em TI: navegador que renderiza um site com o formulário.


Motorista (Controlador)
Alguém que dirige aquele carro.
Exemplo em TI: funções que tratam dos dados do formulário que estão sendo enviados.

Trechos Pequenos códigos de apenas algumas linhas podem não estar completos, mas valem a pena compartilhar rapidamente.

Plug-ins Funções exclusivas apenas para estruturas / APIs / bibliotecas especificadas.

Complementos Módulos ou serviços adicionais para GUIs específicas.

Thielicious
fonte
2

O SDK representa para o kit de desenvolvimento de software e o IDE representa para o ambiente de desenvolvimento integrado. O IDE é o software ou o programa é usado para escrever, compilar, executar e depurar como o Xcode. O SDK é o mecanismo subjacente do IDE, inclui todas as bibliotecas da plataforma que um aplicativo precisa acessar. É mais básico que um IDE, porque geralmente não possui ferramentas gráficas.

Haitham
fonte