Configurando o configurador de configurações

Tenho que fazer uma confissão: não nasci para configurar nada.

Configura isso aí, bichão.

Todos nós temos nosso calcanhar de Aquiles, inclusive o próprio Aquiles. Mas estou certo que naquela época esse provérbio ainda não existia. Então Aquiles só tinha "calcanhar". Irônico, não?


É como eu costumo dizer:

Sou péssimo em muitas coisas, mas se há uma coisa que sou muito péssimo é “configurar configurações”. (Virgs, também conhecido como eu mesmo e como o Mr. Bumbum 2012)

É um assunto polêmico para mim mesmo, pois sou obrigado a enfrentar meu medo com uma frequência bem maior do que eu gostaria. Para vocês terem uma ideia do quão traumatizante é o assunto, eu suo frio sempre que penso a respeito de configurar projetos, ambientes de desenvolvimento e similares. Conseguem imaginar a minha tensão ao escrever esse texto?

Dando nome aos bois

Ah, que se exploda. Vou falar mesmo! Estou falando desses trecos como: maven, gradle, ant, CMake, NuGet, apt-get, npm e outros. E o docker que abra o olho, senão acaba sobrando pra ele.

Sim, eu sei que são coisas diferentes e com objetivos diferentes, mas todas partilham do meu mais profundo rancor.

Nem o próprio elefantinho vai com a cara do gradle. Repara como ele tá injuriado!

Eu não sou o único frustrado com isso. A lista de insatisfeitos é enorme. Não acredita? Toma essas: pare com essa merda de gradle; tchau tchau CMake; por quais motivos as pessoas odeiam tanto o maven?; eu ainda odeio o NuGet; por que todo mundo (eventualmente) odeia (ou abandona) o maven?; eu odeio o CMake; eu não gosto do apt-get; use maven, não use gradle; e honestamente, eu odeio o maven. A frustração é bem mais comum do que se imagina, colegas.

Vou parar por aqui para nos poupar.

ÓDIO-DRIVEN-DEVELOPMENT

É batata! Invisto (leia: perco) muitas horas tentando acertar a mão na configuração. Um pouquinho pra cá, um pouquinho pra lá, mudo umas três linhas, mais uns tapinhas e uma boa dose de sorte e fé. O resultado se mantém: dor e decepção. Suo litros feito um condenado de tanta tensão. Depois de dias, quando finalmente acredito que venci minha odisseia particular, percebo que só funciona na minha máquina. Ah não, assim não pode, assim não dá.

Essa é a história da minha vida com os configuradores de configuração: uma eterna batalha entre o pânico e lapsos de euforia.

Tenho sido condenado a repeti-la sistematicamente há anos.

Ideia de jerico

A ideia

Mas não quero falar sobre uma dessas ferramentas especificamente. Quero falar sobre a contradição em termos que é a existência delas. Parem pra pensar na ironia:

- Essa ferramenta é difícil de ser configurada!
- Eureka! Vou criar uma ferramenta brilhante que configure isso por mim. Mas para isso, será necessário despender ainda mais tempo para configurar essa segunda ferramenta.

Hahahaha! Que hilário!

Não soa um absurdo? Se alguém resolveu criar uma segunda parada para configurar as configurações de uma primeira parada, é porque percebeu que havia uma necessidade gritante de se facilitar a configuração da primeira parada. Mas se é necessário dedicar mais esforço para configurar a segunda parada do que configurar a primeira parada, então não faz sentido configurar a segunda parada!!

Impostos do software

Se pararmos para pensar, esses configuradores de configuração se constituem como os impostos do desenvolvimento de software, pois são:

  • necessários;
  • obrigatórios;
  • desproporcionais ao retorno obtido;
  • cada serviço exige um específico; e
  • por vezes nos submetemos a mais de um simultaneamente.

Como se não bastasse, não são um imposto qualquer. Eles seriam a substituição tributária! O pior de todos. Como a substituição tributária, motivos como: desistência, não finalização na cadeia do artefato e deterioração do produto, fazem com que o valor previsto e pago inicialmente possa ser bem maior do que o valor da efetiva operação subseqüente, acarretando em prejuízos irremediáveis. Quando não é menor, só é vantajoso para o produtor no início da cadeia/dependência. Os varejistas/humildes desenvolvedores têm que arcar com todo o ônus para não prejudicar o consumidor/usuário final.


Mato sem cachorro

É o que tem para hoje

Não nos restam muitas alternativas. Por conta da linguagem adotada e necessidades específicas do contexto do projeto, temos que escolher o configurador mais apropriado (leia: o mais fácil). Depois de algum tempo, quando finalmente a gente está quase manjando, surge um novo, prometendo o céu e resolver os absurdos do anterior. Já sabem onde isso vai levar, né? Se não sabem, eu explico: logo logo, quando você estiver quase ficando fera nesse novo, surgirá um terceiro "ainda melhor".

Eu juro que, apesar de não parecer, sou um cara de bem com a vida. Sempre up, com uma energia contagiante e alto astral. Mas não dá! É difícil se manter pra cima quando ninguém mais ao seu redor quer colaborar com você. Eu não sou de ficar reclamando, mas os guarda-chuvas, sachês de maionese e configurar esses bagulhos me deixam louco. Eu saio de mim e não respondo pelos meus atos. Mais uma vez a tecnologia me desapontou.

Venda casada

Qual é pessoal? É de propósito? Desconfio que as empresas responsáveis pela criação da primeira parada dificulte o processo de configuração só para vender mais a segunda parada que, supostamente, facilitaria esse processo de configuração. Criam a necessidade e vendem o problema visando o lucro em detrimento do nosso bem-estar — como aquela famosa relação suspeita entre as companhias de anti-vírus e a fabricação de vírus. Desse modo, venderiam as duas paradas juntas. Isso tem nome: venda casada. Algum parágrafo de alguma lei configura isso como crime inafiançável e imprescritível (não sei o que estou falando). Prefiro não acreditar nisso. Darei o benefício da dúvida.

Mas, sendo assim, concluo que o pessoal que desenvolve essa ferramenta configuradora não está se esforçando o suficiente. Lamentável! Concluo também que há uma enorme oportunidade do mercado para preencher essa lacuna. Deveria haver um curso para abordar essas dificuldades e como resolvê-las. Alguém aí está perdendo uma ótima oportunidade de ganhar dinheiro.

Eu tenho que aprender a escutar mais meu lado empreendedor. Sou mesmo um visionário (não).

#Hater detected

Que os detratores do meu detrato me poupem de seus detratos chorumelados. Não quero ouvir blablablás e desculpinhas esfarrapadas. Não quero que argumentem estupidezes dizendo que eu que não sei manipular a ferramenta e não aprendi a configurar apropriadamente o configurador que configura as configurações. Eu sei disso e o texto é sobre minha falta de capacidade cognitiva para manipulá-las. Eu não me importo. O texto é meu. Concedam-me o direito de destilar meu ódio e me deixem em paz!