Eu simplesmente amo JavaScript. É tão elegante (imagine o som quieto de fanboys apaixonados suspirando ao fundo).
Então, recentemente eu brinquei com Lua através da estrutura löve2d (legal!) - e acho que Lua também é ótima. Na minha opinião, essas duas línguas são muito parecidas.
Existem diferenças óbvias, como
- sintaxe
- domínio do problema
- bibliotecas
- tipos (um pouco)
mas quais são os mais sutis? Existe algo que um codificador JavaScript levaria como certo que funciona em Lua apenas um pouco diferente? Existem armadilhas que podem não ser óbvias para o codificador experiente de um idioma que tenta o outro?
Por exemplo: em Lua, matrizes e hashes não são separados (existem apenas tabelas) - em JavaScript, eles são matrizes numéricas e objetos com hash. Bem, essa é uma das diferenças mais óbvias.
Mas existem diferenças no escopo variável, imutabilidade ou algo assim?