29/06/2016 Programação Lua

Falta menos de um mês para completar um ano que criei esta versão do Atarefado e escrevi quase todo este artigo e ainda não tinha publicado. Então, antes de apresentar minha arma contra a procrastinação, começo ponderando: Por que procrastinadores procrastinam?

Já contei sobre o Atarefado, ferramenta que criei para dar um pouco de ordem à insanidade caótica da minha mente e conseguir realizar as minhas tarefas. Também contei que recentemente adquiri um telefone celular com sistema operacional Android. Então, nada melhor que ter as tarefas sempre a mão. No entanto, Android é baseado em Java. E já contei também o que penso de diversas linguagens de programação, e Java não está entre as minhas preferências, mas Lua está. E porque criar uma versão específica para um sistema operacional, enquanto posso criar uma que pode rodar em qualquer sistema que possua um navegador?

Foi então que resolvi criar uma versão Web do Atarefado. Mas não abandonei a versão tradicional. Agora no código fonte há um código comum e os códigos desktop e webapp. Para a interface usei HTML5 com o framework Bootstrap. No servidor usei web usei Haserl e Lua. O Haserl funciona de forma semelhante ao PHP, porém usando ou shell script ou Lua. No Meu caso, a escolha é óbvia.

O servidor web que escolhi para rodar no Android, é o Mongoose. Na época era a versão 5.6. As versões mais novas não funcionam mais da mesma forma. Utilizei o NDK do Android para compilar os componentes. Criei um repositório especial com um Makefile para comilar esses componentes: luaw. Não escrevi muita informação de como fazer, mas se você já tiver prática com compilação de software e estiver interessado não será difícil.

Para rodar tudo isso no Android, inicio o servidor web manualmente com um emulador de terminal. O aplicativo que gosto de usar para este fim chama-se VX ConnectBot. Eu testei muitos servidores web para Android, alguns aplicativos que rodam servidores tradicionais como o Lighttpd ou Apache e outros servidores programados diretamente em Java. Surpreendentemente, o Mongoose mesmo sendo um processo normal sujeito a ser encerrado pelo Android ao liberar recursos, é muito mais estável que qualquer outro aplicativo que inclui um ícone de notificação para manter ativo.

Enfim. Menos é mais. Eu nunca gostei de Java. Não me entra na cabeça porque o sistema é em Java, se a API é específica e os aplicativos para Android não rodam em nenhum outro sistema. A única vantagem do Java que seria rodar em várias plataforma com o mesmo código e sem precisar recompilar fica descartada. Então porque submeter às penalidades de uma máquina virtual complexa como o Java (overhead, bloatware)? Lua também é uma máquina virtual, no entanto bem mais simples e mais eficiente.

https://github.com/br-lemes/atarefado

br_lemes, o Golem insano (Depressivo)