Olá, Eric.
> O grande ponto é: As pessoas acabam conhecendo Lua por alguma aplicação que
> viram em algum lugar (um mod de jogo, um kit de automação residencial,
> etc), aprendem e básico, gostam e pensam:
> "Cara eu quero usar mais essa linguagem. Ela é tão simples e tão poderosa!
> Seria legal poder usar pra resolver meus outros problemas"
No geral, eu concordo com a sua visão de que é positivo que haja
pessoas interessadas em Lua e querendo adaptar esse ambiente para
cenários do seu dia a dia. Porém, em alguns pontos bem específicos acho
que existem modos mais produtivos de encarar a questão. A seguir
detalho mais.
> E aí o pessoal esbarra no ecossistema.
Este é o primeiro ponto. O que costumeiramente chamamos de ecossistema
é o que por acaso as pessoas que usam Lua criam e compartilham para
outras pessoas poderem também tirar proveito. Não existem por si só,
dependeu de alguém que queria usar aquilo criar em primeiro lugar.
Nesse sentido o ecossistema de Lua é bastante voltado para jogos,
embarcados, e eu diria que segurança também porque nessas comunidades
houve uma grande quantidade de pessoas dispostas a criar um ponto de
partida para facilitar seus trabalhos futuros (e de outras pessoas
também, por que não?).
Além disso, como detalha o artigo do André Garzia, grande parte do
potencial de Lua está justamente na capacidade de uma forte integração
com outras aplicações, então também existem muitas aplicações que usam
Lua internamente como motor de script, interface de depuração,
linguagem de configuração ou de criação de plugins. E isso também pode
ser considerado parte desse ecossistema.
Em relação a frameworks Web, houve menos desse fenômeno, e por isso
menos opções nesse quesito. Não quer dizer que isso seja algo imutável
ou impossível de acontecer, mas depende das pessoas interessadas nesse
segmento trabalharem juntas para fazer com que Lua também seja capaz de
florescer nesse campo.
Aliás, se pararmos pra pensar, frameworks são a antítese da máxima de
Lua em relação a mecanismos no lugar de regras (mechanisms over
policies), já que frameworks são justamente regras no lugar de
mecanismos. Ainda assim, não é incompatível com Lua, no fim das contas,
mas precisa ter alguém interessado em elaborar.
>
> Se houvesse alguma entidade disposta a investir uma grana pra criar um
> framework web pra bater de frente com o Django (por exemplo), pra aprimorar
> o gerenciador de pacotes pra ser comparável ao cargo, npm, pip, etc (por
> exemplo) dentre outros pontos a gente não estaria aqui debatendo esses
> pontos hoje. Só estamos porque a gente curte a linguagem e quer fazer essas
> coisas. [...]
Pra mim é aí que está o cerne do problema... esperar que haja um
terceiro para construir aquilo que você quer hoje. É algo que não se
tem controle. É como tropeçar e reclamar da ação da gravidade...
infelizmente isso não muda o fato de que se tropeçar, você cai.
Penso que não são poucos os que se queixam de Lua não dispor de algo
mais aos moldes desses outros ambientes. Talvez individualmente essas
pessoas não disponham de tempo e conhecimento para construir, mas se
toda essa comunidade que está inconformada com o estado de coisas atual
decidisse se mobilizar para construir um tal framework a esses moldes,
e um gerenciador que atendesse a essa demanda, também não estaríamos
discutindo essa questão.
Não é razoável esperar que isso caia do céu.
Meu ponto é, a crítica que mobiliza em torno de um objetivo é válida,
porque útil. Mas quando não mobiliza, então é um ruído sem resultado.
Se pensarmos no conceito de eficiência, uma máquina que esquenta e faz
barulho é menos eficiente porque gasta energia em algo que não faz
parte da função. Do mesmo modo, uma comunidade que se queixa de algo,
mas não usa dessa insatisfação para construir o que precisa, está
desperdiçando energia. Para mobilizar é preciso que a pessoa que faz a
crítica apresente algo, um projeto, um começo, um exemplo.
Quanto ao "bater de frente", pode ser apenas força de expressão, mas eu
sustentaria que não é preciso bater de frente com frameworks
existentes, apenas criar algo que seja útil e funcione.
> [...] Mas nem todo mundo quer ou tem tempo, ou conhecimento para criar um
> programa em C, manipular a pilha de Lua e criar uma nova funcionalidade pro
> pessoal usar.
Talvez para pessoas que nunca tiveram contato com C e com a biblioteca
Lua, essa fala poderia levar a crer que se trata do trabalho de uma
vida inteira. Mas sabemos que não é bem assim. É claro que quando você
já dispõe de algo pronto é mais confortável. Mas quando não,
infelizmente não resta opção senão aprender a fazer, em primeiro lugar,
para que então outras pessoas (incluindo seu eu futuro) possam ter esse
conforto.
Aprender C e a biblioteca Lua é uma tarefa bastante gratificante,
especialmente para alguém interessado em Lua. E não é preciso ser um
expert em C para fazer integrações básicas como bindings para
bibliotecas existentes. Mas para além disso, já existem hoje muitas
bibliotecas Lua implementadas para funções básicas como manipulação de
sockets e protocolos HTTP e TLS. Ou seja, nem mesmo isso seria
necessário fazer.
>
> Enfim acho que esse desejo de usar Lua em mais lugares é entusiasmo pela
> linguagem. Acho positivo que essa pressão exista. Quer dizer que tem gente
> por aí que gosta e que ver as coisas o melhor possível.
>
Aqui ficou uma dúvida. Quando diz, "pressão", quer dizer pressão sobre
o quê? Ou sobre quem? Porque se estamos de acordo que o escopo de Lua é
minimalista, então sobre quem recairia essa pressão? Se me perguntasse,
eu diria que não há hoje onde fazer essa pressão, e não é possível
pressionar o que não existe. Então eu trocaria pressão por algo como
"manifesto" ou "chamado" em torno do objetivo de tornar Lua um ambiente
mais facilitado para a Web.
Estou certo de que entre as pessoas interessadas por algo do tipo,
muitas estarão aptas a meter a mão no código (possivelmente você sendo
um, por que não?), mas mesmo as que não estiverem podem contribuir
testando, divulgando, ajudando a organizar o projeto, montar uma página
web, uma lista de e-mail ou outros canais pra comunicação,
repositórios, etc, pra fazer a coisa acontecer.
Finalizando, peço apenas que não entenda minha fala como uma tentativa
de censura, acho que o questionamento é bastante válido. O que faço é
apenas uma sugestão de uma forma mais produtiva de levar esse
questionamento a algo concreto.