Um ano atrás: Lua

Há pouco mais de um ano, conheci a linguagem Lua, principalmente devido à minha familiaridade com o SciTE. Na época, cheguei a fazer um bocado de coisas com Lua, mas acabei deixando-a em segundo plano, para usar python e um pouco de ruby.

Não que Lua seja pior que essas linguagens (na verdade, creio que não dá nem pra comparar), mas porque Lua não tinha (e acho que ainda não tem) muitas bibliotecas de fácil instalação. Bibliotecas, tem muitas, mas todas exigem recompilação de código e são um pouco chatas de instalar.

Nessa época, usava Lua, dentre outras coisas, para importar csv’s para bancos de dados, por exemplo.

Certa feita, precisei fazer um mirror do glossário de termos legislativos e orçamentários presentes no site da Câmara dos Deputados – apenas dos termos, para inserir em um banco de dados. Com um pouco de ajuda da simpática lista, cheguei no código abaixo:

http = require("socket.http")
local letras = {‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘h’,‘i’,‘j’,‘l’,‘m’,
‘n’,‘o’,‘p’,‘q’,‘r’,‘s’,‘t’,‘u’,‘v’,‘z’}
local pattern="<tr>.-<h4 class=sessaoPagina>(.-)</h4>.-<td>(.-)</td></tr>"

for __, element in pairs(letras) do
    local page = http.request("http://www2.camara.gov.br/glossario/ " .. element .. ".html")
    –print(page)
        for w, d in string.gfind(page,pattern) do
            print(w)
            print(d)
            print("————————————")
        end
end
 

Algumas particularidades:

  1. letras é uma tabela (array) em Lua. É a estrutura de dados mais usada – principalmente com metatabelas.
  2. pattern é um padrão em Lua. Lua não implementa expressões regulares – uma implementação típica toma cerca de 4000 linhas de código – mais que todas as bibliotecas padrão de lua juntas. (ver: http://www.lua.org/pil/20.1.html Surpreendentemente, os patterns, embora não tão completos quando regex, são muito poderosos. Você pode também baixar, compilar e instalar um módulo de regex.
  3. Observem uma das particularidades de Lua. Uma função pode retornar mais de um valor. Isso fica claro no trecho de string.gfind

Há um texto antigo meu, um pouco desatualizado, que você pode consultar também: Do php para Lua. Um case de sucesso no Brasil é a Fábrica Digital, que tem um CMS – o Publique! – desenvolvido em Lua.

Lua é atualmente a linguagem preferida para ser embarcada. Por exemplo, o editor de textos SciTE traz embutida a linguagem. É a a linguagem mais usada atualmente para scripting de jogos. E além de tudo, brasileira!

Só falta eu tomar vergonha na cara e retomar o projeto de tradução da documentação da linguagem…

This entry was posted in Lua and tagged , , , . Bookmark the permalink.

6 Responses to Um ano atrás: Lua

  1. Esquenta com a tradução, não, vey!

    Deixa que já estou fazendo isso. =)

    Aliás, ótimo post! Muito claro.

    []‘s
    Rodrigo Cacilhas

  2. Nunca nem pesquisei sobre Lua, mas pelo que estou vendo no código também é bastante didática, como as outras que vc citou. ;)

  3. hehehe..

    depende de quem escreve..

    Rapaz.. Nessa época, eu cheguei a fazer um protótipo de ORM (algo do tipo o Active Record) pra Lua. Olhando o código essa semana, fiquei bem assustado com a aberração :)

  4. Estou marcando presença aqui também…

    Ótimo post!

  5. munir [Visitante] says:

    cara, parabéns pelo post.
    sou completamente leigo no assunto, talvez por isso tenha apanhado tanto de programadores e agências no desenvolvimento do meu site. nas busca de solucionar essa minha questão, encontrei hj um programador freela para fazer o trabalho, mas ele não trabalha com php, e sim com Lua. Por conta disso me propos fazer o meu site (q tbém é normalmente resolvido em php) em Lua. Já tive muitos problemas, fico pensando se não estou entrando em outra roubada. Meu site tem busca, cadastro, gerenciador de conteudo, link de pagamento, etc…
    Na sua opinião, vc acha que posso utilizar a linguagem Lua para um site desse sem que a linguagem em si me traga problemas?
    Obrigado.

  6. Caro Munir,

    Não há qualquer problema tecnológico com Lua – aliás, pessoalmente acho que você só teria a ganhar tecnologicamente migrando de PHP para Lua (a menos que use Xavante, aí é um tiro no pé).

    Porém há alguns pontos MUITO importantes que você DEVE considerar.

    — Não é simples conseguir hospedagem para Lua, pelo menos não neste momento. Se você precisar mudar de servidor, vai ganhar uma dor de cabeça.

    — Para migrar uma aplicação de PHP para Lua ela terá praticamente de ser reescrita do zero. Você realmente acha que vale a pena jogar fora uma aplicação funcionando por uma que ainda nem existe – você não sabe se vai funcionar ou não – por causa de um único programador que, ainda por cima, é freelancer?! Pode sumir no mundo de repente e deixar você na mão sem outro programador Lua à disposição! (Enquanto programador de PHP dá igual chuchu na serra…)

    Sou programador Lua também, mas deixo aqui estas observações para você ponderar.

    []‘s
    Cacilhas, La Batalema

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>