Lua - Linguagem de Programação

 

Descobrindo Lua


   Este documento não é uma apresentação completa nem oficial de Lua.
   Ele se propõe apenas a facilitar a vida de quem não conhece bem Lua ainda e quer saber mais sobre essa tal linguagem tão falada.
   O documento está em constante evolução e pode conter temporariamente trechos sendo editados de forma colaborativa e remota.


 
O que é Lua ?

  Uma breve descrição de Lua pelos seus criadores: http://www.lua.org/portugues.html
 
  O site oficial de Lua é o melhor ponto de partida para uma visão geral da linguagem, suas aplicações e o que a comunidade oferece: http://www.lua.org/

  Uma relação de grandes empresas e projetos que utilizam Lua: http://www.lua.org/uses.html

  Uma compilação de impressões de gente famosa sobre Lua: http://www.lua.org/quotes.html

  Artigos publicados pela equipe de criação de Lua: http://www.lua.org/docs.html#papers

  Aspectos legais e detalhes da licença de Lua: http://www.lua.org/license.html
  Lua é Software Livre e de Código Aberto


Outras descrições de Lua:
  Wikipedia: http://en.wikipedia.org/wiki/Lua_(programming_language)







Documentação sobre Lua 


Documentação Oficial produzida pela equipe de desenvolvimento de Lua:

   Os documentos oficiais produzidos pela equipe de desenvolvimento Lua estão em: http://www.lua.org/docs.html

   Os manuais completos das várias versões e em vários idiomas estão disponíveis on-line em http://www.lua.org/manual/

   O livro Programming in Lua, de Roberto Ierusalimschy (em inglês), sobre a versão anterior (Lua 5.0) está disponível online na íntegra em http://www.lua.org/pil/.

   A segunda ediçao do livro atualizada para Lua 5.1 só está disponível para a venda no exterior (US$ 26,37 + frete).
   O Reference Manual de Lua 5.1 só está disponível para venda no exterior (US$ 13,59 + frete)
   É possível eventualmente comprar o livro (~R$ 50,00), o Reference Manual (~R$15,00) e o Lua Programming Gems (abaixo, ~R$ 50,00) aqui no Brasil. Checar com o Dado em dadosutter@esp.puc-rio.br

   Há versões oficiais do livro também em Alemão, Coreano e Chinês
   Uma tradução para Português está pronta e sendo revisada pela equipe de Lua para aprovação. Não há previsão de publicação desta versão ainda.


Outros livros sobre Lua:

  • Lua Programming Gems
    edited by L. H. de Figueiredo, W. Celes, R. Ierusalimschy
    Lua.org, December 2008
    ISBN 978-85-903798-4-3








        em Alemão,
        Verlag: Skript Verlag Kuehnel (September 2009)
        ISBN-10: 3907857127 ISBN-13: 978-3907857120

Mat Buckland
ISBN-10: 1556220782  ISBN-13: 978-1556220784





O texto "Uma Introdução à Programação em Lua" escrito pelo Roberto para
o curso introdutório de Lua ministrado no JAI 2009 está disponível em
       http://www.lua.org/doc/jai2009.pdf





Documentação mantida pela comunidade de usuários e desenvolvedores Lua:


Tutoriais em Português:
   
Blog versão_digital():  http://versaodigital.blogspot.com/
   Por Bernardo Loureiro, Cid Boechat, Leandro Mello e Luiz Eduardo. (Obrigado !)


Tutoriais em Inglês:
   do LuaUsers:   http://lua-users.org/wiki/LuaTutorial
   do Russel Long (usuário): http://www.devmaster.net/wiki/Lua_(Tutorial)
   Lua para Sony Playstation: http://www.evilmana.com/tutorials/lua_tutorial_01.php


LuaUsers:

Portal, em inglês, com excelente documentação mantida pela comunidade Lua.
Sitehttp://lua-users.org/
Wikihttp://lua-users.org/wiki/


LuaForge:
Portal e Repositório de projetos Open Source em Lua, em inglês.
Segue o estilo do SourceForge mas apenas com projetos em Lua.
Sitehttp://luaforge.net/





Listas de Discussão 

Lista Lua BR:
Lista de discussão de usuários de Lua em Português.
Os criadores da linguagem participam ativamente da lista.
Sitehttp://groups.google.com/group/lua-br


Lua List:
Lista oficial de discussão de usuários de Lua.
Em inglês.
Sitehttp://www.lua.org/lua-l.html







Eventos de Lua


Lua Workshop 2005:
San Diego, CA, USA
Patrocinado pela Adobe Inc.
Sitehttp://www.lua.org/wshop05.html



Lua Workshop 2006:
Venlo, Holanda
Patrocinado pela Océ
Sitehttp://www.lua.org/wshop06.html



Lua no History of Programing Languages III - 2007:
San Diego, CA, USA
Sitehttp://www.universia.com.br/noticia/materia_dentrodocampus.jsp?not=37561
HOPL III - http://research.ihost.com/hopl/HOPL-III.html


Lua Workshop 2008:
Washington, DC, USA
Sitehttp://www.lua.org/wshop08.html


Lua Workshop 2009:
Rio de Janeiro, RJ, Brasil
PUC-Rio, dias 6 e 7 de outubro, precedendo o SBGames 2009
Os vídeos do evento estarão disponíveis em breve, no Portal PUC-Rio Digital
Os slides das palestras estão disponíveis no site oficial do evento.
Site: http://www.lua.org/wshop09.html













Baixando e Utilizando Lua


Baixando Lua:
  Para usar Lua não é preciso compilar todo o projeto do zero. Há versões prontas para uso em várias plataformas, mantidas no projeto Lua Binaries.
  Clique na opção downloads e baixe a versão correspondente à sua plataforma.

O pacote de Lua não necessita de nenhuma instalação, bastando unzipar o pacote para um diretório qualquer à escolha.

  Para Windows:
     Baixe o .ZIP da última versão, identificada como x86 Executables.
     Uma sugestão simples é unzipar onde os programas são geralmente instalados, em C:/Program Files/Lua
     Veja também abaixo, a opção interessante do projeto LuaForWindows.

  Para Ubuntu Linux:
    Procurar no Synaptic Package Manager por Lua 5.1
    Selecionar o pacote Lua5.1, pode ser interessante selecionar o Lua5.1-doc para ter a documentação no PC (man, etc).
   
  Para outras distros de Linux:
     Para distros baseadas no gerenciador de pacotes apt-get, Lua pode ser instalada através da linha de comando: sudo apt-get install lua5.1

  Para Macintosh:
     http://lua.darwinports.com/
 
  Há ainda inúmeras outras versões de binários executáveis, para o iPhone, para Android, para Sony Play Station e muitas outras plataformas.





Ambientes de desenvolvimento para Lua

   O desenvolvimento em Lua se faz muito bem apenas com um editor de texto. Mas, pra quem prefere, algumas ferramentas e ambientes mais completos de desenvolvimento estão disponíveis.

## documentar
http://lua-users.org/wiki/LuaAddons



Integrated Development Environments (IDEs):

## Documentar.................

LuaForWindows: 
   ## Detalhar ....
   http://luaforge.net/projects/luaforwindows/ 
   

Eclipse:
Eclipse + LuaEclipse
Em Linux http://luaeclipse.luaforge.net/manual.html#installation




Editores de texto com suporte a Lua:
   http://lua-users.org/wiki/LuaEditorSupport






Bibliotecas e Frameworks para desenvolvimento em Lua


LuaRocks:  
  LuaRocks is a deployment and management system for Lua modules.
  LuaRocks allows you to install Lua modules as self-contained packages called "rocks", which contain also version dependency information. This information is used both at install time, so that when one rock is requested all rocks it depends on are also installed, and at run time, so that when a module is required, the correct version is loaded.
  LuaRocks supports both local and remote rocks repositories. You can download and install LuaRocks on Unix and Windows.
  LuaRocks is free software and uses the same license as Lua 5.1.
  Site: http://luarocks.org e http://luarocks.org/br
  Rocks: http://luarocks.luaforge.net/rocks/


Kepler:
  
Framework para desenvolvimento de aplicações web em Lua.
  Muito completo e maduro, inclui bibliotecas variadas que podem ser usadas em outras aplicações (não web).
  Site: http://www.keplerproject.org/ e http://www.keplerproject.org/br


eLua - Embedded Lua: 
   Nosso Framework de desenvolvimento Lua para o mundo embedded.
   O projeto oferece Lua para diversas plataformas e arquiteturas diferentes de microcontroladores.
   A homepage do projeto está em http://www.eluaproject.net


KIPP - Kepler for Cisco IP Phones:
   
Nosso Framework de desenvolvimento de aplicações para Telefonia IP em redes Cisco.
   KIPP = Kepler for IP Phones
   O KIPP é desenvolvido por nossa equipe no Led Lab, na PUC-Rio (dadosutter@esp.puc-rio.br)


IUP - Portable Lua Interface:
  Biblioteca para desenvolvimento de aplicações Desktop em Lua.
  Implementa objetos de interface com o usuário comuns, como janelas, menus, botões, checkboxes etc......
  Site: http://www.tecgraf.puc-rio.br/iup


wxLua - wxWidgets for Lua;
  wxLua is a set of bindings to the C++ wxWidgets cross-platform GUI library for the Lua programming language. You can write complex, graphical, interactive programs with wxLua to develop and deliver your software with the programming ease of an interpreted language like Lua. Nearly all of the functionality of wxWidgets is exposed to Lua, meaning that your programs can have windows, dialogs, menus, toolbars, controls, image loading and saving, drawing, sockets, streams, printing, clipboard access...
  Site: http://wxlua.sourceforge.net/

GINGA - Lua na TV Digital brasileira:
  
Framework para desenvolvimento de aplicações para TV Digital
  Com dois paradigmas de programação, um declarativo em Java e um procedural em NCL, linguagem nativa de Ginga que é básicamente Lua.
  Site: http://www.ginga.org.br/


LHF Tools:
  Bibliotecas do Luiz Henrique Figueiredo, membro da Equipe de Desenvolvimento de Lua.
   Site: http://www.tecgraf.puc-rio.br/~lhf/ftp/lua


PLua - Lua no PalmOS:
  Lua for PalmOS
  Limitado à Lua 5.0. O projeto não é de código aberto e foi interrompido por causa do final do PalmOS. Mas a última versão é funcional e bastante poderosa para aplicações em PalmOS.
  Lista: http://tech.groups.yahoo.com/group/plua/


pbLua - Lua no Lego:
  Lua for Lego NXT
  Site: http://www.hempeldesigngroup.com/lego/pbLua/


FSUIPC com plugin Lua - Lua for Microsoft Flight Simulator:
   Lua para o Microsoft Flight Simulator
   Infos: http://forums.simflight.com/viewtopic.php?f=54&t=73176


LFSLua -  Lua in Live for Speed:
   Infos: http://www.lfsforum.net/showthread.php?t=19832  


Outras bibliotecas e ferramentas interessantes:
   Tecgraf tools: http://www.tecgraf.puc-rio.br/~lhf/ftp/lua/





Produtos Interessantes em Lua


   Uma relação de projetos e produtos que usam Lua, conforme mencionado acima, está em http://www.lua.org/uses.html

   Podemos destacar ainda alguns projetos interessantes para usos gerais:

Sputnik:
  Sputnik é uma Wiki escrita em Lua.
  É também uma plataforma para a construçao de um vasto número de aplicações web semelhantes às Wikis.
  Sputnik se baseia nas potencialidades de Lua como linguagem de extensão.
  Site: http://sputnik.freewisdom.org/en/Sputnik

  
LuaEclipse:
  Plugin de Lua para a plataforma de desenvolvimento Eclipse
  Facilita o desenvolvimento de aplicações Lua no IDE Eclipse, com facilidades como Code Completition, Code Profiling (LuaProfile), Inline Documentation (LuaDoc) etc...
  Site: http://luaeclipse.luaforge.net/


Online Lua Demo:
   Uma web aplication onde se pode programar, visualizar programas já feitos e executar programas em Lua, sem a necessidade de instalar nada em sua máquina.
   Site: http://www.lua.org/cgi-bin/demo




Games: (fonte www.lua.org)


Outras Aplicações:






Outros Links Relacionados

Ranking atual de Lua no TIOBE:
   O índice da comunidade de programação TIOBE representa uma indicação de popularidade das linguagens atuais de programação.
   http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html






Compilando e Modificando Lua

  Se você vai baixar o fonte do projeto para compilação e eventuais alterações, a página para downloads está em http://www.lua.org/download.html
  Temos um GDoc (não muito atualizado) sobre a compilação de Lua em Ubuntu e instruções detalhadas para todos os ambientes podem ser encontradas no arquivo INSTALL do pacote Lua.
   O build de Lua é bem simples, baseado em make.


















Marcadores: , , , , ,