LUA: O Mundo Se Rende à Linguagem de Programação Brasileira
*Matéria publicada na Revista Info em 2009 com alterações no texto feitas por @DanielCruz33
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á 18 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 de alguns games “Power by Lua”:
- World of Warcraft,
- GTA IV,
- Crysis,
- Street Fighter 4,
- Sim City 4,
- Star Wars,
- Civilization V, dentre outros
Veja uma lista completa aqui.
“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.
Em junho de 2010, a Apple alterou os temos de uso do seu iOS SDK (pacote de desenvolvimento de aplicações para o sistema operacional da Apple, iOS), permitindo o uso da linguagem Lua. A partir daí houve um enxurrada de jogos desenvolvidos em Lua para iPhone, iPad e outros dispositivos. Dentre esses jogos está o já lendário Angry Birds, da Rovio Mobile, um dos jogos de maiores sucessos dos últimos tempos, com mais de 200 milhões de downloads.

Angry Birds é um dos jogos casuais mais bem sucedidos da história dos games. Com investimento inicial de 100 mil euros, estima-se que seu faturamento já tenha atingido a marca dos 50 milhões de dólares (incluindo mais de 8 milhões na loja no iTunes, 1 milhão por mês nas versões para Android além das vendas de produtos licenciados).
TV Digital
Outra utilização da linguagem Lua é no Ginga, middleware que é usado nos set-top-boxes de TV digital para prover a interatividade. Lá fora, decodificadores da Verizon e da Voodoo são equipados com a linguagem brasileira. Já o Ginga, que é referência mundial, suporta o desenvolvimento de aplicações em Java e em Lua.
O Ginga-NCL (subsistema declarativo do middleware que possui as linguagens NCL e Lua como base) já é recomendação da UIT (União Internacional de Telecomunicação) desde 2009 para toda e qualquer comunicação digital sobre IP.
Uma das características mais marcantes da linguagem Lua é o seu tamanho, ela ocupa poucos kbytes em memória, o que a torna uma linguagem rápida, leve e altamente embutível, casando-se perfeitamente em conversores de TV Digital que possuem limitações de processamento.
Segundo o professor, a linguagem 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.
A aplicabilidade da linguagem Lua em apps para TV Digital é imensa, indo desde jogos até aplicações de cunho social.

Desenvolvido em NCL e Lua para execução na TV Digital, o "GingaHero" é um jogo musical baseado nos jogos para console GuitarHero e RockBand. O jogo foi o ganhador na categoria "Jogos" do I Concurso Latino-Americano de Conteúdo para TV Digital Interativa realizado em 2010.

A premiada aplicação "TV Digital Social" desenvolvida pela regional da Dataprev do Rio Grande do Sul faz uso pesado da linguagem Lua. A aplicação tem o objetivo principal de ofereçer serviços públicos interativos da Previdência Social aos cidadãos através da tecnologia da TV Digital, contribuindo com o processo de inclusão social e digital do Brasil.
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.
Mas o quão fácil é de se aprender ?
Você já ouviu falar de Robert Nay ? Não !!! Apresento-lhes então ao garoto de 14 anos que pegou um livro de Lua na biblioteca da sua escola em Utah nos Estados Unidos e simplesmente desenvolveu um dos jogos mais baixados para iPhone na Apple Store: Bubble Balls.
Lançado em 29 de dezembro de 2010, o jogo teve mais de 2 milhões de downloads, destronando na época o todo poderoso Angry Byrds. O mais impressionante é que o jogo possui mais de 4 mil linhas de código, tudo utilizando o Corona SDK que é baseado em Lua.
A Linguagem Que Mais Cresceu No Último Ano
A utilização da linguagem Lua cresce a cada ano. Em 2006 ela ocupava a posição de número 50 dentre as linguagens mais populares do mundo. Em 2010 ela já ocupava a posição de número 20. Em maio de 2011 ela já estava na posição de número 12, deixando para trás linguagens tradicionais como Delphi e Pascal. A lista mais recente publicada em junho pela Tiobe mostra Lua na décima posição, à frente de linguagens bastante populares como Ruby e JavaScript. É de longe a linguagem que mais cresce no mundo da computação.

As Linguagens de Programção Mais Populares do Mundo. A linguagem Lua foi a que mais cresceu no último ano, saindo da posição 20 para a posição 10.
Livros
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 (veja aqui o Wiki World of Warcraft Lua). Infelizmente a linguagem é muito mais conhecida lá fora do que aqui no Brasil ao ponto de existirem apenas livros em inglês sobre a linguagem. Lá fora, Lua é um mito, aqui praticamente ninguém a conheçe.
Lua 5.1 Reference Manual
Programming in Lua, Second Edition
Lua Programming Gems
Atualmente Lua está em sua versão 5.1. A poucos dias (13 de junho de 2011) foi lançada a versão beta 5.2.
Para maiores informações acesse a página oficial do Projeto Lua.
Fonte Original: Revista INFO
Alterações Do Texto Original Por: @DanielCruz733
—————————————————————————————-














