Quando dizemos que “o Projeto Kepler tem por objetivo a criação conjunta de uma conjunto de soluções para desenvolvimento Web baseado na linguagem de programação Lua que ofereça tanto flexibilidade quanto simplicidade conceitual”, o que nós queremos dizer?
Para os que já estão acostumados com a linguagem de programação Lua e com sua comunidade, capacidades como portabilidade, flexibilidade e simplicidade são parte do jogo. Mas como isso se explica o Kepler?
A idéa não é ser o novo PHP, derrubar o Python ou qualquer coisa do gênero. Mesmo que isso fosse possível, não faria o menor sentido tentar. Desenvolvimento Web é um campo absurdamente vasto e tem espaço para todos, nós não precisamos gastar energia atacando os outros jogadores.
Dependendo do problema que esteja tentando resolver, a ferramenta certa surge naturalmente, não sendo necessário forçar nada. Então, supondo que as outras plataformas são boas no que elas fazem, qual é o diferencial do que propomos?
A resposta para esta pergunta está descrita em nossa “missão”. Não é fácil ser extremamente portável enquanto oferece flexibilidade e simplicidade conceitual, e neste ponto, soluções baseadas em Lua estão na frente.
Lua se encaixa
Além de poder rodar em todos os sistemas que rodam PHP, Python, J2EE ou .Net, Lua também pode rodar em sistemas nos quais não faria o menor sentido tentar instalar qualquer uma das demais plataformas. Alguma vez você já tentou colocar PHP ou Ruby em um dispositivo com 1Mb de RAM?
Mesmo que você conseguisse fazê-lo, não sobraria muito espaço para aplicativos e dados.
Certamente existem várias bibliotecas e frameworks que caberiam dentro desse espaço tão pequeno, mas elas costumam ser de muito baixo nível e não utilizam uma linguagem apropriada para o desenvolvimento web. Utilizar Lua quer dizer que ter uma linguagem de programação totalmente amadurecida à sua disposição desde o começo.
Mas talvez você não esteja desenvolvendo para um dispositivo tão pequeno, então para que se preocupar com o uso de memória?
Nós acreditamos que mesmo o que rode em uma CPU com diversos núcleos, usando Apache, Lua continua oferecendo a mesma flexibilidade e simplicidade que ofereceria em um cenário restrito.
O Kepler é modular
É aqui que a Arquitetura modular do projeto Kepler entra em questão. Ao invés de ter um módulo “de um tamanho único que se encaixa em tudo” como a maioria das plataformas web, o Kepler vai na direção contrária. Você pode escolher o que entra e o que sai.
Essa arquitetura modular é utilizada desde a primeira camada. O WSAPI pode utilizar diferentes modelos de execução (CGI, FastCGI e outros) em diferentes servidores web (Apache, IIS, thttpd, Xavante e outros) com diferentes metáforas de web (CGILua para geração baseada em páginas e Orbit para geração baseada em MVC.