Home » Blog do Daniel

LUA: O Mundo Se Rende à Linguagem de Programação Brasileira

16 junho 2011 5.169 views 7 Comentários

*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.

Robert Nay em uma entrevista para a TV americana.

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

O livro custa $13.45 dólares na Amazon

Compre aqui.

Programming in Lua, Second Edition

O livro custa $26.37 dólares na Amazon

Compre aqui.

Lua Programming Gems

O Livro custa $29.33 dólares na Amazon

Compre aqui.

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.

http://www.lua.org/

Fonte Original: Revista INFO

Alterações Do Texto Original Por: @DanielCruz733

—————————————————————————————-

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
  • Joeconno

    estou buscando programadores freelance para projetos em lua/corona dsk… email para joeconno at gmail

    [Reply]

  • http://www.facebook.com/profile.php?id=100003189544201 Sullivan Flyork

    O Brasil já tem um livro de linguagem Lua. Apesar de simples e básico o material é agradável de se ler.
    Veja em http://www.clubedeautores.com.br/book/122264–Lua__Programacao_de_Computadores 

    [Reply]

  • Elias Tandel Barrionovo

    Esse índice Tiobe está um pouco desatualizado; o desse mês mostra Lua em 21º [1]. Claro que esse tipo de coisa não significa nada sobre a qualidade de uma linguagem (só ver que PHP é uma das mais populares…).

    [1] http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

    [Reply]

    O Aprendiz Verde Reply:

    Cada mês eles soltam um novo índice, na época que a matéria foi escrita Lua estava na posição 10. Acho que a qualidade nem é a questão do índice e sim o seu uso. No final das contas o que interessa é o uso e a penetração da linguagem.

    [Reply]

  • Khikgiu

    porrrrrraaaa pq nao usam isso kai no brasil deixam tudu pros gringos ganahr dinheiro com Lua!? 

    [Reply]

  • http://www.facebook.com/fabiano.wallaxx Fabiano Wallaxx

    O fida do Brasil é que essa linguagem poderosíssima com tanta capacidade sendo deixada de lado pra nego puxar saco dos gringos com o Java.Material bom em português tbm nem se acha.

    [Reply]

  • peq42

    Atualize o texto.Hoje ela é a 19ª linguagem mais usada.E ja foram feitas várias atualizações nela.

    [Reply]