Reacendendo a emoção pela programação

A programação pode ser tediosa, monótona e estressante. Se distanciar para refletir sobre o quão extraordinária ela é pode trazer a emoção de volta

Author Photo
10:00 am - 14 de junho de 2022
programação programador desenvolvedor

Nós humanos somos muito engraçados. Com que rapidez deixamos de ser humildes pela façanha improvável do voo humano para ficarmos irritados com o tempo que leva no aeroporto. Somos rotineiramente antagonizados pelo trânsito, mas apenas ocasionalmente nos surpreendemos com a existência de uma coisa chamada automóvel.

Um dos exemplos mais proeminentes de conquistas humanas recentes é o que chamamos de linguagem de programação. Revisar os feitos mentais olímpicos que pontuam a história de sua criação o ajudará a redescobrir a natureza quase fantástica da programação.

O programador, como o poeta

Frederick P. Brooks, Jr., em sua influente coleção Mythical Man Month, escreve: “O programador, como o poeta, trabalha apenas ligeiramente afastado do pensamento puro”. Essa é uma afirmação digna de reflexão. Para o programador que trabalha e qualquer pessoa envolvida em ajudá-los a ter sucesso, pode servir para despertar a inspiração adormecida.

Poderíamos dizer que programar é uma atividade que transita entre o mental e o físico. Poderíamos até dizer que é uma forma de interagir com a natureza lógica da realidade. O programador salta alegremente pela divisão mente-corpo que tanto confundiu os pensadores.

“Admitido isso, podemos propor executar, por meio de máquinas, o ramo mecânico desses trabalhos, reservando para o intelecto puro o que depende das faculdades de raciocínio”. Assim disse Charles Babbage, criador do conceito de um computador digital programável.

Babbage estava concebendo a computação em 1800. Babbage e seu colaborador Lovelace estavam concebendo não um novo trabalho, mas um meio inteiramente novo. Eles extraíram do éter um terreno físico para nossas ideias, uma maneira de testá-las concretamente e disponibilizá-las dessa forma a outras pessoas para consideração e elaboração.

Em minha própria vida, estudando filosofia, descobri o descontentamento da forma-pensamento que nunca chega a ação direta. Nesse sentido, Brooks completa seu pensamento acima quando escreve: “No entanto, a construção do programa, ao contrário das palavras do poeta, é real no sentido de que se move e funciona, produzindo saídas visíveis separadas da própria construção”.

Uma espécie de dança em câmera lenta entre o desenvolvimento mental e mecânico foi encenada ao longo dos séculos para chegar ao que agora podemos fazer no navegador com um toque casual da tecla F12.

Considere este tear programável do século 18 e o papel que ele desempenha no conto. É interessante olhar para uma máquina barroca de tecelagem algorítmica e ver cartões perfurados que são análogos precisos e ancestrais dos cartões perfurados dos primeiros computadores. A interação do pensamento condensador e das máquinas rarefeitas finalmente se encontram na linguagem de programação moderna.

Admiração maravilhada

Para uma visão mais ousada e precisa do desenvolvimento da programação, veja a ambiciosa história de Ron Pressler, Finite of Sense e Infinite of Thought. Dos passos hesitantes da antiguidade aos saltos de tirar o fôlego como os de Babbage e Turing, há a sensação de se mover em direção a algo não totalmente compreendido, mas sentido intuitivamente. Estamos na era da realização da ampla promessa dessa coisa.

O relato do Sr. Pressler marcha resolutamente para a chuva de granizo de detalhes matemáticos e lógicos, mas antes de iniciar a jornada, ele escreve que “a admiração maravilhada é uma poderosa ferramenta de marketing, mas mistifica em vez de esclarecer”. Aqui entendemos que o alerta é evitar cair em modismos e modas de programação. Este é um bom conselho.

Por outro lado, não queremos cair do precipício para o outro lado, numa indiferença ressecada.

Seria nosso prejuízo dispensarmos inteiramente a admiração. É saudável e vital manter a inspiração viva, levantar a cabeça do trabalho, diminuir o zoom para obter perspectiva.

Não há realmente nenhuma razão para divorciar a alegria de codificar da disciplina. Na verdade, essa é uma receita para a insatisfação. Burnout em TI é galopante. É preciso haver mais admiração, não menos.

Turing-completo

Um momento chave na história da programação é a máquina universal de Alan Turing. Este é outro feito mental que podemos apontar ao reconhecer que a programação foi alcançada com um alto custo intelectual (e um grande custo pessoal no caso de Turing). A dificuldade em manter na mente a ideia de um sistema autorreferencial que pode descrever tanto a si mesmo quanto os programas que executa. Hoje usamos computadores que armazenam as informações e as instruções para trabalhar com elas no mesmo espaço de memória.

Essa ideia foi adotada por Von Neumman para sua arquitetura, que sustenta o funcionamento dos computadores modernos. É uma daquelas coisas “óbvias uma vez feita”: a capacidade de armazenamento de dados do sistema é aproveitada também para seu código. Antes de ser realmente feito, porém, é tudo menos óbvio.

O tl;dr aqui é que a ideia de um arquivo que pode ser tanto de dados quanto executável é um avanço conceitual que cria um sistema modificável e extensível no qual estamos trabalhando desde então.

Podemos dizer com certeza que uma máquina Turing-completo sendo realizada e comumente disponível é algo não apenas impressionante, mas até há relativamente pouco tempo, nem mesmo prontamente concebível. Os conceitos básicos para envolver a mente em torno dela ainda não eram claramente discerníveis.

Interação humana

Tudo o que dissemos até agora se concentrou na natureza da programação em si. Outro aspecto importante que devemos mencionar é o efeito que teve na interação humana. Independentemente de os computadores estarem evoluindo ou não para uma singularidade, o efeito geral da capacidade aprimorada da humanidade de se comunicar via software é um evento divisor de águas.

Quando visto deste ângulo, o software habilitado para web é visto como a metáfora familiar do ciberespaço, um novo tipo de meio de interação. Tendo em mente o que descrevemos antes – a ponte entre o mental e o físico – essa paisagem oferece uma oportunidade única de interagir uns com os outros em grande parte no reino do pensamento com o apoio de uma estrutura lógica executável.

Quando unidos com a ideia de Turing de um universo de máquina potencial construída dentro do sistema, vemos o potencial para mundos de ideias em interação. Aqui pode-se sentir que ainda estamos em progresso, ainda ativos no sentimento de que novas idéias sejam trazidas à vida.

O futuro se desenrolando

Nosso trabalho diário em software de programação, então, é parte do desdobramento contínuo de realidades futuras imprevisíveis.

Talvez as ideias que circulam na esfera da Web3.0, sustentadas pelas inovações do Blockchain, desempenhem um papel. Muitos certamente pensam assim. Outros discordam veementemente. De qualquer forma, e não à toa, o Facebook mudou seu nome para Meta.

Talvez a computação quântica tenha um papel. Afinal, ela permite a interação com um caráter inerentemente diferente da realidade física subjacente, a do não-binário.

Todas as coisas retornam aos humanos usando os sistemas, fazendo a programação e ajudando-os a ter sucesso. Lembremos que, acima de tudo, a tecnologia serve às pessoas. Desenvolvedores felizes escrevem código melhor, e isso é melhor para o resultado final, é verdade, mas o ponto mais fundamental é que desenvolvedores felizes são pessoas felizes.

Se puder, lembre-se da sensação de possibilidade inerente à abertura do código que faz um programa funcionar. Foi disparado não apenas com um interesse técnico, mas com uma qualidade quase fantástica. E por que não? Menos de cem anos atrás, uma linguagem de programação era uma possibilidade vagamente percebida que poderia ou não resultar em algo real.

Newsletter de tecnologia para você

Os melhores conteúdos do IT Forum na sua caixa de entrada.