We were unable to load Disqus. If you are a moderator please see our troubleshooting guide.

Rafael Rinaldi • 11 years ago

Pois é, definição de módulos hoje ainda é um problema...

As principais soluções que temos hoje são AMD e CommonJS.
De um lado você tem o AMD que é totalmente assíncrono e resolve diversos problemas específicos do ambiente do browser, te fornece uma estrutura muito flexível para escrever código modular, uma imensidão de plugins e que funciona no browser sem precisar de um build step. De outro você tem a elegância e a simplicidade do CommonJS (e por sinal, o Node.js não segue a risca a implementação da API) onde cada arquivo tem seu próprio escopo.
Node.js e CommonJS são uma bela dupla, mas quando se fala em ambiente de browser... Muita gente já tem o Browserify como padrão no workflow e está muito feliz com isso, mas você mesmo apontou a "massaroca" gerada por ele para que tudo "simplesmente funcione" no navegador. Fora isso você precisa de um build step para que seu código rode no browser, está condicionado a escrever código síncrono e começa a usar o NPM pra instalar coisas como Normalize e jQuery, que na minha humilde opinião, não faz o menor sentido.

Acho que o maior problema com AMD é a curva de aprendizado dos module loaders, especificamente com a ferramenta de build do RequireJS que realmente não é intuitiva.
Você demora um tempo até entender o como e o porque das features.

Enfim, não vejo a hora de começar a usar Harmony modules em tudo (não só em projetos pessoais).

filipe • 11 years ago

Muito bom Jean! Parabéns