A Linguagem de Programação Lua

english · o que é · por que usar · de onde vem · como saber mais · como contribuir · como participar · como apoiar

O que é Lua?

Lua é uma linguagem de programação poderosa, rápida e leve, projetada para estender aplicações.

Lua combina sintaxe simples para programação procedural com poderosas construções para descrição de dados baseadas em tabelas associativas e semântica extensível. Lua é tipada dinamicamente, é interpretada a partir de bytecodes para uma máquina virtual baseada em registradores, e tem gerenciamento automático de memória com coleta de lixo incremental. Essas características fazem de Lua uma linguagem ideal para configuração, automação (scripting) e prototipagem rápida.

Quais as origens de Lua?

Lua é inteiramente projetada, implementada e desenvolvida no Brasil, por uma equipe na PUC-Rio (Pontifícia Universidade Católica do Rio de Janeiro). Lua nasceu e cresceu no Tecgraf, o então Grupo de Tecnologia em Computação Gráfica da PUC-Rio. Atualmente, Lua é desenvolvida no laboratório LabLua do Departamento de Informática da PUC-Rio.

Como saber mais sobre Lua?

A maior parte da documentação técnica sobre Lua está em inglês. O principal documento em português é o manual de referência, que é a definição oficial da linguagem Lua. Além do manual, temos também alguns textos introdutórios:

Temos ainda slides de palestras e algumas reportagens sobre Lua.

Esta página é apenas um resumo do site de Lua. O resto do site está em inglês pois Lua é software de exportação e está sendo usada em vários produtos e projetos no mundo todo. A comunidade de Lua é realmente internacional: menos de 10% dos quase 3000 assinantes da nossa lista de discussão são do Brasil. Participe também da lista Lua BR em português. Todos são bem-vindos!

Como contribuir para a comunidade Lua?

Você pode contribuir para a comunidade de várias maneiras: respondendo perguntas sobre Lua (nas listas Lua BR e lua-l, no chat, em stackoverflow e pt.stackoverflow, etc.), colaborando no wiki, respondendo a nossa pesquisa, adicionando um logo de Lua na sua página da web, e escrevendo e compartilhando ferramentas e bibliotecas para Lua.

Como participar da comunidade Lua?

Você pode participar da comunidade Lua se inscrevendo na lista de discussão Lua BR, cujo tráfego é em português, ou na lista lua-l, cujo tráfego é em inglês. Lua BR é um espaço aberto para todos os interessados na linguagem Lua, desde aqueles que já usam Lua até os que tem apenas curiosidade de saber mais sobre a linguagem. Todos são bem-vindos!

Participe de Lua BR e dê sugestões de como podemos atingir efetivamente a comunidade Lua no Brasil.

Você pode conhecer pessoalmente parte da comunidade Lua internacional participando de um Lua Workshop.

Como apoiar o projeto Lua?

Você pode apoiar o projeto Lua comprando livros publicados por Lua.org e fazendo uma doação.

[compre na Lua Bookstore da Amazon]

Por que escolher Lua?

Lua é linguagem estabelecida e robusta

Lua é usada em muitas aplicações industriais (e.g., Adobe's Photoshop Lightroom), com ênfase em sistemas embutidos (e.g., o middleware Ginga para TV digital) e jogos (e.g., World of Warcraft e Angry Birds). Lua é atualmente a linguagem de script mais usada em jogos. Lua tem um sólido manual de referência e existem vários livros sobre a linguagem. Várias versões de Lua foram lançadas e usadas em aplicações reais desde a sua criação em 1993.

Lua é rápida

Lua tem uma merecida reputação de ótimo desempenho. Outras linguagens de script aspiram ser "tão rápidas quanto Lua". Vários benchmarks mostram Lua como a linguagem mais rápida dentre as linguagens de script interpretadas. Lua é rápida não só em programas específicos para benchmarks, mas no dia-a-dia também. Porções substanciais de aplicações grandes são escritas em Lua.

Se você precisar de ainda mais velocidade, experimente LuaJIT, uma implementação independente usando um compilador just-in-time.

Lua é portátil

Lua é distribuída via um pequeno pacote e compila sem modificações em todas as plataformas que têm um compilador C padrão. Lua roda em todos os tipos de Unix e Windows, e também em dispositivos móveis (usando Android, iOS, BREW, Symbian, Windows Phone), em microprocessadores embutidos (como ARM e Rabbit, para aplicações como Lego MindStorms), e até mainframes IBM.

Lua é embutível

Lua é uma engine rápida e pequena que você pode facilmente embutir na sua aplicação. Lua tem uma API simples e bem documentada que permite uma integração forte com código escrito em outras linguagens. É simples estender Lua com bibliotecas escritas em outras linguagens. Também é simples estender programas escritos em outras linguagens com Lua. Lua é usada para estender programas escritos não só em C e C++, mas também em Java, C#, Smalltalk, Fortran, Ada, Erlang, e mesmo outras linguagens de script, como Perl and Ruby.

Lua é poderosa (e simples)

Um conceito fundamental no projeto de Lua é fornecer meta-mecanismos para a implementação de construções, em vez de fornecer uma multidão de construções diretamente na linguagem. Por exemplo, embora Lua não seja uma linguagem puramente orientada a objetos, ela fornece meta-mecanismos para a implementação de classes e herança. Os meta-mecanismos de Lua trazem uma economia de conceitos e mantêm a linguagem pequena, ao mesmo tempo que permitem que a semântica seja estendida de maneiras não convencionais.

Lua é pequena

Incluir Lua numa aplicação não aumenta quase nada o seu tamanho. O pacote de Lua 5.2.3, contendo o código fonte e a documentação, ocupa 246K comprimido e 960K descompactado. O fonte contém cerca de 20000 linhas de C. No Linux, o interpretador Lua contendo todas as bibliotecas padrões de Lua ocupa 182K e a biblioteca Lua ocupa 244K.

Lua é livre

Lua é software livre de código aberto, distribuída sob uma licença muito liberal (a conhecida licença MIT). Lua pode ser usada para quaisquer propósitos, incluindo propósitos comerciais, sem qualquer custo ou burocracia. Basta fazer um download e usá-la.

Lua tem importância global

Lua é a única linguagem de programação de impacto desenvolvida fora do primeiro mundo.

O projeto e a evolução de Lua foram apresentados em 2007 na HOPL III, a 3a Conferência da ACM sobre a História das Linguagens de Programação. Essa conferência ocorre a cada 15 anos (a primeira foi em 1978 e a segunda em 1993) e somente poucas linguagens são apresentadas a cada vez. A escolha de Lua para a HOPL III é um importante reconhecimento do seu impacto mundial.

Mais recentemente, Lua ganhou o Front Line Award 2011 da Game Developers Magazine.


Last update: Thu Nov 27 07:03:43 BRST 2014