Duas coisas me motivaram a escrever LuaWsgi:
- Distração do stress pelo qual eu passava (sim! Programo para relaxar!);
- Havia coisas em outras ferramentas das quais eu não gostava.
Em Lua, o melhor projeto de
framework para
web que há atualmente é
Kepler.
No entanto há coisas em Kepler das quais eu pessoalmente não gosto. O legal do desenvolvimento colaborativo é que as pessoas podem ajudar a mudar essas coisas.
Por exemplo, coisas que não são legais em Kepler 1.0 e 1.1, cujas mudanças já estão previstas para a versão 1.2:
- O controle de sessão está na camada mais abstrata (CGILua). Será passado para camadas mais baixas na versão 1.2.
- A interface SAPI será substituída por outra mais programável, WSAPI (ou KAPI, o pessoal ainda está discutindo o nome), que possuirá uma camada superior mais amigável que CGILua, chamada Orbit.
- O módulo facilitador para AJAX (Sajax) não trabalha com sessão e está implementado na camada mais abstrata (CGILua). Na versão 1.2 será implementado usando WSAPI e de forma a permitir trabalhar com sessão.
É claro que é necessário um certo nível de controle para um projeto não virar um caos. Esse controle é ao mesmo tempo o ponto forte e o ponto fraco do desenvolvimento colaborativo.
Por um lado o controle mantém foco e concisão no projeto. Por outro lado é impossível agradar a gregos e troianos, e esse foco pode não ser o que você procura.
Chegamos à beleza do código aberto: se você não gosta de algo, pode fazer diferente por conta própria. O nome disso é
diversidade.
Diversidade é o que garante continuidade na Natureza e o homem só é feliz em seus intentos quando aprende com a Natureza.
Por exemplo,
Xavante – servidor
web de Kepler – tem como foco permanecer pequeno e ser apenas um ambiente de desenvolvimento, como o objeto
httpserver
de
Paste.
Assim Xavante e
Copas são mantidos pequenos, rodando em um só processo, sem
multithreading e sem criação de processos filho – usam uma combinação de
corrotinas e
tempo de expiração de
sockets.
Nada contra, é um foco. Os coordenadores do projeto oferecem interfaces com outros servidores
web para uso em produção.
Mas eu quero mais… e se você também quer mais, pode ajudar a melhorar LuaWsgi!
O foco de LuaWsgi é tirar proveito máximo de um ambiente multiprocessado, de memória compartilhada ou distribuída.
A idéia é que LuaWsgi use
pthread
para fazer
multithreading (que em ambiente GNU/Linux já tira proveito de multiprocessamento
per si) e crie processo filho (
fork) quando necessário (LuaWsgi ainda não faz isso).
Chegamos aqui ao
objetivo desta postagem: quais são
suas sugestões para melhorar LuaWsgi?
O que você
não gosta em LuaWsgi?
O que você não gosta em
outros frameworks, não pode mudar e gostaria de ver implementando em LuaWsgi?
Vamos criar um
TODO de coisas legais que podem ser implementadas em LuaWsgi. Você não precisa colaborar com código (se tiver algum código, ele será analisado com zelo, claro), ideias bastam – seja para
acrescentar, seja para
retirar.
Precisamos de ideias nesse momento.
[]'s
Cacilhas