Qual a diferença entre biblioteca e framework? #1281
Replies: 10 comments
-
Eu vi uma discussão sobre o assunto há um tempo e gostei da seguinte definição:
Um exemplo? Lodash é uma biblioteca, ela te fornece uma série de APIs bacanas pra você lidar com estruturas complexas no Javascript. Um framework seria o Angular. Ele além de te entregar uma API, te entrega uma arquitetura inteira e completa (DI, router, templating, service layers...) Porém, nem todo framework é um apunhado de ferramentas inteiras. De novo, um framework é aquele código que te "obriga" a trabalhar naquela arquitetura e ir por um caminho diferente meio que não faz sentido. Um outro exemplo de framework são as ferramentas de testes unitários. Eles te fornecem uma API para asserções mas, novamente, te obriga a trabalhar em cima de uma arquitetura inteira (configurações, convenções, métodos, etc). |
Beta Was this translation helpful? Give feedback.
-
Me desculpe, acabei não respondendo sobre o font-awesome que acredito ser o principal. Usando a ideia que defendi, seria uma lib. |
Beta Was this translation helpful? Give feedback.
-
Fxcosta vlw, sua definição foi bem resumida e agora eu entendi, obrigado |
Beta Was this translation helpful? Give feedback.
-
@luisfeliperm Editei o titulo e texto para ficar mais generico :) |
Beta Was this translation helpful? Give feedback.
-
Framework: (normalmente) grande e engessado. |
Beta Was this translation helpful? Give feedback.
-
Apenas para acrescentar, existem os chamados frameworks progressivos, que partem de uma atomicidade tal qual uma biblioteca, mas oferecem uma gama de extensões e por vezes até um toolkit que lhe permite ir incrementando e se aproximando da arquitetura própria do framework. Exemplo: Vuejs |
Beta Was this translation helpful? Give feedback.
-
Dada a explicação do @fxcosta, que eu achei correta, o React seria um framework mas todo mundo trata, e a própria documentação diz, que é uma Lib. E aí? |
Beta Was this translation helpful? Give feedback.
-
Será q da pra chamar React + Redux de framework e React only uma lib? Pessoalmente eu acho q o react caia melhor na definição de framework progressivo, já que ele impõe uma forma de se escrever componentes usando o virtual dom, tal qual o Vuejs. |
Beta Was this translation helpful? Give feedback.
-
@didiraja @klarkc é interessante essa discussão porque ela beira a filosofia. react pra mim é uma lib. react + redux pra mim são duas libs, até porque redux vive sem o react e vice-versa. se vc me entregar o react + react-router + uma série de coisas, aí talvez tenhamos um ecossistema que beira um framework mas perceba a diferença entre o react-router com o router do angular? não é só porque é separado, é porque o uso do react-router é opcional, vc pode usar outra solução. React-router seria uma extensão de uma lib, mas não uma lib e nem um framework. O que o @klarkc chama de frameworks progressivos eu conheço melhor com o uso de micro-frameworks. No mundo do PHP isso é mais visto, não conheço nenhum micro-framework em js. Mas no PHP a ideia de micro-frameworks é te oferecer uma pequena estrutura, uma arquitetura de lego. Você vai montando suas peças e crescendo o app da forma como precisar ao invés de ter uma base de código enorme que talvez você nem use ou nem curta. E se eu não curtir o roteador do angular? eu posso trocar? (desconheço mas acredito q não, se tiver errado me falem) |
Beta Was this translation helpful? Give feedback.
-
Em JS, diferentemente de muitas linguagens, tudo é muito modular e desacoplado, então acho que qualquer framework é "plugável" com qualquer lib ou ferramenta, no final tudo é código e a diferença entre usar uma lib e usar um framework é apenas semântica e pouco prática. Uma definição que talvez caiba melhor é que framework JS é um produto, uma caixa de ferramentas de módulos, no sentido que você dispõe dessas ferramentas standard, que são sugeridas para se ter maior eficiência ao escrever código, mas todas são opcionais. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Ainda não consigo entender qual a diferença entre biblioteca e framework.
font-awesome por exemplo, é um biblioteca ou framework?
Beta Was this translation helpful? Give feedback.
All reactions