← voltar para guias
BásicoDesenvolvimentoTodos

O que é um framework e quando usar?

A diferença entre linguagem, biblioteca e framework, por que existem, e como decidir se vale a pena usar um em um projeto.

"Aprenda React" ou "use Django" são conselhos comuns, mas antes de aprender qualquer framework, vale entender o que ele é, e por que ele existe.

A diferença entre linguagem, biblioteca e framework

Linguagem de programação é a base: JavaScript, Python, Java. Define a sintaxe e o que você pode fazer.

Biblioteca é um conjunto de funções prontas que você usa quando precisa. Você chama a biblioteca, ela não chama você. Exemplos: requests em Python para HTTP, lodash em JavaScript para manipulação de dados.

Framework é diferente: ele define a estrutura do seu projeto. O framework chama o seu código, não o contrário. Você preenche as partes que ele deixou em branco (autenticação, rotas, views, banco de dados).

A distinção técnica mais usada: inversão de controle. No framework, o controle do fluxo fica com ele. Na biblioteca, o controle fica com você.

Por que frameworks existem

Sem framework, você resolveria os mesmos problemas toda vez que começa um projeto:

  • Como organizar as pastas e arquivos?
  • Como mapear URLs para funções?
  • Como lidar com o banco de dados?
  • Como separar lógica de negócio da camada de apresentação?

Frameworks resolvem esses problemas com convenções: uma forma padrão de fazer as coisas que toda a equipe conhece. Um dev que conhece Django consegue entrar em qualquer projeto Django e entender a estrutura.

Exemplos no mercado brasileiro

Front-End:

  • React (Meta): biblioteca de componentes. Você escolhe o roteamento, o estado, tudo. Tecnicamente mais biblioteca que framework, mas o ecossistema ao redor (React Router, Redux) forma um framework de fato.
  • Next.js: framework em cima do React. Define como funciona o roteamento (por arquivos), como fazer SSR, como fazer deploy.
  • Vue.js / Angular: frameworks mais completos que já trazem tudo integrado.

Back-End:

  • Express.js (Node): minimalista. Dá liberdade máxima, mas você monta a arquitetura.
  • NestJS (Node): framework opinionado. Estrutura sua app em módulos, controllers e services.
  • Django (Python): "batteries included", tem ORM, autenticação, admin, tudo nativo.
  • FastAPI (Python): mais leve, focado em APIs.
  • Spring Boot (Java): framework dominante no ecossistema Java corporativo.
  • Laravel (PHP): framework mais popular em PHP.
Quando usar um framework

Use quando:

  • Você está construindo algo maior que um script simples
  • A equipe precisa de estrutura compartilhada
  • O framework resolve problemas que você teria que resolver do zero de qualquer forma

Não use quando:

  • É um script pequeno ou automação simples
  • Você está aprendendo os fundamentos da linguagem (aprenda a linguagem antes do framework)
  • O framework traz mais complexidade do que o problema exige
Para quem está começando

A recomendação mais comum é: entenda a linguagem antes de aprender o framework. Aprender React sem saber JavaScript de verdade cria dependência do framework sem entender o que está acontecendo por baixo.

Mas na prática, muita gente aprende os dois em paralelo, e funciona, desde que você esteja ciente do que é a linguagem e o que é o framework.

  • Entendo que o framework define a estrutura do projeto?
  • Sei qual linguagem o framework que estou usando é construído em cima?
  • Consigo escrever algo básico na linguagem sem o framework?
← voltar para o início