Skip to content
Latchkey

just vs make: Command Runner vs Build System

O just é um command runner focado em salvar e executar tarefas de projeto; o make é um build system cuja funcionalidade central é reconstruir arquivos com base em dependências.

Eles parecem semelhantes (um arquivo de receitas nomeadas), mas resolvem problemas diferentes. O make rastreia timestamps de arquivos para reconstruir apenas o que mudou; o just deliberadamente abre mão disso e foca em uma execução de tarefas ergonômica e multiplataforma.

justmake
Propósito principalRodar comandos nomeados do projetoConstruir arquivos a partir de dependências
Rastreamento de dependências de arquivosNão (por design)Sim (baseado em timestamp)
Armadilhas de sintaxeTolerante, erros clarosTabs, .PHONY, peculiaridades de shell
Argumentos para receitasDe primeira classeDesajeitado
MultiplataformaConsistenteVaria por make/shell

Onde o just vence

Para "rodar as tarefas do meu projeto" (lint, test, build, deploy) o just é mais agradável: as receitas recebem argumentos de forma limpa, os erros são claros, não há armadilha de tab-versus-espaço nem comportamento incremental acidental, e ele se comporta de forma consistente entre plataformas. Ele foi feito de propósito como um command runner.

Onde o make vence

Quando você realmente precisa de builds incrementais (compilar apenas os fontes que mudaram, regenerar saídas quando as entradas mudam), o grafo de dependências baseado em timestamp do make é justamente o ponto, e o just não o substitui. O make também está instalado em quase todo lugar, então não precisa de provisionamento extra.

Em CI

Se suas etapas de "build" são na verdade aliases de tarefas, o just deixa os pipelines mais limpos; se você depende de rebuilds incrementais, mantenha o make (ou um build system de verdade). Provisionar o just adiciona uma etapa de instalação; o make normalmente já está presente.

O veredito

Use o just quando quiser um command runner ergonômico para tarefas de projeto; use o make quando precisar de builds incrementais reais baseados em arquivos ou de ubiquidade sem instalação. Eles não são substitutos diretos.

Guias relacionados