Lu-a-Bá - O bê-a-bá de Lua para a comunidade lusófona

A sorte está lançada

“Enfim, o Lu-a-Bá está pronto!”

Já perdi a conta de quantas vezes pensei isso, e poucos dias (senão horas) depois me lembrei de inúmeras coisas que gostaria de incluir antes de lançá-lo como uma primeira versão.

Aliás, “pronto” é um termo um pouco inapropriado nesse contexto. Um projeto como o Lu-a-Bá, é um alvo em movimento. Sempre vai haver informações novas para incluir, ideias novas para complementar, e métodos novos para facilitar a didática e assim poder incluir mais gente no assunto.

Mas o conceito de pronto aqui seria algo mais técnico, associado ao modo como organizo o projeto. Ele passa por um controle de versões/revisões com Git1, no qual separo duas ramificações, uma para novas edições, e outra para espelhar o conteúdo que está publicado.

Quando o ramo principal (publicado) enfim é atualizado com novas informações, (vindas do ramo de novas edições) então quer dizer que uma nova “versão” do Lu-a-Bá está pronta.

Antes da primeira versão eu cheguei a disponibilizar uma prévia, para que pudesse divulgar o projeto e saber a opinião de ao menos parte do público interessado, fossem elas boas ou ruins. Assim poderia antecipar algumas melhorias.

Recebi poucos, porém importantes comentários, tanto positivos quanto negativos. No lado positivo, a ênfase foi a simplicidade e acessibilidade das páginas, além do fato de estar elaborando material em português sobre o tema. No lado negativo, o principal destaque foi a confusão dos primeiros textos que serviriam para direcionar a navegação do usuário.

Também recebi alguns comentários neutros, como “gostei do projeto, porém ainda não tenho conhecimento suficiente para absorver o conteúdo”. De certo modo, isso me mostrou que ainda precisava trabalhar as seções de modo que tanto usuários com menos conhecimento quanto aqueles mais experientes pudessem usufruir do conteúdo.

E aliás, esse foi (e é) um dos principais desafios do projeto. Não é fácil elaborar conteúdo que abrange tanto novatos quanto veteranos. Acontece que essa é uma característica crucial para o Lu-a-Bá, e portanto sigo trabalhando para que este objetivo seja atingido e aprimorado.

Dito isso, é bastante óbvio que muito ainda há para ser feito, mas chegou o momento em que preciso “passar a régua”, e o que tiver ficado pendente ou novas ideias que surgirem, deverão esperar pela próxima versão.

Este blog foi a última das ideias que considerei importante para a primeira versão, pois ele será um modo mais direto de me comunicar com os leitores do Lu-a-Bá, sem misturar minhas ideias e pensamentos aleatórios com um conteúdo mais estruturado das demais seções.

Ele também vai servir para informar os leitores sobre o que mudou entre uma versão e outra, o que permite que se atualizem sobre o conteúdo sem precisar reler tudo.

Meu interesse por Lua

Sinto que ainda não expliquei muito bem de onde veio meu interesse pelo assunto e como ele influcienciou a criação deste projeto. Eu já tinha ouvido falar sobre Lua há bastante tempo (há pelo menos uns 8 anos), mas meu real interesse por esse ambiente de desenvolvimento começou mesmo em 2021.

Naquele ano eu comecei a prestar atenção à quantidade de projetos de software que eu já utilizava, que de algum modo usavam Lua como motor de scripts ou para leitura de arquivos de configuração.

Um exemplo foi o editor de texto vis2, que eu usava na época, cujas configurações são aplicadas em um script Lua. Outro exemplo foi o LuaTeX3, usado para processamento de texto e geração de documentos de alta qualidade. Também estava estudando a ferramenta de escaneamento de portas nmap4, que possui um motor de scripts Lua.

A lista foi aumentando com o tempo, e eu fui testando novos programas que usavam Lua, para compreender como a biblioteca Lua dava mais flexibilidade e versatilidade a eles. Por fim esbarrei com um motor de jogos chamado Solarus5, o qual resolvi testar.

Acho que a experiência de perceber que Lua afeta positivamente não apenas programas relacionados à produtividade, mas também programas lúdicos como jogos (assunto no qual Lua é inclusive um grande destaque) foi o que enfim me levou a decidir conhecer mais sobre esse ambiente de desenvolvimento.

O estudo da linguagem apenas aumentou meu interesse, pois fui percebendo que, ironicamente o fato de a linguagem ser pequena o bastante para caber na cabeça do programador e a biblioteca ser pequena o bastante para ser embutida em outros programas foi o que levou Lua a ter uma grande aceitação e um grande alcance entre os desenvolvedores espalhados pelo mundo.

O que espero do Lu-a-Bá

Após aproximadamente um ano de estudo, decidi que era o momento de iniciar algum projeto relacionado. E como gosto de escrever e de ensinar, senti que poderia oferecer alguma contribuição nesse sentido.

Eu sei que um ano pode parecer pouco para consolidar o conhecimento sobre um ambiente de desenvolvimento, mas este é justamente o grande barato de Lua. É possível em pouco tempo absorver a maior parte do conhecimento, especialmente se já tiver alguma vivência com outros.

Reconheço que existem sim materiais de estudo sobre Lua. Porém, poucos são os que reúnem as características a seguir:

Em específico, decidi que tudo deveria ser disponibilizado em português, pois acredito que o Brasil conta hoje com uma grande comunidade de talentos para a programação, embora para muitos o idioma ainda seja uma barreira.

Sobre a forma (textual), trata-se de outro assunto que a mim é bastante caro. Considero a leitura um método bastante eficaz para o aprendizado, pois embora as palavras e ideias sejam do autor, a voz (ou imaginação) que dão vida a essas palavras e ideias são do leitor.

Entendo que o conteúdo audiovisual pode ser um grande complemento para os estudos (sobretudo na função de manter e reforçar o interesse pelo assunto), mas não creio que sejam substitutos para a leitura.

Sobre propagandas e afins, acredito que não há modo mais rápido de espantar os visitantes do que poluindo a página com essas coisas. Este é um projeto voluntário, cujo intuito maior é informar.

Gosto de manter as coisas simples. O uso de javascript em uma página é na prática a execução na sua máquina de um programa obtido remotamente. Por segurança, alguns usuários preferem desativar esse tipo de recurso. Portanto o ideal é que ele seja evitado quando possível.

Já os cookies até tem usos legítimos, como permitir a autenticação em um serviço, por exemplo, ou configuração de preferências. Mas nesse caso, não há autenticação envolvida (e nem preferências), portanto eles não são necessários. Nem entro no mérito de que eles são muitas vezes usados para violar a privacidade dos visitantes, algo com que não compactuo.

Além de querer reunir todas essas características, o Lu-a-Bá é para mim uma maneira de continuar me atualizando sobre esse assunto, e também de fixação de conteúdo, pois eu mesmo consulto minhas anotações quando me esqueço de algum detalhe que sei que já estudei no passado.

Não espero que o projeto tenha uma grande repercussão e fique super conhecido, mas ficarei feliz toda vez que souber que está sendo útil para alguém.

Espero sinceramente que o Lu-a-Bá ajude mais e mais pessoas a compreender como esse ambiente de desenvolvimento funciona, e que essas pessoas sintam que possuem no projeto um porto seguro para avançar no estudo de Lua.

Próximos passos

Como disse, há ainda muito a ser feito.

Possivelmente novas seções surgirão, mas a princípio, meu foco será ampliar a abrangência das seções atuais. Novos documentos serão curados, novos termos serão adicionados ao glossário, novos tutoriais serão elaborados, mais detalhes sobre as versões serão explicados, e possivelmente novos eventos precisarão ser mencionados na cronologia.

Poucos comparativos com outras linguagens deverão ser contemplados (hoje há apenas um, com C), pois o foco neste caso não é provar que Lua é melhor que alguma outra linguagem, mas sim evidenciar suas características usando outras linguagens como referência de comparação.

Esteticamente o projeto deve mudar pouco. Evito mexer no estilo das páginas, dentro do possível.

Veremos como o projeto avança. A sorte está lançada.


  1. https://git-scm.org 

  2. https://www.brain-dump.org/projects/vis/ 

  3. https://www.luatex.org/ 

  4. https://nmap.org 

  5. https://solarus-games.org 

  6. https://creativecommons.org/licenses/by-sa/4.0/