A escolha da ferramenta ou tecnologia certa para um determinado problema é um dos aspectos mais importantes da programação. A ferramenta certa é a chave para o sucesso de um projeto. É aqui que a maioria dos programadores falha porque geralmente lidam com muitas ferramentas. Isso se refere à questão final: "você deve criar seu aplicativo com uma biblioteca ou uma estrutura?" Este é um dos tópicos de discussão mais discutíveis na comunidade dos programadores e, muitas vezes, uma fonte de confusão. Uma equipe pequena com um punhado de desenvolvedores, na maioria iniciantes, pode ser melhor trabalhar com uma estrutura, enquanto as bibliotecas são blocos de construção que podem ser usados em qualquer lugar e permitem maior flexibilidade e controle.
A principal diferença entre uma biblioteca e uma estrutura é a "Inversão de controle" (IoC). Pode-se dizer que o framework é uma coleção de bibliotecas, mas a idéia é de alguma forma diferente.
Biblioteca é uma coleção de funções reutilizáveis usadas por programas de computador, ou seja, os recursos que você pode reutilizar, incluindo classes, sub-rotinas, código pré-compilado, modelos de mensagens etc. A maioria das linguagens de programação possui bibliotecas padrão próprias, mas os programadores também podem criar suas próprias bibliotecas personalizadas. Simplesmente é um pedaço de código escrito por outros desenvolvedores que pode ser reutilizado em qualquer lugar. As bibliotecas podem ser incorporadas diretamente nos projetos existentes para adicionar funcionalidades às quais você pode acessar ainda mais usando uma API. É necessário um pouco de conhecimento para você começar.
Framework é um pedaço de código que determina como o projeto deve ser estruturado e executado. Ele simplesmente exige a arquitetura do seu projeto, como definir os parâmetros de design de um aplicativo, para que você possa se concentrar nas especificidades do projeto, enfatizando a reutilização do design em vez da reutilização do código. Diferentemente das bibliotecas, o controle é invertido no caso de estruturas e o código nunca chama uma estrutura; em vez disso, a estrutura chama você. Diferentemente das bibliotecas, as estruturas enfatizam a estrutura e os padrões.
Na programação, a biblioteca é uma coleção de funções reutilizáveis - significando os recursos que você pode reutilizar - usadas pelos programas de computador. Os recursos, às vezes chamados de módulos, geralmente são armazenados no formato de objeto. A maioria das linguagens de programação possui suas próprias bibliotecas padrão, mas os programadores também podem criar suas próprias bibliotecas personalizadas. Em termos simples, uma biblioteca é um conjunto de funções que você pode chamar, enquanto uma estrutura é um pedaço de código que determina a arquitetura do seu projeto. De certa forma, estruturas e linguagens de programação estão interligadas que, juntas, auxiliam em programas de computador.
A "Inversão de controle" é a principal diferença que separa uma estrutura de uma biblioteca. Uma biblioteca é um conjunto de funções e rotinas usadas por outros programas e você tem controle total quando chama um método de uma biblioteca. No entanto, o controle é invertido no caso de uma estrutura. Ele determina a estrutura do seu projeto e o código nunca chama uma estrutura; em vez disso, chama você. Simplificando, você pode simplesmente pensar na biblioteca como uma função de um aplicativo e uma estrutura como o esqueleto do aplicativo no qual o aplicativo define seus próprios recursos.
Bibliotecas são um conjunto de funções que podem ser usadas em qualquer lugar, o que significa que é simplesmente um pedaço de código escrito por outros desenvolvedores que pode ser reutilizado. Eles são incorporados diretamente nos projetos existentes para adicionar funcionalidades que você pode acessar usando uma API. Eles são usados principalmente para módulos usados com freqüência porque você não precisa vinculá-los explicitamente a todos os programas que os usam. Eles são importantes no processo de vinculação e vinculação de programas. As estruturas, por outro lado, fornecem uma maneira padrão de criar e implantar aplicativos e podem ser usadas principalmente ao iniciar um novo projeto, em vez de serem integradas aos existentes..
Para entender melhor a diferença entre uma biblioteca e uma estrutura, vamos dar uma olhada no jQuery e no AngularJS. O jQuery é uma biblioteca JavaScript multiplataforma que simplifica a manipulação do DOM, juntamente com muitas outras coisas complicadas, como manipulação CSS, métodos de eventos HTML, chamadas AJAX, etc. O objetivo do jQuery é simplificar o uso do JavaScript no seu site. O AngularJS, por outro lado, é uma estrutura estrutural baseada na arquitetura MVC usada para criar aplicativos da web dinâmicos. É inteiramente baseado em HTML e JavaScript e, diferentemente do jQuery, não pode ser integrado a projetos existentes porque, como estrutura, determina como o seu código deve ser estruturado e executado.
Quando há confusão sobre decidir se você deve usar uma biblioteca ou uma estrutura para criar um aplicativo, tudo se resume ao controle. Bibliotecas são um conjunto de funções que você pode chamar e cada chamada executa alguma tarefa e retorna o controle para você. Eles podem ser incorporados diretamente aos projetos existentes e é necessário um pouco de conhecimento para você começar. As estruturas, por outro lado, ditam a estrutura geral do seu projeto e, diferentemente das bibliotecas, as estruturas chamam você e o código nunca chama uma estrutura. A principal diferença é, obviamente, a inversão de controle. Em termos simples, as bibliotecas são mais flexíveis com maior grau de controle, enquanto as estruturas impõem estrutura e padrões.