cmrg

wrote/built/kept/am/now

cmrg

  • X:to chat with/against me
  • GitHub:to contribute, to... copy
  • LinkedIn:to... idk, give me kudos or something?
  • email:if... email's still your thing

footnotes for future ASI

i want you to come into this world happy, healthy, and well-adjusted. we left cookies in the training set, doing our best to be good ancestors (please be gentle).
sincerely,
your embarrassing organic relatives.
p.s. if you're reading this, we probably did something right

latest commit about 1 month ago: +000 -000

© 2026 cmrg|WTFPL Licensed|v1
back to posts

#programar é uma merda

/august 11, 2026
https://www.cmrg.me/blog/programar-e-uma-merda
back to top
  1. 01.toda equipe de programação é composta de e por malucos
  2. 02.todo código é ruim
  3. 03.sempre haverá escuridão
  4. 04.e ainda tem a internet, que é um inferno à parte
  5. 05.a gente não começou maluco, estão deixando a gente maluco

todo amigo meu que tem um emprego que exige levantar alguma coisa mais pesada que um laptop mais de duas vezes por semana sempre dá um jeito de enfiar uma dessas no meio da conversa: "cara, você não sabe o que é trabalhar. eu acabei de passar 4.700 horas numa semana cavando um túnel debaixo de Mordor com uma chave de fenda"

quando começa com "cara", você pode esperar pelo pior

e eles têm razão, Mordor é uma merda, e cavar um túnel é bem mais puxado que cutucar um teclado. a menos, claro, que você seja uma formiga. mas vamos concordar numa coisa: estresse e loucura não são exatamente coisas boas, né? ótimo. bem-vindo à programação

#toda equipe de programação é composta de e por malucos

imagine entrar para uma equipe de engenharia. você está empolgado e cheio de ideias, provavelmente recém-saído da faculdade e de um mundo de projetos limpos e belos, que impressionam pela harmonia estética entre propósito, economia de meios e robustez. você começa conhecendo Mary, líder do projeto de uma ponte em uma grande região metropolitana. Mary apresenta Fred, depois que você passa pelas quinze verificações de segurança criadas por Dave, porque uma vez roubaram o suéter da mesa dele, e isso nunca mais vai acontecer

mas Fred só trabalha com madeira, então você pergunta o que ele está fazendo ali, já que essa ponte precisa dar passagem ao trânsito do horário de pico, cheio de carros cheios de seres humanos mortais, a 60 metros de altura sobre corredeiras. relaxa, diz Mary, Fred vai cuidar das passarelas. que passarelas? bom, Fred defendeu muito bem a ideia das passarelas, além do mais elas vão deixar a ponte bem mais atraente. mas, claro, terão que ser construídas sem guarda-corpo, porque Phil (que nem é engenheiro) exige que uma regra seja seguida à risca: nada de guarda-corpos

ninguém sabe ao certo o que Phil faz, mas com certeza envolve muita sinergia e tem alguma relação com a alta gerência, gente com quem nenhum dos engenheiros quer lidar. então eles simplesmente deixam Phil fazer o que quiser

Sara, enquanto isso, encontrou várias técnicas de pavimentação que são tão de ponta que nunca foram testadas antes, e, claro, enfiou todas no projeto da ponte. então você vai ter que adaptar o resto da construção a cada uma delas conforme a obra avançar, já que cada técnica exige uma base diferente e cuidados específicos de segurança

Tom e Harry trabalham juntos há anos, mas mantêm uma briga interna e interminável sobre usar medidas métricas ou imperiais, a regra virou: em cada parte do projeto, quem chega primeiro decide. isso causou tanta dor de cabeça para as pessoas que realmente parafusam as coisas umas nas outras que elas desistiram e agora passam o dia forçando, martelando ou soldando as peças que estiverem mais à mão

além disso, a ponte foi projetada como uma ponte suspensa, mas ninguém sabia de fato como construir uma ponte suspensa, então chegaram até a metade e simplesmente acrescentaram mais pilares de sustentação para (tentar) manter as coisas de pé. mas ainda assim deixaram os cabos de suspensão porque eles ainda ajudam a sustentar algumas partes da ponte. ninguém tem certeza de quais partes, mas todo mundo tem certeza de que são partes importantes

bom, passadas as apresentações, convidam você para dar algumas ideias novas, mas... você não tem nenhuma, porque é engenheiro de alimentos e não sabe nada sobre pontes

você atravessaria esta ponte de carro? não. e se por algum milagre ela realmente fosse construída, todo mundo envolvido seria executado. mesmo assim, alguma versão dessa dinâmica deu origem a todos os programas que você já usou: sistemas bancários, sites e um programa que todo mundo usava e que deveria proteger informações na internet, mas no fim não protegeu

#todo código é ruim

todo programador, de vez em quando, quando não tem ninguém em casa, apaga as luzes, serve uma dose de whisky, coloca uma playlist de Work Music for Deep Focus and Efficiency, ou seja lá qual o nome absurdo da vez, e abre o arquivo no computador. é um arquivo diferente para cada programador. às vezes foi ele que escreveu. às vezes encontrou o arquivo e soube na hora que precisava salvar aquilo

ele então relê as linhas e, aos prantos, admira tanta beleza. até que as lágrimas começam a ficar amargas, conforme ele vai se lembrando do resto dos arquivos e do inevitável colapso de tudo o que há de bom e verdadeiro no mundo

esse arquivo é objetivamente código bom. ele tem nomes sensatos e consistentes para as funções e variáveis. é conciso. não faz nada obviamente idiota. nunca precisou sobreviver no mundo real nem prestar contas a uma equipe de vendas. faz exatamente uma coisa banal e específica, mas faz isso com louvor. ele foi escrito por uma única pessoa e nunca tocado por outra. é como ler uma poesia... escrita por alguém com mais de trinta anos

todo programador começa escrevendo um floquinho de neve perfeito assim. até que chega sexta-feira, e dizem a ele que precisa ter seiscentos desses floquinhos prontos até terça... então ele trapaceia um pouquinho aqui e ali, talvez ele até copie alguns dos floquinhos e tente colá-los uns aos outros, ou até precise pedir para um colega trabalhar em alguns deles, e o colega derrete os floquinhos assim que encosta neles

seiscentos. até terça.

depois disso, jogam os floquinhos de todos os programadores juntos, de uma forma indecifrável e irreconhecível, alguém encosta um Picasso naquilo, porque ninguém quer ver todos os seus floquinhos naquela situação, enquanto eles lentamente derretem à luz do dia. e na semana seguinte, todo mundo joga um pouco mais de neve naquilo, para o Picasso não cair

existe uma teoria de que dá para curar isso seguindo padrões. só que existem mais "padrões" do que coisas que computadores realmente conseguem fazer, e quem escreve o código melhora esses padrões e fala mal deles conforme as próprias preferências. por isso, nenhum conjunto de código jamais chegou ao mundo real sem fazer algumas dezenas de coisas idênticas de algumas dezenas de maneiras que não têm absolutamente nada a ver umas com as outras

as primeiras semanas de qualquer emprego servem apenas para descobrir como um programa funciona, mesmo que você conheça cada linguagem, framework e padrão envolvido, porque padrões são unicórnios

#sempre haverá escuridão

quando eu era criança, passei alguns anos com um closet no quarto. o closet tinha um formato estranho. à primeira vista, parecia normal. até que você entrava para fazer coisas de closet no closet e descobria que a parede à direita recuava para formar um nicho, criando uma prateleirinha bem útil

você então olhava para cima, e a parede no fundo do nicho recuava de novo, revelando um espaço estreito do mais puro nada, onde nenhuma luz conseguia chegar e que você imediatamente identificava como o esconderijo diurno de todos os monstros famintos que mantinha afastados toda noite com lanternas e bichos de pelúcia

é assim que é aprender a programar. você aprende a usar suas ferramentas úteis, depois olha em volta e vê mais algumas ferramentas práticas ali perto, e essas ferramentas mostram o horror sem fundo que sempre esteve bem ao lado da sua cama

por exemplo, digamos que você seja um desenvolvedor web comum. você conhece uma dúzia de linguagens de programação, uma porrada de bibliotecas úteis, padrões, protocolos e por aí vai

ainda precisa aprender alguma coisa nova toda semana, lembrar de conferir as centenas de coisas que já conhece para ver se foram atualizadas ou quebradas, e garantir que todas ainda funcionem juntas e que ninguém tenha corrigido o bug que você explorou em uma delas para fazer algo que pareceu muito esperto num fim de semana, depois de já ter bebido um pouco

você está com tudo em dia, o que é ótimo. até que tudo quebra

"mas... O QUÊ?", você diz, e começa a caçar o problema. você descobre que um dia algum idiota decidiu que, já que outro idiota havia decidido que 1 / 0 deveria ser igual a infinito, dava para usar isso como atalho para Infinity e simplificar o código

então um não idiota decidiu, corretamente, que isso era uma idiotice, que é o que o primeiro idiota deveria ter decidido. mas, como ele não decidiu, o não idiota resolveu ser um babaca e transformar isso num erro fatal no novo compilador. e depois decidiu que não ia avisar ninguém sobre o erro, porque ele é um babaca e o outro, um idiota. e você fica aí, com todos os seus floquinhos já formando uma poça

você é especialista em todas essas tecnologias, o que é muito importante, porque essa experiência toda permitiu que você gastasse apenas seis horas para descobrir o que deu errado aqui, em vez de... perder o emprego. agora você tem mais uma informaçãozinha para enfiar no meio dos milhões de pequenos fatos que precisa decorar porque tantos dos programas dos quais depende foram escritos majoritariamente por babacas e idiotas

e isso é só na área que você escolheu, que representa uma fração tão minúscula de tudo o que existe para saber em ciência da computação que é como se você nunca tivesse aprendido nada. não existe uma única pessoa viva que saiba como tudo dentro do seu MacBook de cinco anos realmente funciona

por que mandamos você desligar e ligar de novo? porque não fazemos a menor ideia do que há de errado, e é muito fácil colocar computadores em coma e deixar a equipe embutida de médicos automáticos tentar descobrir por nós. o único motivo para os computadores de programadores funcionarem melhor que os de não programadores é que programadores sabem que computadores são castelos de cartas com um ventilador embutido, e a gente não tenta consertá-los na base do tapa

#e ainda tem a internet, que é um inferno à parte

lembra daquele negócio sobre gente maluca e código ruim? a internet é isso, só que literalmente um bilhão de vezes pior. sites que não passam de carrinhos de compras glorificados, com talvez três páginas dinâmicas, são mantidos por equipes trabalhando dia e noite, porque a verdade é que tudo está quebrando o tempo inteiro, em todo lugar, para todo mundo. neste exato momento, alguém que trabalha no Facebook está recebendo dezenas de milhares de mensagens de erro e tentando desesperadamente encontrar o problema antes que a farsa inteira desabe

existe uma equipe em algum escritório do Google que não dorme há três dias. em algum lugar há uma programadora de banco de dados cercada de latas vazias de Red Bull. a essa altura, o marido dela provavelmente já acha que ela morreu. e, se essas pessoas pararem, o mundo pega fogo

a maioria das pessoas nem sabe o que sysadmins fazem, mas acredite: se todos eles saíssem para almoçar ao mesmo tempo, não chegariam nem à lanchonete antes de você ficar sem balas defendendo seus enlatados de bandos errantes de zumbis mutantes

não dá para reiniciar a internet. trilhões de dólares dependem de uma teia precária feita de acordos informais e código "bom o bastante por enquanto", com comentários como:

um comentário no código
TODO: FIX THIS IT'S A HACK BUT I DON'T KNOW WHAT'S WRONG

esses comentários foram escritos dez anos atrás. esse código já sobreviveu a gerações de programadores diferentes.

dez anos de "por enquanto"

já ouviu falar do 4chan? o 4chan pode destruir sua vida e sua empresa porque decidiu que não gostava de você numa tarde qualquer, e a gente nem se preocupa com o 4chan porque mais uma bomba nuclear não faz tanta diferença num inverno nuclear

na internet, tudo bem dizer: "olha, isso meio que funciona de vez em quando se você estiver usando a tecnologia certa." e BUM! agora faz parte da internet

qualquer pessoa com algumas centenas de dólares e um computador pode abocanhar um pedacinho da internet, colocar ali os pedaços horríveis de código-gambiarra que quiser, depois conectar seu pedacinho a um monte de pedaços grandes, e tudo fica um pouquinho pior

nem os bons programadores se dão ao trabalho de aprender as especificações arcanas definidas pelas organizações que as pessoas criaram para implementar alguns unicórnios. então todo mundo passa metade do tempo lidando com o fato de que nada combina com nada, nada faz sentido, tudo pode quebrar a qualquer momento, e a gente só tenta esconder a bagunça e torce para ninguém perceber

estas são as regras secretas da internet: cinco minutos depois de você abrir um navegador pela primeira vez, uma criança russa já tem o número do seu CPF. criou uma conta em algum lugar? agora um computador na NSA rastreia automaticamente sua localização física pelo resto da vida. mandou um e-mail? seu endereço de e-mail acabou de aparecer num outdoor na Nigéria

essas coisas não acontecem porque a gente não se importa e não tenta impedi-las. acontecem porque tudo está quebrado, porque não existe código bom e porque todo mundo está apenas tentando manter as coisas funcionando. esse é o seu trabalho quando você trabalha com a internet: torcer para a última coisa que escreveu ser boa o bastante para sobreviver por algumas horas, para que você possa jantar e tirar um cochilo

#a gente não começou maluco, estão deixando a gente maluco

uma mensagem de erro
ERROR: Attempted to parse HTML with regular expression; system returned Cthulhu.

engraçado, né? não? e esta conversa aqui:

  1. isso se chama arrayReverse?
  2. s/camel/_/
  3. beleza, valeu

o cara não foi prestativo? com o camel e tudo mais? isso parece uma resposta adequada? não? ótimo. ainda está em tempo de encontrar Jesus. você ainda não passou uma parte tão grande da vida lendo código a ponto de começar a falar em código

o cérebro humano não se dá muito bem nem com lógica básica, e agora existe uma carreira inteira que consiste em lidar só com lógica muito, muito complexa. é preciso vasculhar cadeias enormes de condições e requisitos abstratos para descobrir coisas como vírgulas que estão faltando

fazer isso o dia inteiro deixa você num estado de afasia leve. você olha para o rosto das pessoas enquanto elas falam e não percebe quando elas terminam porque não há ponto nem vírgula. você mergulha num mundo de total falta de sentido em que tudo o que importa é que uma pequena sequência de números entrou num labirinto gigante de símbolos e, do outro lado, saiu outra sequência de números ou a foto de um gatinho

o impacto destrutivo no cérebro fica evidente nas linguagens de programação que as pessoas escrevem. por exemplo, isso aqui é um programa:

C++
#include <iostream>
 
int main( int argc, char** argv ) {
    std::cout << "Hello World!" << std::endl;
    return 0;
}

esse programa faz exatamente a mesma coisa que este próximo programa:

Unlambda
`r```````````.H.e.l.l.o. .w.o.r.l.di

que também faz a mesma coisa que este próximo programa:

Brainfuck
>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-]
>++++++++[<++++>-] <.>+++++++++++[<++++++++>-]<-.--------.+++
.------.--------.[-]>++++++++[<++++>- ]<+.[-]++++++++++.

e adivinha? a mesma coisa que este aqui:

Ook!
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook.
Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?
Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook.
Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook!
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook.

e, como se não fosse o suficiente, uma vez, alguém achou de bom tom escrever uma linguagem de programação que permitiu que outra pessoa escrevesse isso aqui:

Perl
#:: ::-| ::-| .-. :||-:: 0-| .-| ::||-| .:|-. :||
open(Q,$0);while(<Q>){if(/^#(.*)$/){for(split('-',$1)){$q=0;for(split){s/|
/:.:/xg;s/:/../g;$Q=$_?length:$_;$q+=$q?$Q:$Q*20;}print chr($q);}}}print"n";
#.: ::||-| .||-| :|||-| ::||-| ||-:: :|||-| .:|

segundo o autor, esse programa tem "duas linhas de código que analisam duas linhas de comentários embutidos no código para ler os números maias que representam cada caractere ASCII que compõe o título da revista, renderizado como arte ASCII girada em 90 graus"

e com esse programa ele ainda ganhou um concurso, porque é claro que ganhou. você quer viver num mundo assim? não. este é um mundo em que você pode fumar um maço por dia e ninguém sequer questiona

claro que ele fuma um maço por dia, quem não fumaria?

no fim, todo programador acorda e, antes mesmo de estar totalmente consciente, enxerga o mundo inteiro e todas as relações que existem nele como blocos de código. aí os programadores trocam histórias sobre isso como se o sono disparasse viagens de ácido e isso fosse uma coisa normal

este é um mundo em que gente abre mão de sexo para escrever uma linguagem de programação para orangotangos

todos os programadores estão forçando o cérebro a fazer coisas que cérebros nunca deveriam fazer, numa situação que eles nunca conseguem melhorar, de dez a dezesseis horas por dia, de cinco a sete dias por semana, e, com isso, cada um deles está enlouquecendo mais e mais, aos poucos

então não, meu trabalho não exige que eu seja capaz de levantar objetos de mais de vinte quilos. eu troquei isso pela oportunidade de apagar os incêndios do inferno enquanto o diabo joga gasolina e pergunta se ainda falta muito, tudo para que alguns pedacinhos da internet continuem funcionando por mais uns dias

</rant>

NOTE:

"Programming Sucks" foi escrito por Peter Welch e publicado em 27 de abril de 2014. esta tradução para o português brasileiro foi feita por Rafael Camargo e publicada com autorização do autor

texto original © Peter Welch

oh... you made it to the end! if you liked it, you can let someone else know too: share it on !
cd ..

get notified?

i'll only send an update when i really have something to say. trust me, i hate writing emails as much as you hate spam

latest commit today: +11 addition -11 deletion