Bem-vindos à nossa comunidade!

Junte-se a nós e faça parte hoje mesmo!

Qual a diferença entre Framework e Bibliotecas?

Daniel

Estagiário da vida.
Moderador
Cadastro
24/9/20
Postagens
87
Curtidas
138
Pontuação
90
Cidade
Fortaleza
Uma biblioteca nada mais é do que uma coleção de códigos voltados para resolver um problema. Por exemplo, vamos supor que você tem que desenvolver um código para calcular a área de um quadrado. Ai então, você precisa desenvolver um código para calcular a área de um triângulo. Depois disso, você precisa de um código para calcular a área de um círculo. Após desenvolver esses três código você pensa: "Esses códigos podem ser úteis para mais alguém!" Então você resolve agrupalos é uma biblioteca, e os chama de geometrics.js (exemplo).

Já um framework, teoricamente, é algo mais complexo. Geralmente os frameworks já possuem um esqueleto a ser seguido, um fluxo de desenvolvimento. É um conceito mais amplo. Inclusive, um framework pode ser composto por um conjunto de bibliotecas. Por ser um conceito mais amplo acaba sendo mais abstrato, pois as bibliotecas geralmente são sucintas à resolver um problema.

Angular e Vue são exemplos de Framework. Já o React é uma biblioteca.

No react, por exemplo, nós temos funções para criar componentes e estamos, enquanto que no angular, existe uma estrutura que deve ser seguida e nessa estrutura muita coisa já vem inclusa. É o angular que vai chamar o nosso código de acordo com o seu fluxo.

Uma diferença interessante na hora de definir é a seguinte:

"Geralmente, os nossos códigos utilizam as bibliotecas enquanto os frameworks costumam utilizar os nossos códigos."

Um abraço!
 

Jonas Mateus

Novo Membro
Cadastro
23/12/20
Postagens
2
Curtidas
11
Pontuação
7
Cidade
Natal, RN
Uma biblioteca nada mais é do que uma coleção de códigos voltados para resolver um problema. Por exemplo, vamos supor que você tem que desenvolver um código para calcular a área de um quadrado. Ai então, você precisa desenvolver um código para calcular a área de um triângulo. Depois disso, você precisa de um código para calcular a área de um círculo. Após desenvolver esses três código você pensa: "Esses códigos podem ser úteis para mais alguém!" Então você resolve agrupalos é uma biblioteca, e os chama de geometrics.js (exemplo).

Já um framework, teoricamente, é algo mais complexo. Geralmente os frameworks já possuem um esqueleto a ser seguido, um fluxo de desenvolvimento. É um conceito mais amplo. Inclusive, um framework pode ser composto por um conjunto de bibliotecas. Por ser um conceito mais amplo acaba sendo mais abstrato, pois as bibliotecas geralmente são sucintas à resolver um problema.

Angular e Vue são exemplos de Framework. Já o React é uma biblioteca.

No react, por exemplo, nós temos funções para criar componentes e estamos, enquanto que no angular, existe uma estrutura que deve ser seguida e nessa estrutura muita coisa já vem inclusa. É o angular que vai chamar o nosso código de acordo com o seu fluxo.

Uma diferença interessante na hora de definir é a seguinte:

"Geralmente, os nossos códigos utilizam as bibliotecas enquanto os frameworks costumam utilizar os nossos códigos."

Um abraço!
Exatamente, as bibliotecas costumam resolver problemas mais específicos enquanto que os frameworks vieram para resolver os problemas mais gerais!
 

mourabraz

Membro
Moderador
Cadastro
23/12/20
Postagens
76
Curtidas
133
Pontuação
90
Cidade
Leiria
Olá! Gostaria de participar com uma contribuição.
Este texto vai ficar um pouco repetitivo com o que o Daniel escreveu, mas como to trazendo de uma mensagem que escrevi num canal do discord quis trazer sem edição.

A mensagem era para falar justamente da diferença de lib e framework, mais especificamente no caso do React.

"Oi bom dia! Vou dar minha opinião. E opinião é uma coisa que mudamos à medida que crescemos, certo? A distinção entre frameowrk (e nunca sei se é o a framework! aqui em PT só falam a framework) e bibliotecas (as libs) é muito simples em alguns casos e difícil em outros. Pq a própria definição não é tão digital como as nossas cabeças de programadores gostariam que fosse. Então fica mais fácil falarmos em exemplos: Lodash, framework ou lib? lib, né! date-fns, lib né! Estes são alguns dos casos simples para libs. Sails, Meteor, Nest.js, Next.js, framework estes tb sao simples, Pq.... vemos facilmente que aquilo lá é um compilado de "funcionalidades" que te auxiliam em alguma coisa, enquanto que nestes, cada um apresenta-se como uma solução completa. Casos que podemos discutir com easy-easy: express? e aí? Vue.js, React.js? estes a gente passa a noite conversando sobre como defini-los. (Não acho que seja o mais importante, mas definição e bate-papo sobre coceitos eu gosto!) Se vc dizer: - oohh Carlos! Pra mim React.js é lib e pronto! Eu vou concordar, pq de fato vc pode usar o React parcialmente, ou como um todo, olhando para ele como um fornecedor de funcionalidades.... Se o colega do lado dizer: - Eu cá já acho que é framework e pronto! Eu tb vou concordar: pois é muito provável que no projeto em que ele usou o React ele usou ele como uma solução completa.... é discutível, na minha opinião! Nestes casos vale o contexto como critério para desempate."
[...]
"O que acho importante disto: Tenho visto pessoal comentando algo assim, "vue.js é melhor que react pq se vc quiser vc pode usar ele apenas para uma coisa só e tal!" React também.... vc pode usar React apenas em uma página da sua aplicação e na outra usar Vue. Ao usar React vc nao está impedido de usar outras libs (eita agora falei libs!! Wat?) O que importa neste caso entre React e Vue, o que na minha opinião é mais importante é que Vue é two way data biding enquanto que React é one way data binding. Estes dois conceitos são importantíssimos. PS Li agora o que o colega falou! E eu concordo pois além de ele afirmar ele fechou a questão qd falou "soh importa a lib onde vc precisa usar, diferente do framework q vem com ferramentas" Abraços!"

Lembrando que esses textos estavam inseridos dentro de uma conversa no discord...

Só quis trazer para cá como forma de contribuir para a discusão.

PS. Daniel pq que vc classificou o Vue com framework e nao lib?
 

Daniel

Estagiário da vida.
Moderador
Cadastro
24/9/20
Postagens
87
Curtidas
138
Pontuação
90
Cidade
Fortaleza
Fala, Mourabraz! Beleza?
Excelente contribuição. Gostei muito da aplicação do contexto para definição. Realmente essa definição é muito complexa para ser simplesmente determinística. Mas os conceitos estão ai para serem aplicados.
PS. Daniel pq que vc classificou o Vue com framework e nao lib?
A priori eu o defini assim porque o próprio define a si mesmo dessa maneira:
1609008604335.png
Mas fiquei muito feliz quando você levantou o questionamento porque me fez pensar à respeito.
Eu definiria, na minha experiência, o VUE como framework pelos seguintes aspectos:
O VUE têm um fluxo bem definido de desenvolvimento e funcionamento:
1609008861862.png
Durante esse fluxo, você pode definir funções que serão utilizadas pelo VUE para gerar o conteúdo. Ai cai naquele conceito acima que eu achei muito bacana:
"Geralmente, os nossos códigos utilizam as bibliotecas enquanto os frameworks costumam utilizar os nossos códigos."
Portanto o VUE.js me parece muito mais um framework, por sua complexidade, estrutura e forma de lidar com a criação do conteúdo.
Não sou nenhum especialista no assunto, sou apenas um desenvolvedor iniciante. Admito que diferenciar lib de framework é, para mim, mais complicado do que parece.

Grande abraço!
 

mourabraz

Membro
Moderador
Cadastro
23/12/20
Postagens
76
Curtidas
133
Pontuação
90
Cidade
Leiria
Opa boa noite! Muito obrigado pela resposta. A tempos que não abro a página do Vue.js :sneaky:

Abração e bons códigos!
 

andretsc

Novo Membro
Cadastro
22/2/21
Postagens
13
Curtidas
9
Pontuação
11
Cidade
Japao
De qual Composer você se refere @andretsc ? Conheço mais de um e estou aqui na dúvida! :ROFLMAO:
Desculpe minha ignorância, um que vc configura um composer.json e ele trás "vários" plug-ins pro projeto.... só não sei se ele deixa mais pesado...não achei nenhuma informação sobre ele carregar ou não os plug-ins não utilizados.
Outra vez usando o termo plug-in eu falo as funções que ele tem e são carregadas......
 

Lucas Galdino

github.com/lucasgaldinomt
Moderador
Cadastro
24/9/20
Postagens
77
Curtidas
76
Pontuação
70
Cidade
Fortaleza
No caso do JavaScript isso é basicamente a função do package.json no Node. Não chega a ser um framework, é uma função do Node como runtime mesmo. No caso, para qual linguagem você quer essa ferramenta? Podemos encontrar uma ferramenta para a linguagem em específico.
 

andretsc

Novo Membro
Cadastro
22/2/21
Postagens
13
Curtidas
9
Pontuação
11
Cidade
Japao
No caso do JavaScript isso é basicamente a função do package.json no Node. Não chega a ser um framework, é uma função do Node como runtime mesmo. No caso, para qual linguagem você quer essa ferramenta? Podemos encontrar uma ferramenta para a linguagem em específico.
ela eh usada espeficamente no PHP, tras varias bibliotecas e vc tem acesso a esss biblioteca em qualuquer parte do seu projeto...
Documentacao
 

Lucas Galdino

github.com/lucasgaldinomt
Moderador
Cadastro
24/9/20
Postagens
77
Curtidas
76
Pontuação
70
Cidade
Fortaleza
Ahhh. É para PHP! No caso eu já estava pensando em React, Docker, Flutter, outras mil coisas. :ROFLMAO:
Nesse seu caso ai, não vai ser uma framework, o Composer vai ser um gerenciador de pacotes mesmo, como ele se denomina. É o equivalente ao NPM, o NPM pro JavaScript é o Composer para o PHP.
 
Last edited:
Top