Baixe o app para aproveitar ainda mais
Prévia do material em texto
LINGUAGEM DE PROGRAMAÇÃO LUA Karoline Reinert Desenvolvimento de Aplicações na WEB (TES04) Departamento de Ciência da Computação (DCC) Centro de Ciências Tecnológicas (CCT) Universidade do Estado de Santa Catarina (UDESC) Joinville – SC – Brasil (krlreinert@hotmail.com) Abstract This paper presents a bit about programming in LUA, its history, evolution, applications, advantages and disadvantages that this is a scripting language widely used in diverse areas ranging from software for embedded systems to large applications like Adobe Photoshop Lightroom. LUA is currently the most widely used language for programming games and is part of the GINGA standard for the Brazilian System of Digital TV. LUA is also widely used in security, and the scripting language embedded in tools such as Wireshark, nmap and snort. His library was written entirely in ANSI C, is a very portable tool the same source code can be compiled on any platform. Quickly became part of the list of 30 most used languages in the world, besides the presence of major companies like Incor, Intel, Microsoft and NASA, for example. Keywords: Programming, LUA Resumo Este trabalho apresenta um pouco sobre a programação em LUA, sua história, evolução, aplicações, vantagens e desvantagens desta que é uma linguagem de scripts amplamente usada nas mais diversas áreas, desde software para sistemas embarcados, até grandes aplicativos como o Adobe Photoshop Lightroom. Lua é a linguagem mais usada atualmente para a programação em jogos e é parte do padrão GINGA para o Sistema Brasileiro de TV Digital. Lua também é muito usada na área de segurança, sendo a linguagem de script embutida em ferramentas como Wireshark, snort e nmap. Sua biblioteca foi escrita por inteiro em ANSI C, é uma ferramenta muito portátil o mesmo código-fonte pode ser compilado em qualquer plataforma. Passou a fazer parte rapidamente da lista das 20 linguagens mais utilizadas no mundo, além da presença em empresas importantes como o Incor, Intel, Microsoft e NASA, por exemplo. Palavras Chaves: Programação, LUA 1. INTRODUÇÃO A linguagem de programação Lua tem conquistado os desenvolvedores de programas e aplicações aos poucos, graças a sua simplicidade, leveza e rapidez. Lua é uma linguagem de programação de extensão projetada para dar suporte à programação procedimental em geral e que oferece facilidades para a descrição de dados. A linguagem também oferece um bom suporte para programação orientada a objetos, programação funcional e programação orientada a dados. Lua foi planejada para ser utilizada por qualquer aplicação que necessite de uma linguagem de script leve e poderosa. Por ser uma linguagem de extensão, Lua não possui a noção de um programa principal: ela somente funciona embarcada em um programa cliente anfitrião, chamado de programa hospedeiro. Esse programa hospedeiro pode invocar funções para executar um pedaço de código Lua, pode escrever e ler variáveis Lua e pode registrar funções C para serem chamadas pelo código Lua. 2. HISTÓRIA Lua é a única linguagem de programação genuinamente brasileira que foi aceita no mundo todo. Foi criada em 1993 por Roberto Ierusalimschy, Luiz Henrique de Figueiredo e Waldemar Celes, desenvolvedores do TecGraf (Grupo de Tecnologia em Computação Gráfica) da PUC-Rio, a princípio, para ser usada em um projeto da Petrobras. Mas devido à sua eficiência, clareza e facilidade de aprendizado, passou a ser usada em diversos ramos da programação, como no desenvolvimento de jogos, controle de robôs, processamento de texto, entre outros. Também é freqüentemente usada como uma linguagem de propósito geral. Versões da Lua antes da versão 5.0 foram liberadas sob uma licença similar à licença BSD. A partir da versão 5.0, Lua foi licenciada sob a licença MIT. Assemelha-se com Python, Ruby e Icon, entre outras. Lua tem sido usada em várias aplicações, tanto comercial como não-comercial. A NASA até 2003 utilizava Lua para controlar o armazenamento de gazes explosivo em ônibus espaciais. E aqui mesmo no Brasil, o instituto do coração, INCOR, radicalizou e desenvolveu todo seu sistema WEB para controle de suas UTIs em Lua. 2.1. Evolução 1993: Lua 1.0, aconteceu a primeira discussão pública sobre Lua, dada no VII Simpósio Brasileiro de Engenharia de Software; 1994: Lua 1.1, esta foi a primeira versão liberada para o público; 1995: foi liberada a versão 2.2; 1996: liberada a versão 2.4; 1997: liberada a versão 3.0. Começa aplicações para jogos; 1998: liberada a versão 3.1; 1999: liberada a versão 3.2.1 (com espelhos nos EUA e na Alemanha); 2000: liberada a versão 4.0 (com novos espelhos, no Japão e na Dinamarca); 2001: liberada a versão 4.1 (com novo espelho, agora a Rússia); 2002: liberada a versão 5.0(beta). Lua Biblioteca Design Workshop realizado na Universidade de Harvard; 2003: Lua se destaca como a linguagem mais popular para criação de scripts de jogos. É lançado o livro “Programming in Lua”. Liberada a versão 5.0.1; 2004: Liberada a versão 5.1; 2005: liberada a versão 5.1; 2006: liberada a versão 5.1.1. Feita a tradução do livro “Programming in Lua” para o alemão; 2007: Feita a tradução coreana do livro “Programming in Lua”. Artigo sobre LuaView aparece em LabVIEW Mundial (em italiano). Referência manual disponível em português e espanhol; 2008: publicado o livro “Introdução a Programação Lua” em japonês. Referência manual disponível em russo. Tradução chinesa do livro “Programming in Lua”. Lua Workshop 2008 realizado na Universidade George Washington em Washington. Publicado o livro “Lua Programação Gems”; 2009: Referência manual disponível em húngaro. Google apresenta o Android Scripting Ambiente com o apoio de Lua. Lua Workshop 2009 realizada realizada no Rio de Janeiro. Criada uma versão brasileira da lista de discussão sobre Lua; 2010: Adobe e Social Media Press junta-se a Lua no programa de patrocínio corporativo. Liberada a versão 5.2 (alfa); 2011: Referência manual disponível em alemão. 3. LINGUAGEM DE PROGRAMAÇÃO LUA Lua foi desenvolvida inicialmente para ser embutida em aplicações escritas em outras linguagens, de forma que pudesse estendê-las. Pode ser usada para descrever dados, definir configurações e comportamentos do núcleo da aplicação escrito em outra linguagem. Lua também fornece mecanismos para ser estendida. Com a evolução da linguagem, Lua passou a ser vista também como uma linguagem de script auto- suficiente e passou a ser usada para desenvolver diversas aplicações, mantendo as características de oferecer recursos poderosos para descrever dados e ser facilmente extensível. A linguagem Lua é utilizada hoje em países como EUA, Japão, Dinamarca e Alemanha entre outros na criação de scripts, aplicação de games como os da LucasArt Entertainment, controle de robôs e testes de equipamentos. Para a Web, a Lua tem sido muito útil para a intercomunicação de bases de dados em sites dinâmicos. O código da linguagem é modular, podendo cada módulo ser eliminado no caso de a aplicação não precisar dele, o que deixa qualquer aplicação mais leve de se carregar. O maior atrativo para aquele que trabalhará com a linguagem é a possibilidade de construir um código através de meta-mecanismos, sem precisar despejar o conteúdo da linguagem propriamente dito, o que facilita a vida do programador e economiza tempo na conclusão do projeto. A prática de como a linguagem LUA pode ajudar o programador, digamos que todo um trabalho que poderia ser feito anteriormente em ASP para rodar em servidores Windows seja feito utilizando o servidor de páginas CGI/Lua (que é para a linguagem Lua o que o IIS é para o ASP) para escrever as páginas dinâmicas e o LuaSQL para o acesso aos bancos de dados.Os beck-ends seriam compilados em ANSI C ou em Lua pré-compilado. Se, um dia, for necessário que os servidores Windows sejam trocados por Solaris, todo o trabalho não teria que ser refeito para a nova plataforma, bastando apenas recompilar o código C e configurar o novo Web Server. A principal diferença em trabalhar com Lua é que esta pode ser integrada a outros programas. O interesse das empresas por Lua ocorre porque essa linguagem de programação ocupa pouco espaço no HD do computador, é mais rápida entre as chamadas linguagens de extensão - que é uma sub-divisão da linguagem de programação - e é mais fácil de interagir com outros programas. A linguagem Lua tem vários “derivados''. O principal deles é o CGILua, que trabalha com aplicações WEB. O CGILua é um programa escrito em C onde você embute trechos escritos em Lua. E o executável do CGILua faz toda a comunicação desse trecho Lua com o protocolo http da Internet. Ou seja, ele faz o papel do CGI. Lua, com seus arquivos de configuração, possibilita que, ao mesmo tempo em que se cria a funcionalidade das páginas, elas estejam sendo diagramadas na produção, e os textos, elaborados por um redator - tudo ao mesmo tempo. Em particular, Lua oferece um mecanismo de co-rotinas assimétrico, de primeira classe e com pilha. Co-rotinas, como implementadas por Lua, são bastante similares a linhas de execução (theads) cooperativas. Cada co-rotinas em Lua representa uma linha de execução independente, com sua própria pilha de chamadas (Por isso é classificada como stackful). Mas, ao contrário de um sistema multitheading convencional, não há preempção em um sistema de co-rotinas. Uma co-rotina só interrompe sua execução quando termina ou quando invoca explicitamente uma primitiva de suspensão (yiald). 3.1 Vantagens • Rápida: Lua tem um ótimo desempenho comparado com outras linguagens de scripts interpretadas, sendo a mais rápida entre todas; • Portátil: O mesmo trecho de código pode ser compilado em várias plataformas sem sofrer alterações. Lua roda em todos os tipos de Sistemas Operacionais; • Embutível: Lua é rápida e pequena podendo facilmente ser embutida nas mais diversas aplicações. 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; • Poderosa e Simples: 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; • Pequena: Incluir Lua numa aplicação não aumenta quase nada o seu tamanho. O pacote de Lua 5.1.4, contendo o código fonte, documentação e exemplos, ocupa 860K descompactado; • Livre: Lua é software livre de código aberto, distribuída sob a licença MIT. Pode ser usada para quaisquer fins sem burocracia, é só fazer o download e usá-la; • Importância Global: O projeto e “a evolução de Lua” foram apresentados em junho de 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 somente poucas linguagens são apresentadas a cada vez. A escolha de Lua para a HOPL III é um importante reconhecimento do seu impacto mundial. Lua é a única linguagem de programação de impacto desenvolvida fora do primeiro mundo, estando atualmente entre as 20 linguagens mais populares na Internet (segundo o índice TIOBE, em Março/2011). 3.2 Desvantagens • Mais demorado que C; • Vulnerabilidade: Foram identificadas e documentadas diversas vulnerabilidades de programação insegura em Lua. Tais como injeção de comandos, condição de competição, corrupção de arquivos e código malicioso, script cruzado armazenado, referência insegura a tabelas, injeção de SQL e mal uso de criptografia (estas vulnerabilidades, em outras linguagens de programação, estão amplamente documentas em catálogos conhecidos, como o OWASP Top 10 (2010) e o CWE/SANS Top 25 (2010). Não foi encontrada documentação de vulnerabilidades de programação insegura em Lua e nem boas práticas de segurança de software em Lua). 4. APLICAÇÕES No mercado de softwares em geral: • “Ginga NCL” – middleware padrão brasileiro para TV Digital; • “Wireshark” – analisador de protocolos; • “Snort” – detecção de “intrusos” e proteção do sistema; • “Adobe Lightroom” – gerenciador e organizador de imagens; • “nmap” – rastreador de redes para segurança; • “Eyeon s Digital Fusion” – pós-produção de filmes;‟ • “INPE” – biblioteca GIS; • “Olivetty” – firmware para impressoras; • “Omnitronix” – monitoramento remoto; • “RealTimeLogic” – servidores Web; • “APT-RPM”, Conectiva – padrão para distribuições RPM; • “Publique!” – gerenciador de conteúdo para web; • “Sputnik” – wiki extensível disponível como software livre Empresas diversas e importantes também aderiram à linguagem, empregando-a em aplicações das mais variadas: • Hands: uso no desenvolvimento de navegadores de conteúdo para micros de bolso; • Incor (Instituto do Coração em São Paulo): utilizada no servidor do sistema que monitora pacientes na UTI via Web; • CPC 4400: placa de switch para rede Ethernet, a linguagem foi usada na criação de sua interface; • Intel: empregada na ferramenta interna para layout de chips (processadores); • Robô Crazy Ivan: Lua é um dos componentes do seu cérebro, responsável, segundo fabricantes do robô, pela parte lógica. Ivan ganhou o concurso de inteligência artificial da RoboCup 2000, concurso de robôs realizado na Dinamarca; • AXAF (Advanced X-ray Astrophysics Facility): terceiro dos grandes observatórios espaciais lançados pela NASA, tem a tarefa de simular em imagens os sinais recebidos do espaço, Lua é uma das linguagens utilizadas para tal; • NASA: Lua foi à linguagem usada no controle dos níveis de concentração de gases perigosos na preparação para o lançamento de ônibus espacial. • Petrobras: principal usuária, utilizando principalmente em visualizações de perfis geológicos. 4.1 Aplicações em Jogos Lua é atualmente a linguagem mais utilizada no desenvolvimento de aplicações para jogos (20% dos jogos são desenvolvidos com Lua, enquanto somente 7% usam Python, a segunda linguagem de script mais citada na pesquisa [2003] realizada pela gamedev.net um importante site para programadores de jogos). Devido ao seu pequeno tamanho, bom desempenho, portabilidade e facilidade de integração, Lua tem sido amplamente utilizada na indústria de jogos. Empresas como LucasArts, BioWare, Microsoft, Relic Entertainment, Absolute Studios e Monkeystone Games desenvolvem jogos usando Lua. Os principais jogos são: • “Grim Fandango” - LucasArts; • “World WarCraft” - Blizzard; • “Sonic, the Hedgehdg” – SEGA; • “FarCry” – UBISOFT; • “The Sims2” – EA; • “Sim City 4” – EA; • “Warhammer Online – Age of Reckoning” – EA; • “Supreme Commander” – THQ; • “Heroes V” – UBISOFT; • “Spell Force” – Solo Out; • “S.T.A.L.K.E.R. – Shadow of Chernobyl” – THQ; • “CRYSIS – EA”; • “Dawn of War” – Relic; • “NFL Fever 2004” – XSN Sports; • “The Witcher” – Atari; • “Amped – Freestyle Showboarding” – Microsoft; • “Hulk – The Incredible” – SEGA; • “Destroy all Humans!” – THQ; • “Psychonauts” – MAJEACO; • “MDK 2” - Interplay; • “Escape from Monkey Island” – Lucas Arts (Neste jogo Lua recebeu uma homenagem (ANEXO II)); • “Baldur‟s Gate” - BioWare; • “Impossible Creatures” – Relic, Microsoft Game Studios; • “HomeWorld 2” – Relic”; • “Links 2004” – XSN Sports; • “Amped 3” – 2K Sports; • “Soul Ride” - Slingshot; • “Diner Dash 2 – Restaurant Rescue” – PlayFirst; • “Top Spin 2” – 2K Sports; • “NHL Rivals 2004” – XSNSports; • “Grand Theft Auto” – Rockstar Games. 4.2 Aplicações no Sistema Brasileiro de TV Digital A linguagem de programação Lua, é a linguagem procedural do subsistema Ginga- NCL, parte integrante do sistema Ginga. Conforme Barbosa e Soares (2008), o middleware Ginga é uma combinação de tecnologias padronizadas e inovações brasileiras. Ele é subdividido em três componentes principais interligados. Os subsistemas são chamados de Ginga-J (para aplicações procedimentais Java), Ginga- NCL (para aplicações declarativas NCL e NCLua [ programa Lua para plataforma de televisão digital ]) e o Ginga-CC (o núcleo comum). Além disso, há diversas APIs, pacotes de software e outros serviços de mais baixo nível, oferecidos ao middleware pelo sistema operacional ou outros componentes. 4.3 Aplicações para WEB 4.3.1 Kepler Um exemplo de aplicação da linguagem de programação Lua na WEB é o projeto Kepler. Kepler é uma comunidade de desenvolvedores de software livre usando Lua como uma opção viável de desenvolvimento de aplicações web, mantendo a característica multi-plataforma de Lua. Esse projeto desenvolveu uma arquitetura onde aplicações para a Web podem ser escritas utilizando uma API única denominada CGILua. Seguindo a linha multi-plataforma, Kepler disponibiliza disparadores de interpretadores Lua para as tecnologias web mais difundidas, entre elas: CGI, Módulos do Apache, módulos no IIS (Internet Information Server), FastCGI e Servlet Java. Além dos disparadores para tecnologias amplamente difundidas, o Kepler também oferece um servidor web escrito em Lua, chamado Xavante. Esse servidor também permite a execução de scripts Lua, entre eles os que usam a API CGILua. Lua foi classificada como sendo o mais rápido comparado com Python, Perl, PHP e Ruby. 4.3.1.1 Aplicativos e frameworks WSAPI - uma API que abstrai o servidor web para aplicações Lua, a base de muitos projetos; Xavante - um servidor web feito em Lua que oferece uma interface WSAPI; Orbit(br) - um framework MVC para Lua, baseado em WSAPI; Sputnik - uma Wiki/CMS em Lua baseada em WSAPI. 4.3.1.2 Ferramentas de desenvolvimento LuaDoc - uma ferramenta geradora de documentação para código fonte Lua; LuaEclipse - uma IDe baseada em Eclipse para Lua; LuaProfiler - um medidor de tempos de execução para Lua; LuaRocks - um sistema de distribuição e gerenciamento de módulos Lua. Utilizado pela maioria dos projetos aqui apresentados; RemDebug - um depurador remoto para Lua; Shake - uma máquina de testes simples e transparente para Lua. 4.3.1.3 Outros projetos CGILua - permite a criação de páginas utilizando LuaPages e LuaScripts, baseado em WSAPI (mas não mais mantido, agora aconselha-se usar Orbit, Sputnik ou WSAPI ao invés de CGILua); LuaExpat - um parser SAX para XML baseado na biblioteca Expat; LuaLogging - uma API para logging feita em Lua; LuaSQL - uma interface simples de Lua para vários bancos de dados; LuaZip - uma biblioteca para ler arquivos zip; MD5/DES56 - facilidades para uso de MD5 e encriptação DES56 em Lua. 5. CONCLUSÃO Após o termino deste trabalho, conclui-se que a linguagem de programação Lua, apesar de muitos ainda não conhecer, é uma linguagem muito vantajosa quando se trata de uma linguagem de scripts, de extensão. Principalmente na área de jogos, onde ela está tendo um maior destaque (embora seja usada para todo tipo de aplicação). Pois é pequena (leve), rápida, dinâmica, muito poderosa. 6. REFERÊNCIAS BIBLIOGRÁFICAS “Publique!” Site desenvolvido em Lua, Disponível em http://www.fabricadigital.com.br Acessado em 20/03/2011. Günter Heinrich Herweg Filho, “TV Digital, Lua introdução” Disponível em http://imasters.com.br Acessado em 20/03/2011. “Kepler Project”, Comunidade de desenvolvedores de sites usando Lua, Disponível em http://keplerproject.org Acessado em 26/03/2011. Site oficial da linguagem de programação Lua, Disponível em http://www.lua.org Acessado em 20/03/2011. Leonardo Godinho da Cunha, “Modelos de Concorrência e Sandboxes Aplicados a Servidores HTTP em Lua”, Disponível em http://www.maxwell.lambda.ele.puc-rio.br Acessado em 26/03/2011. “Linguagem de Programação Lua”, Disponível em http://www.oficinadanet.com.br Acessado em 20/03/2011. “Ficha da Linguagem de Programação Lua”, Disponível em http://www.htmlstaff.org Acessado em 20/03/2011. “As Facilidades da Programação Lua”, Disponível em http://www.portaldaprogramacao.com Acessado em 26/03/2011. Adriano Pecenin, “Linguagem de Programação Lua”, Disponível em http://quatroliberdades.blogspot.com Acessado em 26/03/2011 “Linguagem de Programação Lua”, Disponível em http://www.gamedev.com.br Acessado em 26/03/2011. Linguagem de Programação LUA Karoline Reinert História A única linguagem brasileira; Criada em 1993, na PUC-Rio; Autores: - Roberto Ierusalimschy, - Luiz Henrique de Figueiredo, - Waldemar Celes Desenvolvedores na TecGraf; História Atender a Petrobras; Devido a eficiência, passou a ser usada por outros ramos: Desenvolvimentos de jogos; Controle de robôs; Processamento de textos; Intercomunicação de base de dados em sites dinâmicos; Entre outros. A linguagem Inicialmente desenvolvida para ser estendida; Linguagem de scripts auto-suficiente; Faz parte do desenvolvimento de várias aplicações, mantendo sempre suas características e sendo facilmente extensível. A linguagem Usada em diversos países: EUA; Japão; Dinamarca; Alemanha; Rússia; Itália; Entre outros. A linguagem Sua biblioteca foi programada C/C++; Semelhante a Python, Ruby e Icon; Pode ser rodada em qualquer plataforma; Estendida de qualquer linguagem de programação. Vantagens Rápida; Portátil; Pequena (Leve); Poderosa e Simples; Livre; Importância Global Participação na HOPL III, em 2007; 3ª Conferência sobre a História das Linguagens de Programação; Acontece a cada 15 anos; Poucas linguagens são escolhidas; Importante reconhecimento do impacto mundial. Desvantagens Mais demorado que C; Vulnerabilidade, programação insegura (TV Digital). Aplicações (Geral) “Ginga NCL” – Padrão brasileiro para TV Digital; “Wireshark” – Analisador de protocolos; “Snort” – Detecção de “intrusos” e proteção do sistema; “Adobe Lightroom” – Gerenciador e organizador de imagens; “nmap” – Rastreador de redes para segurança; “Olivetty” – Firmware para impressoras; “Omnitronix” – Monitoramento remoto; “RealTimeLogic” – Servidores Web; “Publique!” – Gerenciador de conteúdo para web; Importantes Aplicações Hands: uso no desenvolvimento de navegadores de conteúdo para micros de bolso; Incor (Instituto do Coração em São Paulo): utilizada no servidor do sistema que monitora pacientes na UTI via Web; CPC 4400: placa de switch para rede Ethernet, a linguagem foi usada na criação de sua interface; Intel: empregada na ferramenta interna para layout de chips (processadores); Robô Crazy Ivan: Lua é um dos componentes do seu cérebro, responsável, segundo fabricantes do robô, pela parte lógica. Ivan ganhou o concurso de inteligência artificial da RoboCup 2000, concurso de robôs realizado na Dinamarca; Importantes Aplicações AXAF (Advanced X-ray Astrophysics Facility): terceiro dos grandes observatórios espaciais lançados pela NASA, tem a tarefa de simular em imagens os sinais recebidos do espaço, Lua é uma das linguagens utilizadas para tal; NASA: Lua foi à linguagem usada no controle dos níveis de concentração de gases perigosos na preparação para o lançamento de ônibus espacial. Petrobras: principal usuária, utilizando principalmente em visualizações de perfis geológicos. Aplicações em Jogos Foi com o “Grim Fandango” que a Lua se consagrou no mundodos games; Empresa americana LucasArts, em 1993. Exemplo de utilização: Em FarCry, Lua é usada para configurar o uso de armas, gráficos e sons durante o jogo, além do comportamento da excepcional inteligência artificial dos adversários. Aplicações WEB CGILua: É um programa escrito em C onde você embute trechos escritos em Lua. E o executável do CGILua faz toda a comunicação desse trecho Lua com o protocolo http da Internet. O principal usuário no Brasil é a “Fábrica Digital”; Que escreveu sua ferramenta de edição Web, o Publique!, todo em Lua e usa a linguagem derivada para conectá-lo à Grande Rede; Reconhecimento “Com a utilização de Lua, a Fábrica Digital pôde aumentar de forma significativa a produtividade da equipe de desenvolvimento e produção de páginas HTML. A facilidade de programação e os recursos de configuração da linguagem permitiram o desenvolvimento de produtos extremamente flexíveis” - disse André Carregal, gerente de desenvolvimento da Fábrica Digital. Conclusão É uma linguagem pouco conhecida; Vantajosa, quando se trata de uma linguagem de scripts, de extensão; Leve, rápida, dinâmica, fácil, etc. Dúvidas?
Compartilhar