AskQL - a linguagem de consulta e programação que faltava
Uma vez que o desenvolvimento de software é sempre mais lento do que se espera, a xFAANG oferece uma solução Open Source que todos esperavam. AskQL - uma linguagem de consulta e programação completa. “É assíncrona por padrão, processa apenas dados imutáveis e é inteiramente baseada no paradigma de programação funcional” - diz Marcin Hagmajer, criador do AskQL.
“Usar AskQL pode ser mais fácil e rápido em comparação com outras soluções existentes atualmente”. - Hagmajer explica. De fato, esta tecnologia elimina a necessidade de criar múltiplos API endpoints - com a AskVM (Ask Virtual Machine) configurada para criar apenas um endpoint, o que pode ser de suma importância para a integração de front-end e backend. Você pode estar se perguntando como um endpoint pode ser suficiente e é aí que se revela o verdadeiro potencial do AskQL.
Poderosa programação de consulta
O AskQL permite que programadores possam realizar qualquer pergunta complexa sobre os dados. As consultas são feitas com AskScript, uma linguagem de programação simples e amigável para humanos. AskScript é reportada como tendo uma curva de aprendizagem baixa para aqueles que já conhecem JavaScript ou GraphQL, embora programadores iniciantes também devam considerar uma linguagem fácil de aprender.
Client
AskScript
query { meaningOfLife }
AskCode
q(computeAnswerToTheMeaningOfLife)
Query Result
JSON
AskCode
q(computeAnswerToTheMeaningOfLife)
Query Result
JSON
Server
AskVM
meaningOfLife: 42
As consultas são enviadas e interpretadas pelo AskVM, um ambiente sandbox seguro instalado no lado do servidor. O AskVM processa cada pedido individualmente e quais recursos podem ser acessados com base nos esquemas e políticas de segurança definidos pelo programador.
A biblioteca padrão AskQL é criada em AskCode de forma a torná-la ainda mais leve. Ela contém todas as funções necessárias, mas você também pode escrever suas próprias contribuições para o repositório GitHub, já que o AskQL foi publicado sob licença MIT.
“Os antepassados”
O autor e arquiteto do AskQL, Marcin Hagmajer, admite que, ao criar a nova linguagem de consulta, linguagens fortes como JavaScript e GraphQL foram diluídas. Embora o JavaScript tenha sido criticado por ser uma linguagem multi-paradigma, a sua popularidade e versatilidade é inquestionável. AskQL leva muitas das suas estruturas, deixando de fora os elementos confusos.
A comunidade também ficou surpreendida em 2015 quando o Facebook publicou a ferramenta de código aberto chamada GraphQL. Esta descoberta pioneira da década eclipsou o REST API durante vários anos.
Filosofia e design AskQL
AskQL é para GraphQL o que GraphQL tem sido para REST API. Hagmajer fez a si mesmo a pergunta: "Por que não executar o programa no servidor e apenas recuperar os dados específicos que o frontend está pedindo?". Isto exigiu o desenho de uma nova linguagem de consulta que implementasse as funcionalidades de uma linguagem de programação. Hagmajer também queria que ela fosse flexível e leve, por isso, tendo em mente a Navalha de Ockham, decidiu construí-la de meras funções. Ele ouviu a voz do fantasma de Haskell ecoar em seu apartamento localizado em Varsóvia, na Polônia, enquanto explicava o conceito à equipe xFAANG.
A xFAANG Ltd. é uma empresa de software recém-criada e co-fundada por Hagmajer, que contrata apenas especialistas em TI de empresas como o Facebook, Amazon, Apple, Netflix e Google (FAANG). Os programadores da xFAANG prontamente acolheram a ideia e criaram as bases do AskQL em menos de um mês, realizando o seu lançamento público no dia 25 de maio de 2020.
Confira o repositório do AskQL GitHub e sinta-se à vontade para enviar as suas perguntas! Você também pode compartilhar a sua opinião sobre o AskQL no Discord channel. O seu feedback será muito útil para a comunidade.
AskQL. Escreva software flexíveis mais fácil e rápido do que nunca.
Landing page: https://askql.org/
Docs: https://www.notion.so/AskQL-Documentation-cd065c579d0c44d381ddddc4682f5736
GitHub: https://github.com/xFAANG/askql
Comunidade Discord: https://discord.gg/pYdzypH
Vídeo: https://www.youtube.com/watch?v=A2i2oyBwdAc
Thank you Manu for the translation!