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:
- Portabilidade: a máquina Lua foi escrita em “clean C”, podendo ser compilada tanto em C quanto em C++, “out-of-the-box”. Lua roda em Windows, em sistemas Unix em geral, Android, iOS, entre outros. Também roda em sistemas embarcados ARM, MIPS, SH4, etc;
- Pequeno footprint: em Linux 64 bits, o interpretador Lua 5.3 ocupa 241KB e a biblioteca Lua ocupa 412KB. Para ARM, o binário liblua.so ocupa apenas 162KB (Lua 5.1);
- Rápida: Lua é uma das linguagens de script mais rápidas disponíveis hoje, como demonstrado por alguns benchmarks independentes;
- Linguagem de extensão extensível: desde sua origem, Lua foi projetada para poder ser facilmente embarcada em outras aplicações. Além disso, é possível desenvolver bibliotecas em linguagem nativa (C ou C++) as quais podem ser chamadas de um script Lua.
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:
- o Ginga, o middleware para o Padrão Brasileiro de TV Digital, que permite o desenvolvimento de aplicativos interativos, transmitidos pelo ar e executados nos televisores;
- jogos como World Of Warcraft, que permite desenvolvimento de extensões em Lua para customizar o jogo, e Angry Birds, desenvolvido essencialmente em Lua;
- Adobe Photoshop Lightroom, programa de edição de fotos, que possui diversas funcionalidades desenvolvidas em Lua. Outros programas da Adobe, como Adobe Revel e Adobe Edge Animate, também usam Lua ou permitem o seu uso para o desenvolvimento de extensões;
- A Wikipedia permite extensões em Lua, assim como VLC, Gimp, Wireshark, entre outros;
- A plataforma Verizon Fios possui um SDK que permite o desenvolvimento de aplicações em Lua;
- Aplicações de automação residencial como Fibaro System e Girder usam Lua;
- O Corona SDK, assim como outros SDKs, permitem o desenvolvimento de aplicações mobile em Lua.
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:
- Altera o código-fonte;
- Compila o novo código;
- 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










Bom dia Vinicius !
Obrigado pelo Post..ajudou-me muito a dar continuidade nas pesquisas sobre Lua..
Poderia indicar-me algum site que envolva desenvolvimento em sistemas embarcados com Lua, fabricandes de hardware que usam Lua ?
Att.:
Lenio
Faltou mencionar eLua: https://www.eluaproject.net/
meuuuuu amigo !!!
Valeuuu !!!!