Publicado originalmente em: https://www.linkedin.com/pulse/como-um-princ%25C3%25ADpio-de-projeto-para-protocolos-internet-moreiras
Tanto pessoas como computadores às vezes têm dificuldades nas relações e no diálogo com seus semelhantes. Esse não é um artigo técnico, mas vamos começar entendendo como as máquinas superam esse problema, vendo depois que daí podemos ter insights importantes pra também melhorar as relações humanas.
Na Internet estão conectados smartphones, notebooks e outros equipamentos fabricados por milhares de companhias diferentes. A própria Internet é formada por mais de 50 mil redes diferentes, administradas por instituições diversas, usando equipamentos de várias centenas de fabricantes. Como tudo isso funciona em conjunto?
Garanto que não é por mágica que a Internet funciona. Corujas encantadas não estão envolvidas na troca de mensagens, como no universo de Harry Potter. Existe um grupo de engenheiros que trabalham muito para criar, manter e melhorar continuamente protocolos (regras de comunicação) e outros padrões para que essa miríade de máquinas possa conversar entre si e funcionar em conjunto. Apenas como curiosidade, esse grupo se chama IETF (Internet Engineering Task Force) e os documentos que descrevem esses padrões chamam-se RFCs (Request For Comments). Os famosos IP, TCP, HTTP, entre tantos outros, são exemplos desses protocolos.
Alguém que queira escrever um software para funcionar na Internet, ou criar um equipamento novo, tem que seguir uma série de padrões, definidos nesses documentos chamados de RFCs. E aqui estamos chegando no assunto principal desse texto. As definições escritas nesses documentos, por mais precisas que sejam, são passíveis de interpretação pelos engenheiros e projetistas. Podem haver pequenas (algumas vezes não tão pequenas assim) diferenças de interpretação, que podem levar os diferentes computadores e equipamentos a falarem diferentes dialetos de “internetês” e a não se entenderem.
É aqui que entra um importante princípio de projeto para equipamentos e softwares usados na Internet, conhecido como princípio da robustês, ou lei de Postel (John Postel foi um dos pais da Internet, um dos engenheiros mais importantes para seu desenvolvimento). Esse princípio é o seguinte:
”SEJA CONSERVADOR NO QUE VOCÊ ENVIA, SEJA LIBERAL NAQUILO QUE VOCÊ RECEBE” [1]
Para o projetista de um equipamento ou software que vai funcionar na Internet, isso significa que ele deve seguir o padrão à risca quando envia mensagens para os outros equipamentos. Mas ao receber uma mensagem, o equipamento ou software deve ser liberal, deve aceitar desvios, diferenças em relação ao que é definido nos padrões, fazendo o que puder para interpretar corretamente a mensagem recebida, mesmo que essa esteja meio ‘torta’ e esquisita. As diferenças geralmente são causadas por erros, ou por interpretações díspares do que está definido no padrão. E essa tolerância, ou liberalidade, é o que garante que a comunicação de fato seja possível, mesmo com as diferenças. Se não houver tolerância, grandes são as chances de que a comunicação não aconteça corretamente.
E como um princípio desses pode servir para as nossas vidas e relações? É bem simples. Eu e você temos os nossos padrões de comportamento, as nossas regras pessoais sobre o que é certo e errado, o que é ou não aceitável, nossa bússola moral pessoal. Em boa medida, podemos mesmo dizer que há uma certa universalidade nessas regras. Grande parte delas são aceitas como princípios pelos grupos sociais em que estamos inseridos, por exemplo: respeitar as leis, respeitar as normas da empresa em que trabalhamos, não se comportar como um idiota nas relações interpessoais, etc. Contudo, há certamente desvios, sejam de boa fé ou de má fé. Alguns por diferenças na direção em que aponta a bússola moral, outros por erros.
A regra de Postel, se aplicada à vida, da mesma forma que garante que a comunicação entre diferentes equipamentos aconteça de forma efetiva na Internet, também pode garantir que as relações sociais aconteçam de forma mais fluida e tranquila. Podemos reescrevê-la, sem mudar seu sentido original, para entender isso melhor:
“SEJA CORRETO NO QUE VOCÊ FAZ”. Nossas ações devem ser norteadas pelos nossos princípios. Pelo que consideramos correto. Devem nos levar à direção exata para onde aponta nossa bússola moral. Isso de certa forma garante um certo grau de integridade e consistência em nós mesmos. Garante a satisfação de sabermos que estamos fazendo a coisa certa, que estamos sendo o melhor que podemos ser, e que com nossas atitudes individuais estamos contribuindo também para uma sociedade melhor.
“SEJA TOLERANTE COM AS AÇÕES DOS OUTROS”. Temos que considerar, entretanto, que as outras pessoas têm entendimentos diferentes dos nossos sobre o que é certo e o que é errado, e sobre como viver a vida. É claro que há um limite para o aceitável, e ele provavelmente está um pouco mais próximo das regras universalmente aceitas, do que de nossas regras pessoais. Devemos ser tolerantes, contudo. Aceitar uma certa dose de abuso. Aceitar dos outros, até um certo ponto, um tratamento que não dispensaríamos a eles. Com isso, as relações entre as pessoas podem acontecer, apesar das diferenças. A vida e a sociedade ficam mais fluidas e menos truculentas. Somos mais produtivos e felizes também na vida em grupo.
[1] https://tools.ietf.org/html/rfc793#page-13