atividade 1 - {reprograma}
Biblioteca é um conjunto de funções, normalmente organizadas em classes, que podem ser usadas para a construção de softwares, simplificando a linguagem de programação. Há diversas classes de bibliotecas, com finalidades diferentes, como acesso a banco de dados, manipulação de imagens, entre tantas outras. Elas são a base para criação dos frameworks.
Um exemplo de biblioteca padrão poderá incluir funcionalidades para manipular string, datas, eventos, animações, entre outros. Cada uma destas funções retornará valores para a aplicação que a está invocando que então poderá ser manipulada de acordo com a necessidade.
Uma biblioteca pode reduzir o tempo de desenvolvimento, pois não será necessário se preocupar com detalhes. Por outro lado, um bug dentro da biblioteca pode se tornar difícil de descobrir e corrigir, não há garantias que os responsáveis pela biblioteca irão corrigi-lo em tempo hábil e uma atualização pode mudar a API de forma a causar mudanças em seu código. Neste sentido, podemos dizer que uma biblioteca (do inglês library, não confundir com livraria que em inglês é book store) é uma coleção de códigos voltados a resolver um determinado tipo de problema.
Exemplos de Bibliotecas JavaScript
-
Moment.js : Biblioteca para converter, validar, manipular e exibir datas e horários
-
Chart.js : Biblioteca para a criação de gráficos
-
Voca : Biblioteca para trabalhar com Strings
-
mo.js: Biblioteca para criar animações incríveis com SVG.
-
React: Biblioteca para criar interfaces de usuário.
Um framework é uma estrutura-base que contém um conjunto de funções e componentes pré-definidos, funções e componentes estes que se relacionam para disponibilizar funcionalidades específicas ao desenvolvimento de software. Estas funções e componentes genéricos pré-prontos agilizam o processo, poupam tempo e evitam retrabalho para o desenvolvedor.
Os frameworks podem ser criados ou pela própria comunidade ou por empresas mantenedoras de uma linguagem ou ambiente de desenvolvimento, como a Microsoft e a Oracle.
O foco principal de um framework é a reusabilidade. Você pode utilizar um framework para desenvolver várias aplicações, reaproveitando estas estruturas pré-disponibilizadas para lidar com tarefas repetitivas ou que são comuns em vários tipos de sistemas (como, por exemplo, a funcionalidade de autenticação). Nesse exemplo, você não precisa dedicar tempo para desenvolver a funcionalidade de login, já que existem frameworks já testados para essa finalidade. Além disso, se necessário, você pode personalizar estes componentes pré-disponibilizados de acordo com as demandas do projeto em questão.
Assim um Framework tem como principal objetivo resolver problemas recorrentes com uma abordagem genérica, permitindo ao desenvolvedor focar seus esforços na resolução do problema em si, e não ficar reescrevendo software. No mercado existem várias linguagens e frameworks, como JavaScript, Java,HTML, CCS, PHP, Python e Ruby.
Frameworks também podem ser entendidos como plataformas de desenvolvimento. Eles possuem lacunas que devem ser preenchidas pelo programador para funcionar conforme sua necessidade. Pode ser visto como um esqueleto de uma aplicação. Frequentemente são confundidos, de forma certa ou errada, como um conjunto de classes.
Exemplos de Frameworks JavaScript
-
Angular: Framework para criação de aplicações web
-
Vue.js: Framework também para criação de aplicações web
-
Ionic: Framework para criar aplicativos mobile com Angular, React ou Vue
-
Express: Framework para criar aplicações com Node.js
-
LoopBack: Framework para criar APIs e microserviços com Node.js
Você chama uma biblioteca. É uma ferramenta. Você usa o que precisa.
Um framework chama você. É um estilo de vida. Seu projeto se compromete com ele.
Você pode se perguntar, então Framework é uma biblioteca? Bem quase isso, pode-se dizer que é um conjunto de bibliotecas ou componentes que são usados para criar uma base onde sua aplicação será construída. As frameworks ajudam no desenvolvimento rápido e seguro de aplicações mas é recomendável, estudar antes a tecnologia em que é desenvolvida. Comparado com uma biblioteca, o nível de abstração é mais alto e somado as diversas funcionalidades prontas, o desenvolvimento dos primeiros 80% será incrivelmente rápido. Por outro lado, os 20% restantes podem ser mais difíceis que a primeira parte se eles saírem das limitações do framework, atualizações são muito difíceis de serem implementadas e ao mesmo tempo o código se torna obsoletos relativamente rápido.