O mundo se rende à brasileira Lua

Apesar de não ser tão famosa como seus “concorrentes” Ruby, PHP e Java, a criação brasileira possui uma reputação muito boa entre desenvolvedores de todo o mundo.

O que há em comum entre jogos dos mais avançados da atualidade, os set-up boxes de TV digital, o Adobe Photoshop Lightroom e a Wireshark, ferramenta de análise de rede muito usada em data centers? A resposta é um belo tempero brasileiro: a linguagem Lua, desenvolvida por três professores da PUC-RJ há 16 anos. Apesar de não ser tão famosa como seus “concorrentes” Ruby, PHP e Java, a criação brasileira possui uma reputação muito boa entre desenvolvedores de todo o mundo e tem como principais destaques o código extremamente simples e a sua portabilidade.

De acordo com Roberto Ierusalimschy, professor associado do departamento de informática da PUC-RJ, a Lua surgiu sem nenhuma pretensão, dentro do TecGraf, grupo de tecnologia formado numa parceria entre a PUC-RJ e a Petrobras. Ela foi criada a partir da necessidade de integração de duas outras linguagens, a SOL (Simple Object Language) e a Del (Data-entry language). Ambas eram usadas em projetos de engenharia da Petrobras.

“Começamos com dois grupos de seis pessoas que estavam utilizando a Lua, que nem tinha versão 1.0 ainda. Publicamos um artigo numa revista voltada a desenvolvedores. Na época, em 1997, a Lucas Arts não estava contente com a Scum, usada para o desenvolvimento de games. Foi então que Tim Schafer, criador do game Grim Fandango, leu o artigo e resolveu desenvolver o jogo usando Lua. Foi nossa primeira grande aparição mundial”, afirma Ierusalimschy.

O mundo dos games
O Grim Fandango foi lançado em 1998 e foi um dos grandes sucessos da época. A partir daí, a Lua passou a estar presente em jogos dos mais avançados. Ela é muito eficiente para criar roteiros dos games, servindo como base para a C++, que entra no design mais avançado. Só para ter uma ideia da lista de games “Power by Lua”: World of Warcraft, GTA IV, Crysis e Street Fighter 4. “O problema é que a competição tecnológica entre as empresas que desenvolvem os games é muito grande. Pelo nosso acordo de licença, basta às empresas citarem que utilizam a linguagem, mas não efetivamente onde estão usando”, diz o professor.

A portabilidade é uma das principais vantagens da Lua. De acordo com Ierusalimschy, a linguagem não roda apenas em diferentes sistemas operacionais, mas também em dispositivos de todos os tipos, mesmo no hardware mais simples. “Ela pode rodar em um chip de um micro-ondas, ou um que controle robôs, passando por consoles de videogames e até computadores de alta capacidade”, afirma o criador da linguagem.

Tv Digital
Outra utilização da Lua que deve ganhar fama em breve é no Ginga, middleware que será usado nos setup-box de TV digital. Lá for a, decodificadores da Verizon e da Voodoo são equipados com a linguagem brasileira. Já o Sistema Brasileiro de TV digital deve ter opções de sistemas rodando em Java e em Lua.

Segundo o professor, a Lua é mais indicada para equipamentos menos sofisticados, e por isso com um preço mais baixo. O Java seria a melhor opção para aplicações mais robustas, com interação entre o sinal da TV e a internet. “Para programas mais complexos, acima de 500 mil linhas de código, é mais indicado usar o Java, que é uma linguagem mais robusta”, diz Ierusalimschy.

Simples de aprender
O professor conclui ressaltando a simplicidade de se trabalhar com a Lua, que é baseada numa arquitetura modular: um núcleo que acessa informações de bibliotecas básicas. Segundo ele, qualquer programador com um nível bom aprende rapidamente como trabalhar com a linguagem.

O primeiro livro sobre Lua só foi publicado em 2003. Até então, os profissionais baixavam o código puro e usavam apenas o manual. Hoje há uma série de publicações que fala sobre Lua, incluindo um livro de mil páginas sobre o uso da linguagem no World of Warcraft. “Estamos na versão 5.1 da Lua, que ganha atualizações de três em três anos. Até o final do ano pretendemos anunciar a versão 5.2”, conclui Ierusalimschy.

[Voltar]

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *