Os arquitetos de um projeto estão indecisos entre utilizar a tecnologia JavaScript com Node.js ou Java com o framework J2EE. Assinale a opção que compara corretamente os dois utilitários de gerenciamento, NPM (Node.js) e Maven(J2EE).
- A)A velocidade de build e gerenciamento de dependências do Maven pode variar mas, apesar do NPM se sair melhor em termos de instalação de pacotes ele não tem comandos para disparar os servidores
Errada, porque o NPM sim possui comandos para scripts e automacao, e a afirmacao sobre o Maven é imprecisa e mistura conceitos de instalação e gerenciamento de servidores.
- B)NPM não pode ser usado em todos os tipos de Projetos por outro lado Maven é excelente para lidar com projetos multi-módulo, permitindo uma gestão eficiente de submódulos e dependências entre eles.
Errada, porque o NPM pode ser usado em varios tipos de projetos JavaScript, e embora o Maven seja muito bom em projetos multi-modulo, a frase generaliza de forma inadequada.
- C)Maven não tem recursos de instalação de pacotes ou módululos mas o NPM facilita a execução de scripts personalizados definidos em package.json, proporcionando flexibilidade para automatizar tarefas de desenvolvimento e build.
Errada, porque o Maven tem sim recursos de gerenciamento de dependencias e módulos, e não é correto dizer que ele não faz instalação de pacotes nesse contexto.
- D)NPM tem uma curva de aprendizado menor em comparação com o Maven, tornando-o mais acessível para iniciantes e Maven não pode ser usado para desenvolvimento frontend moderno, ao contrário do NPM que está diretamente ligado ao ecossistema frontend.
Errada, porque curva de aprendizado é uma comparação subjetiva e a parte sobre frontend moderno está mal formulada, já que NPM não é a linguagem nem o frontend em si, mas um gerenciador de pacotes.
- E)NPM é integrado de forma nativa ao ecossistema JavaScript, oferecendo acesso imediato a uma vasta gama de pacotes JS e Node.js, por outro lado, Maven permite um controle mais fino sobre as versões de dependências e sua resolução, incluindo o gerenciamento de dependências transitivas.
Certa, porque o NPM é integrado ao ecossistema JavaScript e o Maven é conhecido pelo controle de versoes e pela resolução de dependências, inclusive transitivas.
Gabarito: E
Aqui a banca quer que voce compare dois ecossistemas que vivem em mundos parecidos, mas com filosofias diferentes. O NPM é o gerenciador de pacotes do universo JavaScript e Node.js: ele facilita instalar bibliotecas, publicar pacotes e acessar rapidamente uma quantidade enorme de dependências usadas no frontend e no backend. Já o Maven é muito forte no ecossistema Java, com foco em build, ciclo de vida do projeto, resolução de dependências e padronizacao de projetos, inclusive com dependencias transitivas e controle de versoes. O ponto central da questão está em perceber que cada ferramenta tem seu habitat natural. O NPM nasce ligado ao JavaScript e ao Node.js, então ele dá acesso imediato a pacotes desse mundo. O Maven, por sua vez, trabalha muito bem com projetos Java e permite um controle mais rigoroso de dependências, inclusive quando uma biblioteca puxa outras dependências por baixo do capô. Isso evita aquele caos de versoes brigando entre si, um drama comum em projetos grandes. Por isso o gabarito é a letra E. Ela descreve corretamente que o NPM é nativo do ecossistema JavaScript, enquanto o Maven oferece controle mais fino sobre versoes e resolução de dependências, inclusive transitivas. Em termos de prova, essa é a comparação segura e tecnicamente correta entre as ferramentas. Se voce quiser guardar a ideia em uma frase: NPM é mais o gerenciador do mundo JavaScript, enquanto Maven é o organizador disciplinado do mundo Java. Não confunda isso com linguagem de frontend ou backend em si, porque as duas ferramentas podem aparecer em diferentes contextos, mas cada uma tem sua zona de conforto.