Lua é uma linguagem de script genuinamente brasileira, criada em 1993 pela PUC-RJ, projetada para ser simples, pequena, portável, rápida e fácil de ser embarcada em outra aplicação. Estas são, de fato, suas principais característica:

Além disso, Lua é livre, possui gerenciamento automático de memória, é robusta e bem estabelecida, tendo aplicação em diversas áreas.

Onde está a Lua?

Apesar de não ser transparente para os usuários, a Lua é uma linguagem amplamente utilizada. Merecem destaque:

A lista completa das aplicações e sistemas que usam Lua encontra-se aqui.

Lógica de negócios com linguagem de script

Durante o desenvolvimento de software em linguagens nativas, os desenvolvedores repetem várias vezes o processo abaixo:

  1. Altera o código-fonte;
  2. Compila o novo código;
  3. Deploy.

Para sistemas embarcados, o item 2 consiste na cross-compilação do software para outra arquitetura, diferente da do host, seguida pelo deploy na plataforma-alvo.

Este processo pode ser bastante lento quando o código do projeto começa a ficar grande. Além disso, é necessário envolver desenvolvedores que conheçam a linguagem nativa utilizada nas alterações que possam ser necessárias.

Ao se utilizar uma linguagem de script neste desenvolvimento, pode-se pular a etapa de compilação e ir direto da alteração para integração do novo código na plataforma-alvo. Pode-se, inclusive, em alguns casos, alterar o código do script no target real durante a investigação de problemas. Além disso, linguagens de script normalmente são mais fáceis de se aprender, não tendo a mesma complexidade que as linguagens C e C++, linguagens mais usadas em sistemas embarcados. Dessa forma, a produtividade acaba sendo muito maior.

Importante: para atingir o máximo potencial de desenvolvimento, é imprescindivel que a linguagem de script possa ser integrável à nativa.

O uso de duas linguagens diferentes permite aos desenvolvedores da interface com o usuário e da lógica de negócios usufruir de uma linguagem com tipagem dinâmica e gerenciamento automático de memória, entre outras facilidades. Também permite aos desenvolvedores da lógica de baixo nível e da interface com o hardware usarem uma linguagem compilada de alto poder, como o C++. Tarefas específicas ou que necessitem de muito desempenho são implementadas em um nível mais baixo, em uma linguagem compilada (no caso, C++). Um exemplo desta tarefa seria abrir uma imagem ou carregar uma fonte. Tarefas relacionadas às regras de negócio, por exemplo a interface com o usuário, são implementadas usando a linguagem de script, como, por exemplo, onde e quando mostrar uma imagem ou que texto escrever na tela.

Lógica de negócios com linguagem de script em Lua

Como mencionado anteriormente, Lua é brasileira, rápida, leve, portável e portada para diversas plataformas. Possui gerenciamento automático de memória, tem poucas dependências e é livre. Além disso, já é robusta e estabelecida, estando presente em diversos dispositivos e em diversas aplicações, há mais de 20 anos.

Para completar, Lua é bastante poderosa, pois permite orientação a objetos, permite extender aplicações escritas em outras linguagens e pode ser extendida por bibliotecas escritas em outras linguagens. Sua sintaxe é bastante parecida com Javascript, o que facilita o treinamento e capacitação de desenvolvedores Web para desenvolver em Lua.

Referências

The Evolution of Lua

A Linguagem de Programação