Executando verificação de segurança...
1

Neutralidade: O mito da programação

Antes de começar

Este post foi feito para o meu blog, ao qual é integrado ao meu projeto principal (Hsyst), e ele basicamente faz parte de uma trilogia, então, eu recomendo a leitura pelo blog.

Introdução

Hey gente! Este texto tem como objetivo finalizar a trilogia sobre programação além do código, e aqui quero falar um "pouquinho" sobre a neutralidade no código.

Mas antes de nos aprofundarmos nesse tema, quero acolher você, leitor(a) que simplesmente não entendeu os textos anteriores, ou está perdido(a). No primeiro artigo da trilogia ("A programação além do código"), expliquei um pouco da minha visão de mundo. Foi um artigo mais introdutório em comparação com os outros desta trilogia, e num tom mais reflexivo e descontraído do que técnico, foquei em explicar alguns termos que seriam usados no artigo lançado posteriormente ("HPS, o exemplo perfeito"). No segundo artigo da trilogia, escrevi ("HPS, o exemplo perfeito"), onde mostro um projeto no qual apliquei minha visão de mundo e teses, e assim formei uma aplicação que, modéstia à parte, considero pessoalmente uma das mais complexas que já desenvolvi. Esse é um artigo mais filosófico técnico do que reflexivo em si, nele explico desde a parte técnica do HPS até a economia e a filosofia aplicada, tudo da forma menos densa possível que consegui, infelizmente não tenho uma boa capacidade de fazer explicações menos densas, e então ele serviu como um artigo que comprovava e demonstrava minha tese apresentada anteriormente.

Neste artigo, meu objetivo é simples: finalizar a trilogia explicando tudo isso na prática, para quem realmente importa, que é quem cria, os Devs, e para quem consome, os(as) usuários(as). Sendo assim, vou falar um pouco sobre por que afinal de contas, se todos os projetos têm uma ideia aplicada, ou de forma mais clara, uma visão de mundo defendida em uma aplicação, então por que isso importa?

E é respondendo a essa pergunta que este artigo foi criado. Afinal, para entender a importância de compreender no que é embasado o que você utiliza, você precisa entender por que a neutralidade não é um fator decisivo, e nem sequer aplicável, e para entender por que a neutralidade não é aplicável, você precisa entender por que os softwares não são neutros e por que isso importa.

O problema da imparcialidade (e por que entender isso importa?)

Respondendo à pergunta de por que softwares não são neutros e por que isso importa, este tópico vai tratar principalmente do motivo pelo qual a imparcialidade total é impossível, por que imparcialidade não é um conceito binário, e afinal de contas, por que tudo isso importa. Acho que podemos começar por isso.

Então segurem as outras perguntas e vamos começar pelo porquê de tudo isso importar. A resposta não é tão óbvia quanto parece, e é subjetiva, por isso quero trazer apenas uma ideia e deixar a reflexão para você que está lendo. Assim, você mesmo(a) poderá chegar à sua conclusão sobre a importância disso. Em geral, vou explicar uma ideia básica: quando você está aprendendo um assunto novo, digamos que estamos aprendendo a jogar damas, antes de entender o que é ensinado naquele assunto, ou seja, como jogar damas, você geralmente busca entender o que está aprendendo. Nesse caso, de forma bem resumida, você está aprendendo um jogo lógico, baseado em raciocínio lógico.

Explicado esse caso, você deve concordar que, mesmo que muita gente não faça isso, é importante e interessante entender o que você está aprendendo antes de aprender sobre aquilo. Então por que na tecnologia seria diferente? É exatamente isso que eu defendo, não deve ser diferente. Quando vamos estudar tecnologia, nem que seja como usar uma VPN, você aprende apenas como usá la, mas não o que ela é, e isso é um erro. Por exemplo, podemos dizer que a VPN, não o túnel VPN como roteador virtual, mas o túnel VPN enquanto forma de acessar conteúdo por outro IP, tem o intuito principal de contornar censura e trazer segurança, e esse é o problema que resolve. Portanto, entender isso ajuda a compreender onde e como usar a ferramenta. O objetivo da VPN, nessa leitura, seria contornar censura, como sites bloqueados por governos e filmes bloqueados por região, e trazer segurança, como em Wi Fi públicos ou ao acessar sites suspeitos. Utilizá la para esse propósito ajuda a entender se ela atende sua necessidade, se vale a pena aprender, o que ela faz, mesmo antes de estudar tudo, e principalmente se você concorda com a liberdade que ela traz. Afinal, se você concorda que governos devem dizer o que você acessa ou não, não é meu caso, mas é seu direito, talvez seja interessante repensar se usar VPN está alinhado aos seus valores.

Veja, agora que você entendeu que aprender sobre o que está aprendendo antes de aprender é importante, também entende que, diante do fato de que tudo resolve problemas, VPNs para segurança, privacidade e censura, Spotify para pirataria, não apenas, mas também, esses problemas têm embasamento. Se o Spotify foi criado para tentar, dentre muitos motivos, combater a pirataria, ou pelo menos lucrar com ela, logicamente ele é contra a pirataria, mas também não estava satisfeito com a solução estatal apresentada naquela época para resolver esse problema, e criou sua própria solução. Então podemos concluir que, ao utilizar o Spotify, você está propagando essa ideia, na minha visão, genial.

Mas então, por que aplicações não podem ser imparciais? Simples. Se todas as aplicações resolvem, ou deveriam resolver, problemas, então esse problema vem de uma discordância do status quo. Em outras palavras, se o Spotify estava combatendo a pirataria, dentre muitas outras coisas, era porque não estava satisfeito com a proposta de solução apresentada pelo Estado, e resolveu tentar algo mais eficiente, acreditando em sua ideia, e aparentemente funcionou.

Portanto, é impossível que um software resolva problemas sendo neutro, e se aparenta ser neutro, então compete ou usa como base projetos que não são, e logo carrega a ideia do projeto original. Assim, não é neutro, apenas não aplicou essas ideias de forma consciente. E tendo em vista que projetos que resolvem problemas são parciais, você pode imaginar que o oposto seriam projetos inúteis que seriam imparciais, e portanto neutros. Mas essa resposta está errada. Se o projeto é inútil, ele ainda é parcial, pois quer existir e provar que não precisa ter utilidade para existir, e logo também carrega uma visão de mundo e uma parcialidade.

Então não existe código imparcial?

Antes de responder, vale discorrer sobre a diferença entre imparcialidade e neutralidade, que apesar de parecerem não são sinônimos. A imparcialidade vem da tentativa de equilibrar duas ideias, enquanto a neutralidade vem de ser neutro, ou seja, ausente de parcialidade. A neutralidade é impossível em programação pela ideia apresentada anteriormente. Se algo é uma solução, ele resolve um problema e não está satisfeito com a solução existente, ou com a inexistência de solução, e ao assumir essa posição, assume também um posicionamento.

A imparcialidade é improvável e subjetiva. A menos que você passe muito tempo tentando equilibrar ideias diferentes e possivelmente opostas, para alcançar imparcialidade, ainda assim alguém pode considerá lo parcial, justamente por estar assumindo uma posição de equilíbrio entre posições. Cabe ao usuário definir o que é imparcialidade. Por exemplo, pode assumir que a aplicação está 30 por cento em uma posição e 70 por cento em outra, e portanto é parcial. Mesmo colocando 50 por cento e 50 por cento, ainda pode ser considerada parcial, pela dificuldade, e ouso dizer impossibilidade, de alcançar um equilíbrio perfeito.

Assumindo isso, digo de forma modesta que é muito difícil, exigiria uma atenção absurda de quem está desenvolvendo para alcançar esse objetivo. De forma mais radical, pode inclusive ser impossível, afinal a perfeição e o equilíbrio exato de ideias são improváveis. Assim, cabe à pessoa dizer até onde algo é parcial e onde deixa de ser, o que cria um debate sobre parcialidade ou imparcialidade da aplicação, mas isso já entraria em um campo muito abstrato que não quero prolongar aqui.

Diante dessa problemática, convido você a pensar. Na minha ótica, é mais fácil identificar a parcialidade e utilizar o que você defende e concorda, do que esperar algo totalmente imparcial. E a importância de tudo isso não está apenas na causa, mas também na consequência.

As consequências

Este é um artigo mais filosófico, mas a questão é simples: utilizar projetos sobre os quais você não reflete quanto ao posicionamento pode trazer consequências. Entender que apoiar uma plataforma é também apoiar uma ideia leva a crer que essa ideia vai se propagar indiretamente. Por exemplo, graças ao Spotify, que mostrou ser eficiente em reduzir a pirataria, ou pelo menos mais eficiente que as medidas existentes até hoje, abriu se um debate sobre se as leis de pirataria deveriam existir, algo que antes era visto como atacar a cultura, mais especificamente a música.

Esse é um exemplo de tecnologia que, na minha ótica, é positiva, e convido você a discordar ou simplesmente refletir. Mas imagine que alguém crie uma plataforma que realize monitoramento de ações a fim de avaliar o comportamento das pessoas, como é o caso da China com seu sistema de Crédito Social. Podemos entender que a consequência da filosofia que ela carrega pode ser devastadora, novamente, isso pela minha ótica, como por exemplo utilizar o fato de que a China é considerada segura para demonstrar que esse tipo de sistema funciona, o que coloca em risco direitos individuais e privacidade. Isso é um exemplo do que algumas linhas de código podem carregar quando criadas com intuitos específicos.

Você pode argumentar que códigos são imparciais e quem traz parcialidade são os usuários. Concordo parcialmente. Realmente vários projetos não têm conscientemente uma visão de mundo aplicada, mas é fácil entender que a interpretação da parcialidade está conectada ao código, e não são coisas separadas. Logo, você está interpretando e disseminando sua interpretação da visão de mundo do código, e não aplicando sua visão de mundo ao código.

Perfeito, dito isso, acredito que este artigo tenha deixado apenas uma pergunta ao final.

O que tiramos de lição? (E finalização)

Primeiramente, a lição é que entender o que estamos fazendo é aplicar nossas convicções e visões ao que criamos, e automaticamente isso significa que haverá consequências com as quais você concorda, a menos que seja algo extremamente abrangente, o que não é o que estou argumentando aqui. Afinal, um código abrangente também tem uma parcialidade, que é justamente deixar algo livre para interpretações, que levarão ao que o código carrega de visão.

Assim, entendemos que a programação é uma área extremamente versátil, afinal mesmo quando o código parece apenas técnico, a escolha do que otimizar, do que abstrair e do que ignorar já revela valores. Isso abre portas infinitas para o desenvolvimento, e por isso aprender outras áreas como economia, política, filosofia e artes pode agregar muito na criação de coisas com finalidades inovadoras em outro nível. Não apenas um curso que propaga informação e logo tem parcialidade, mas também levar isso para outro nível, para a resolução de problemas reais que vivemos no dia a dia. Isso em si é extremamente interessante.

Claro que essa não é uma verdade absoluta, mas é sem dúvida uma forma possível de enxergar a tecnologia.

E é nesse clima de reflexão que quero finalizar este artigo e esta trilogia. Obrigada por ler, e até.

E mail: [email protected] / [email protected]
Discord: op3n
GitHub: github.com/op3ny

--> Versão original
Deseja ver o rascunho do artigo antes de ser revisado? https://github.com/op3ny/artigos/blob/main/artigo4.md

Carregando publicação patrocinada...