Caique RodriguesInsights

A Arte da Programação

25 July, 2019
5 min read

Uma das mais importantes rivalidades da história da arte é a disputa entre Henri Matisse e Pablo Picasso.

Matisse foi um dos principais pintores do movimento artístico conhecido como Fauvismo, enquanto Picasso é um dos fundadores do movimento conhecido como Cubismo. Esses dois movimentos artísticos surgiram no início do século XX na Europa porém possuem características bem distintas.

Mesmo com suas diferenças, Picasso uma vez disse, "Se eu não estivesse fazendo as pinturas que eu faço, eu estaria pintando como Matisse" e Matisse disse o mesmo sobre Picasso.

A diferença entre Matisse e Picasso não estava na capacidade técnica - visto que ambos são pintores renomados com trabalhos das mais diferentes naturezas - e sim na interpretação que cada um dava ao mundo que os rodeava.

Observe as imagens abaixo.

Henri Matisse. Le bonheur de vivre. 1905-1906 Pablo Picasso. Les Demoiselles d'Avignon. 1907.

Na esquerda, temos "Le bonheur de vivre", pintada por Henri Matisse entre 1905 e 1906. Na direita, temos "Les Demoiselles d'Avignon", pintada por Pablo Picasso em 1907, depois de ver a obra de Matisse.

Eu, um completo leigo em pintura e história da arte, ouso dizer que ambas as pinturas são a mesma coisa: a representação de um grupo de pessoas nuas. Sou até capaz de descrever as pequenas diferenças mas, com pouco domínio, não tenho condições de justificar o porque delas serem diferentes e, o pior, não sei dizer qual é melhor.

Uma pessoa que entende de arte moderna provavelmente acharia isso um absurdo. Ela seria capaz de descrever cada obra por seus aspectos técnicos de cor e forma, assim como justificaria as escolhas de cada autor como fruto de sua personalidade, de seu temperamento e emoções, de suas habilidades e estilo.

Se ela se interessasse mais por cores, provavelmente diria que a obra de Matisse é superior a de Picasso. Caso fosse mais atenta às formas, diria o contrário.

A verdade é que ambas as obras tem seu valor e suas particularidades representam aquilo que o autor valorizava no momento de sua criação.

Para mim, cada software compartilha da subjetividade que torna uma pintura uma expressão artística única. Portanto, eu acredito que programar é uma arte.

Os problemas que são resolvidos pela programação são problemas complexos e, portanto, não possuem apenas uma solução boa e correta. Por exemplo, ao entregar a mesma especificação de software para duas pessoas, por mais detalhada que ela esteja, provavelmente teremos duas soluções finais que são diferentes entre sí. Assim como se pedirmos para duas artistas pintarem a mesma paisagem, provavelmente teremos duas obras distintas.

Ainda nesse argumento, se pedirmos para uma pessoa pintar a mesma paisagem duas vezes, provavelmente teremos duas obras distintas. O mesmo acontece quando pedimos para uma pessoa desenvolvedora resolver o mesmo problema duas vezes: as soluções provavelmente serão distintas.

Isso acontece porque, assim como na pintura, o processo de desenvolvimento de software apresenta ao autor múltiplos caminhos que são corretos, mas que são diferentes pois não compartilham das mesmas características. A decisão passa então a ser fruto do contexto do autor - sua fundamentação teórica, seus valores e princípios, sua experiência, seu estado de espírito, o contexto da criação, etc - e a solução passa a ser tão boa quanto as decisões que a embasaram.

A subjetividade é tão presente no mercado de desenvolvimento de software que este valoriza a capacidade de produção das pessoas e não, pura e simplesmente, o produto final que essas pessoas geram. Por isso que empresas contratam boas pessoas ao invés de comprar bons blocos de código.

É importante destacar que essa visão artística e filosófica do processo de desenvolvimento de software não menospreza o conhecimento teórico, os fundamentos da computação, e as técnicas de programação. Pois, dizer que software é arte não quer dizer que todo software é bom.

Assim como qualquer expressão artística, existem características que são compartilhadas por boas obras. Cada estilo valoriza mais algumas características em detrimento de outras.

Tanto o domínio das técnicas quanto o entendimento do contexto são elementos fundamentais para a construção de um bom software: uma programadora que domina as técnicas de desenvolvimento de software, mas que sabe pouco (ou nada) sobre Medicina, será tão incapaz de construir um software para cirurgias quanto um médico que sabe muito de Medicina, mas que tem pouco (ou nenhum) domínio das técnicas de desenvolvimento de software.

A programadora tem técnica, mas não tem contexto. O médico tem contexto, mas não tem técnica.

Sendo assim, o verdadeiro valor de uma pessoa programadora está:

  • na capacidade de dominar as técnicas de programação;
  • na capacidade de entender o contexto; e
  • na capacidade de adequar as técnicas ao contexto.

Da mesma forma, uma pintura será tão bela quanto a capacidade de um pintor em realizar pinceladas que resultem na imagem desejada.

Picasso dizia "aprenda as regras como um profissional, para que você possa quebrá-las como um artista". Essa afirmação também vale para o mundo da programação, pois, quanto melhor a sua técnica, mais confortável você estará para adequa-lá a qualquer contexto.

Referências