O que é Lua?Lua é uma linguagem de programação poderosa, eficiente e leve, projetada para estender aplicações. Ela permite programação em vários estilos: procedural, orientada a objetos, funcional, orientada a dados, e descrição de dados. Lua combina sintaxe procedural simples com poderosas construções para descrição de dados baseadas em tabelas associativas e semântica extensível. Lua é tipada dinamicamente, é executada via interpretação 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?Os principais textos em português sobre Lua são o livro Programando em Lua e o manual de referência, que é a definição oficial da linguagem Lua.
Temos também alguns textos introdutórios:
Esta página é apenas um resumo do site de Lua. O resto do site, incluindo a maior parte da documentação técnica sobre Lua, está em inglês pois Lua é software de exportação e é usada em vários produtos e projetos no mundo todo. A comunidade de Lua é internacional; a nossa lista de discussão tem membros de vários países. 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. Ambas as listas são espaços abertos para todos os interessados na linguagem Lua, desde aqueles que já usam Lua até os que têm 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. Lua.org é Associada da Amazon e recebemos comissões por compras qualificadas feitas por meio de links neste site. |
Por que escolher Lua?Lua é linguagem estabelecida e robustaLua é 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ápidaLua 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 entre 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átilLua é 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é em mainframes IBM. Lua é embutívelLua é 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 e 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 é pequenaIncluir Lua numa aplicação não aumenta quase nada o seu tamanho. O pacote de Lua 5.5.1, contendo o código fonte e a documentação, ocupa 390K comprimido e 1.5M descompactado. O fonte contém cerca de 32000 linhas de C. No Linux de 64 bits, o interpretador Lua contendo todas as bibliotecas padrão de Lua ocupa 293K e a biblioteca Lua ocupa 484K. Lua é livreLua é 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. É só baixar e usar. Lua tem importância globalLua é a única linguagem de programação com impacto mundial desenvolvida fora do primeiro mundo. Em 2007, o projeto e a evolução de Lua foram apresentados 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 (em 1978, 1993, 2007, 2021) e apresenta linguagens de impacto. A escolha de Lua para a HOPL III é um importante reconhecimento do seu impacto mundial. Em 2011, Lua ganhou o Front Line Award da Game Developers Magazine na categoria ferramentas de programação. Em 2017, Lua foi exibida na exposição Inovanças - Criações à Brasileira, no Museu do Amanhã no Rio de Janeiro, como uma das "criações pensadas e desenvolvidas por brasileiros que transformam vidas no país e no mundo". Veja o vídeo de abertura e leia o catálogo. Veja o video sobre Lua. Em 2022, Lua recebeu a Medalha Pedro Ernesto, a comenda máxima da cidade do Rio de Janeiro. |