Documento: “The Evolution of Lua”
Apresentação sobre a evolução da linguagem Lua na terceira edição do simpósio internacional History of Programming Languages (HOPL III), evento que trata sobre a história de diferentes linguagens de programação, agregados por categoria, nos quais Lua foi classificado como uma linguagem de script.
Público-alvo
Este documento será de interesse para aqueles que desejarem saber mais sobre o histórico de evoluções da linguagem e da biblioteca Lua, e quais foram as influências absorvidas de outros ambientes de desenvolvimento.
Estrutura
O documento é dividido em 8 seções:
- Seção 1: Introduction (Introdução)
- Seção 2: Overview (Visão geral)
- Seção 3: Prehistory (Pré-história)
- Seção 4: Birth (Nascimento)
- Seção 5: History (História)
- Seção 6: Feature Evolution (Evolução dos recursos)
- Seção 7: Retrospect (Retrospectiva)
- Seção 8: Conclusion (Conclusão)
Resumo
A seção 1, como se espera, contextualiza a apresentação, explicando o cenário em que a linguagem Lua surgiu e algumas de suas características mais marcantes.
A seção 2 detalha um pouco mais as características citadas na seção anterior, explicando as fontes de inspiração para o desenho da linguagem, e os valores que pautaram esse processo, sobretudo a simplicidade.
A seção 3 descreve o cenário no qual a linguagem foi concebida, isto é, projetos que serviram de inspiração, pessoas envolvidas e objetivos visados. As linguagens de domínio específico DEL e SOL, que precederam Lua foram pontos de partida para a criação da linguagem Lua, e suas características e contextos também são apresentados nesta seção.
A seção 4 comenta o processo de nascimento da linguagem, tomando por base a sintaxe da linguagem SOL, conceitos de outras linguagens, e uma construção do mínimo necessário para uma primeira versão que atendesse o propósito pretendido.
A seção 5 mostra como o desenho da linguagem e a construção da sua implementação foi progredindo no tempo e ao longo das versões lançadas, com valiosas contribuições da comunidade de usuários que foi se formando em torno deste ambiente de desenvolvimento.
A seção 6 também detalha o progresso da linguagem, porém diferente da seção anterior, que teve foco nas versões lançadas, esta deu mais ênfase a características e recursos da linguagem, mostrando como estas foram se modificando ao longo das versões.
A seção 7 faz uma análise sobre o que se consideram erros e acertos no processo transcorrido, como impactaram no resultado final, e vislumbra também o que poderiam ser passos posteriores.
A seção 8 encerra comentando o uso de Lua em aplicações comerciais, com destaque para o segmento de jogos, no qual Lua se tornou uma referência importante, e consolida as principais características da linguagem que favoreceram seu uso em jogos.
Comentários
Conhecer a história de uma linguagem de programação é uma experiência bastante elucidativa, não apenas para quem tem curiosidade sobre o assunto, mas também para quem deseja ter uma visão mais abrangente sobre a concepção atual. Neste sentido, o HOPL se mostra um importante palco para mostrar o desenvolvimento de importantes linguagens ao longo do tempo, e não é surpresa que Lua figure entre estas.
No evento, os autores da linguagens conseguem traçar os principais eventos que levaram ao cenário atual (na época, a versão mais recente era Lua 5.1), passando pelo contexto que levou à necessidade de criação da linguagem, o nascimento da linguagem (primeira versão) e o modo como a linguagem e suas implementações foram progredindo até chegar na versão 5.1.
A narração dos fatos mostra que a história de Lua é marcada pelo pragmatismo: a linguagem nasce de uma necessidade concreta, e é enriquecida por uma comunidade que começa a perceber o potencial da linguagem em cenários diversos. A adesão à simplicidade como valor fundacional, se por um lado serviu para tornar a implementação inicial viável, por outro se mostrou importante também para manter o ambiente enxuto e versátil, adaptável aos diversos cenários que começou a atender.
Cabe destacar que se Lua nasce para atender programas voltados principalmente para a engenharia e pesquisa científica, posteriormente ganha um grande destaque no desenvolvimento de jogos, um cenário bem diferente, mas que tira proveito das características que a linguagem consolidou.
Para o projeto Lu-a-Bá, as principais versões de interesse são desde a 5.1 em diante. No entanto, o projeto tem a premissa de que compreender o passado ajuda a compreender o presente, e neste sentido essa apresentação no HOPL III é um valioso registro, que ajuda a montar este “quebra-cabeça”.
Conteúdo relacionado
- Comparativos – Lua e outras linguagens
- Glossário – Açúcar Sintático
- Glossário – Ambiente
- Glossário – Ambiente Global
- Glossário – API C
- Glossário – Biblioteca padrão
- Glossário – Bloco
- Glossário – Co-rotina
- Glossário – Coletor de lixo
- Glossário – Depuração
- Glossário – Distribuição padrão
- Glossário – Escopo Léxico
- Glossário – Estado Lua
- Glossário – Fecho
- Glossário – Fluxo de execução
- Glossário – Interpretador Lua
- Glossário – Máquina Virtual
- Glossário – Metamétodo
- Glossário – Metatabela
- Glossário – Módulo
- Glossário – Pilha virtual
- Glossário – Programa hospedeiro
- Glossário – Tabela
- Glossário – Trecho
- Glossário – Userdata
- Glossário – Valores de primeira classe
- Glossário – Variável global
- Glossário – Variável local
- Glossário – Variável local externa
- Tutoriais – Por que Lua
- Versões – Versões de Lua