Fechar

Por dentro do DI: LabLua usa criatividade para estudar linguagens

Alunos trabalham em conjunto para fazer manutenção da linguagem Lua, criada no DI

Professor Roberto Ierusalimschy, arquiteto-chefe da Lua

A linguagem de impacto mais importante já criada no Brasil tem uma casa própria dentro do Departamento de Informática (DI): o LabLua, o laboratório responsável pela manutenção da Lua, hoje uma das linguagens em script mais importantes da computação e criada pelo próprio DI. Marcado pela inovação, o LabLua é responsável também pelo estudo de linguagens de programação. Mas, embora as pesquisas do laboratório sejam pautadas pelos olhos no futuro, para entender as origens da Lua precisamos nos voltar para a década de 1990.

A Lua é uma linguagem de programação totalmente projetada, implementada e desenvolvida no DI. O projeto é fruto de um esforço conjunto da equipe composta pelos professores Roberto Ierusalimschy, Waldemar Celes e Luiz Henrique Figueiredo (Instituto de Matemática Pura e Aplicada). Nascida no Tecgraf, que na época ainda se chamava Grupo de Tecnologia em Computação Gráfica da PUC-Rio, a Lua teve suas origens em uma demanda de mercado.

“Lua foi desenvolvida totalmente com base em necessidade. De início, a linguagem não era nem uma ideia acadêmica. Em um dos vários projetos que tínhamos com a Petrobras, fomos consultados porque eles precisavam de uma linguagem de configuração para a execução de um projeto. Pesquisamos, mas não encontramos nada que servisse para os planos que tinham. Então partimos para criar a nossa própria linguagem”, conta o professor Roberto Ierusalimschy, arquiteto-chefe da Lua.

Nos anos 1990, enquanto o acesso público à internet dava seus primeiros passos no Brasil, os professores vislumbravam as possibilidades que uma linguagem leve, rápida, portátil e livre poderiam oferecer para a nova realidade da computação. Lançada como open source (código aberto), a Lua pode ser usada para qualquer objetivo, até mesmo para propósitos comerciais. Depois de fazer download, o usuário pode fazer uso da Lua para seu projeto de maneira rápida e simples, sem custo ou burocracia.

Professor Roberto Ierusalimschy no até então Grupo de Tecnologia em Computação Gráfica da PUC-Rio

A virada de milênio foi agitada. A popularização da linguagem levou a sua aplicação em uma série de jogos de grande destaque como Grim Fandango (1998), Tibia (1997) e Grand Chase (2003). Como reconhecimento da relevância do trabalho dos pesquisadores do Tecgraf, o grupo responsável pela manutenção da Lua ganhou seu próprio laboratório, o LabLua, em 2005.

A decisão de tornar Lua open source ainda na sua fase inicial foi significativa para sua divulgação. Hoje, é uma das linguagens em script mais utilizadas em jogos. Lua é utilizada em uma série de games “Triple A”, a classificação utilizada para designar os jogos com maiores orçamentos e níveis de produção. Dessa forma, títulos jogados por milhões de pessoas ao redor do globo expõem ao público um trabalho gerado pela pesquisa do DI.

World of Warcraft, um dos maiores RPGs (Role Playing Game) on-line da história, Angry Birds e Roblox são apenas alguns dos clássicos que dependem da Lua para funcionar. Inicialmente, não havia pretensões para voltar o desenvolvimento da linguagem especificamente para jogos. Entender o por que de Lua ser tão útil para construir games motivou o laboratório a fazer algo como uma espécie de engenharia reversa: estudar a execução, para entender a teoria.

“Existem casos onde desenvolvedores fazem alguma coisa e depois descobrimos o porquê de dar tão certo. Por vezes nós pensamos ‘como aquele jeito de fazer um processo tal ficou tão mais fácil’? A partir daí, partimos para os estudos acadêmicos. O usuário da linguagem contribuiu muito para seu aprimoramento”, disse Roberto.

Foto: Divulgação/Rovio

E não são apenas os gamers que têm contato diário com a linguagem. Lua também é usada em várias aplicações industriais, como Adobe Photoshop Lightroom, um dos softwares de edição de imagem mais populares do mundo.

O futuro, tão presente nos trabalhos do laboratório, ainda guarda muitas possibilidades para quem trabalha no LabLua. Assim como no contexto que motivou suas pesquisas no início dos anos 1990, o laboratório olha para o futuro para desenvolver novas iniciativas. Entre elas, está a linguagem Pallene.

A ideia por trás do plano é preencher um espaço deixado por Lua. Por ser uma linguagem com ênfase em scripting, ela atua, geralmente, em parceria em engines programados em C ou C++. Já a Pallene é uma linguagem em desenvolvimento com o objetivo de facilitar esse processo. Um detalhe curioso: Pallene é o nome de uma das luas de Saturno, e por isso faz sentido que as duas sejam chamadas de linguagens complementares.

Ainda assim, a Lua segue atual. A linguagem é a porta de entrada no mundo da programação para jovens ao redor do mundo. Recentemente, uma das plataformas que permite usuários criarem seus próprios jogos, a Roblox, convidou o professor Ierusalimschy para uma edição da reunião mensal da empresa idealizadora da plataforma. O encontro, chamado de “TownHall”, contou com a presença de todo corpo empresarial, além do próprio CEO.

Foto: Divulgação/Roblox Corporation

“A Roblox é interessante porque você pode fazer seus próprios jogos e disponibilizar para outros, então é muito utilizado por adolescentes. Um garoto de 14 anos escreveu um livro inteiro sobre programação em Lua para Roblox, ensinando a fazer joguinhos na plataforma. Existe um mundo de usuários em Lua, e muitas vezes eles nem sabem!”, completou Roberto.

O LabLua representa a vanguarda na pesquisa de linguagens de programação no cenário nacional. Desenvolvida inteiramente na Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio), o impacto da Lua no desenvolvimento de aplicações representa a internacionalização da pesquisa de qualidade proporcionada pelos cientistas do DI. O mundo de possibilidades que a criatividade, aliada à Lua, pode trazer, torna o futuro imprevisível. Mas uma coisa é certa: quem vislumbrou possibilidades lá atrás, hoje conta com a colaboração gigante de milhões de usuários que fazem da evolução das linguagens de programação algo possível.

Categorias: Notícias