Protocolo Gemini
Categorias

Protocolo Gemini quer mudar a web

Um erro constante do usuário comum é acreditar que web e internet são sinônimos. Na verdade, a World Wide Web é apenas um dos vários protocolos de comunicação utilizados na grande rede global de computadores. No caso, estamos falando de HTTP (Hyper-Text Transference Protocol, ou “Protocolo de Transferência de Hipertexto”) e sua versão critptografada HTTPS. Sua presença no cotidiano já é tão disseminada que os navegadores mais modernos chegam a ocultar essa parte do endereço dos sites. Porém, outros protocolos dividem o tráfego da internet.

Podemos citar o SMTP (Simple Mail Transfer Protocol, ou “Protocolo de Transferência Simples de Correspondência) para envio de email e o POP (Post Office Protocol, ou “Protocolo de Serviço de Postagem”) e o IMAP (Internet Message Access Protocol, ou “Protocolo de Acesso de Mensagem de Internet”) para recebimento de email, que também fazem parte do dia a dia de muitos usuários, embora seus protocolos fiquem escondidos nas configurações de seus clientes de email. Quem trabalha com desenvolvimento de sites certamente também conhece o FTP (File Transfer Protocol, ou “Protocolo de Transferência de Arquivos”) para download e upload de arquivos do servidor.

Outros protocolos mais antigos foram inventados e praticamente esquecidos, como o Gopher (cujo legado já comentamos por aqui), ou funcionam nos bastidores, longe das vistas do usuário comum, como Telnet e RTSP.

O que todos esses protocolos tem em comum é a idade: são criações com décadas de existência, que surgiram antes da internet comercial ou concomitantes a ela. Isso não significa que novos protocolos não possam surgir. Em julho de 2019, surgiu o Gemini. Sua proposta: mudar a web.

O que é o Protocolo Gemini?

Em sua própria definição, “Gemini é um novo protocolo de internet em nível de aplicativo para a distribuição de arquivos arbitrários, com alguma consideração especial para servir um formato de hipertexto leve que facilita a ligação entre arquivos”. Por trás de sua criação está a vontade de recuperar a simplicidade e a privacidade da web dos primeiros tempos. Pode-se pensar no Gemini como a web convencional sem a poluição de scripts, estilos, vídeos e outras “distrações” que sobrecarregam o cliente e podem não ser do interesse do usuário. Ou, como seus criadores também explicam, é uma versão melhorada do velho Gopher.

Como resultado dessa abordagem da web, não há espaço para aplicações, conteúdo rico, publicidade intrusiva, cookies, pop-ups e outras supostas mazelas da web moderna. Em contrapartida, justamente por não carregar esse tipo de adendos, páginas criadas e servidas através do Gemini são impressionantemente rápidas e leves, podendo ser visitadas em qualquer máquina, com velocidade de conexão baixa, uma vez que são formadas apenas por texto (imagens abrem em outra janela).

Apesar de sua infância, o protocolo conseguiu formar uma comunidade bastante sólida. É complexo se obter uma estimativa correta de quantos usuários adotam o Gemini. Entretanto, ferramentas desenvolvidas pela própria comunidade calculam que existam cerca de 400.000 URLs Gemini distribuídas ao longo de 2330 “cápsulas” (o termo cunhado pela comunidade para os sites disponíveis sob o protocolo) e 1265 domínios. Todos esses recursos podem ser acessados exclusivamente através de um endereço que se inicia com o protocolo gemini://.

Toda vez que um cliente capaz de lidar com o protocolo Gemini recebe um desses endereços, a única informação que trafega é o endereço puro do recurso. Não há troca de cabeçalhos ou identificadores de agente ou referência. O objetivo dessa simplicidade é evitar qualquer forma de rastreio do usuário. Da mesma forma, uma página criada para o protocolo Gemini não exige transações de rede adicionais: não há carregamento de imagens, chamadas para scripts, chamada de CSS ou fontes, nem iframes.

Embora, a princípio, pareça que o Gemini nada mais é que um uso restrito do HTTP, ele funciona como uma espécie de certificado: o usuário que navega por endereços dentro desse espaço tem a plena garantia dos recursos que são ou não são permitidos. Além disso, o Gemini foi projetado para não ser viável a inclusão de funcionalidades que fujam do seu escopo. Em outras palavras, não irá acontecer com o Gemini o mesmo processo evolutivo que acometeu o HTTP e o HTML e os afastaram de suas raízes hipertextuais.

De acordo com sua proposta: “você sabe com certeza quando entra no Geminispace, e pode saber com certeza e com antecedência quando seguir um determinado link fará com que você o deixe. Enquanto você está lá, você sabe com certeza e de antemão que todos os outros estão jogando pelas mesmas regras”.

Infelizmente, toda essa busca pela simplicidade tem seus sacrifícios. Do lado do servidor, Gemini não traz suporte para armazenamento em cache, compactação ou retomada de downloads interrompidos. Do lado de cliente, na tela do usuário, não é possível exibir negrito nem itálico e a maioria das opções de formatação; além disso, links sempre ocupam sua própria linha, sendo impossível oferecer link embutido no meio de um parágrafo.

A documentação completa do projeto está disponível traduzida para o Português de Portugal e acessível por HTTP mesmo.

Ferramentas

Um mundo aparte exige ferramentas próprias. Você não irá conseguir navegar pelo “Geminispace” ou publicar conteúdo através do protocolo fazendo uso dos programas que você já conhece (pelo menos, não sem o uso de um plugin). Embarcar nessa viagem exige um pouco de preparo. Uma lista completa de dezenas de opções de ferramentas está disponível no site oficial, mas separamos algumas opções:

Navegadores

  • Amfora: Um navegador minimalistas via terminal, para Windows, Linux e MacOs.
  • Lagrange: Um navegador com interface gráfica amigável, para Windows, Linux e MacOs.
  • Castor: Um navegador criado em Rust com suporte para Gemini, Gopher e Finger.
  • Gemini Client for Android: Um navegador experimental para Android. Código-fonte disponível.
  • Deedum: Um navegador maduro para Android.
  • Elaho: Um navegador com interface gráfica amigável, para iOS.
  • Geminize: Plugin para o Firefox que permite a navegação por páginas com o protocolo Gemini.

Servidores

  • The Unsinkable Molly Brown: Escrito em Go e desenvolvido pelo próprio criador do protocolo Gemini.
  • Agate: Escrito em Rust. Dispensa instalação, porém tem muito poucos recursos e só pode servir arquivos estáticos.
  • Aerozine: Escrito em Rust, oferece suporte a conteúdo gerado dinamicamente e oferece múltiplas opções de configuração.
  • Geminid: Escrito em C. O servidor se encontra em estado experimental.
  • Germinal: Escrito em Lisp. Permite manipular rotas definidas com funções Lisp personalizadas.
  • Jetforce: Escrito em Python. O servidor se encontra em estado experimental, entretanto já oferece um framework completo para escrever aplicativos Gemini robustos.

Plugins de desenvolvimento

O Protocolo Gemini vale a pena?

A impressão que fica pela descrição de uma página Gemini pode remeter ao visual chato e sem graça dos terminais de antigamente e assustar os designers de plantão. Como seria possível uma página de internet sem estilo? A filosofia por trás do Gemini é entregar a decisão da apresentação visual para o cliente, não para o criador do conteúdo. Porém, essa impressão inicial é rapidamente desfeita ao acessar uma das raras páginas brasileiras disponíveis sob o protocolo Gemini:

O resultado visual acima foi obtido através do navegador Lagrange, com suas configurações de fábrica. É agradável e despoluído. Como jornalista, é inegável que todo esse minimalismo me remeta a uma era mais ingênua da web, em que o conteúdo textual reinava soberano, sem distrações de qualquer tipo, principalmente a publicidade intrusiva. É fácil perceber o apelo que o Gemini evoca.

Em contrapartida, a viabilidade de sua filosofia é extremamente questionável. Se chegamos nos dias atuais em que as páginas da web são repletas de elementos dinâmicos, complexos e chamativos foi em virtude de uma necessidade mercadológica. Seria perfeitamente possível entregar o mesmo conceito do “Geminispace” no HTTP atual, sem precisar inventar novos protocolos ou necessitar de novas ferramentas. O HTML atenderia perfeitamente a essa vontade, bastaria abrir mão de determinados recursos. O próprio modo leitura de alguns navegadores oferece uma alternativa de consumo de conteúdo bem próximo do que pregam os criadores do Gemini.

Então, porque a web como conhecemos não é assim? Primeiro, pela necessidade pungente de monetizar a produção de conteúdo. Ainda que seja questionável se a publicidade digital é a única saída, não há um plano de negócios por trás do Gemini. Poderia se argumentar que essa nunca foi a preocupação de seu criador, entretanto, apesar disso, servidores precisam ser mantidos, criadores de conteúdo precisam ser pagos, desenvolvedores de ferramentas precisam de sustento. Por enquanto, o sonho do Gemini é muito utópico, ao mesmo tempo em que a adoção de recursos que possibilitariam algum tipo de retorno financeiro iriam acabar alterando a proposta inicial. Conforme mencionado, Gemini foi desenvolvido do zero para ser pouco ou nada mutável. Não há sequer suporte a versões legadas: a única versão do Gemini é aquela que existe no momento.

Em segundo lugar, a web está do jeito como a conhecemos porque os usuários assim o desejam. O advento da Web 2.0 lá atrás quebrou os paradigmas e as fronteiras entre conteúdo estático e aplicações. Os usuários não desejam mais somente navegar por textos, eles desejam serviços, comodidades, soluções. Às vésperas da emergência de uma suposta Web 3.0, retroceder para uma versão 1.0 baseada em texto puro é um passatempo para poucos. A Caixa de Pandora já foi aberta e não dá para fechar mais.

Por outro lado, a existência do Gemini nos leva a refletir se escolhemos mesmo o único caminho viável. Um estudo francês recente apontou que 70% da pegada de carbono de uma página web atual é oriundo de scripts e ferramentas para publicidade e análise estática. É um impacto significativo no consumo de eletricidade, com reflexos visíveis no meio ambiente. Esse é apenas um dos muitos recortes possíveis que mostram que a web precisa de mudanças urgentes em seu conceito, mesmo que o Gemini não seja essa solução.