Código também é uma forma de expressão?

Por algum motivo que eu não sei explicar, eu me deparei com um texto falando sobre programação como uma forma de arte. Não estava procurando exatamente por isso, mas aquela ideia ficou na minha cabeça. (https://www.nospace.net/en/blog-en/code-is-craft?utm_source=chatgpt.com)

E quanto mais eu pensava, mais sentido fazia.

A gente está vivendo um momento em que ficou muito fácil falar que programar é só escrever código. Se uma IA consegue escrever uma função em segundos, encontrar um erro ou até montar uma aplicação inteira, então qual seria a diferença entre programar e simplesmente pedir para uma máquina fazer?

Talvez a diferença esteja justamente em entender que código nunca foi só código.

Em 1974, Donald Knuth, um dos nomes mais importantes da história da computação, fez uma palestra chamada “Computer Programming as an Art”. O próprio título de sua obra mais conhecida é “The Art of Computer Programming”. A ideia de que programação pode ser uma forma de arte, portanto, não nasceu agora por causa da inteligência artificial.

Em 2014, Lingliang Zhang escreveu sobre programação como ciência, artesanato e arte. A parte do artesanato me chamou bastante atenção, porque acho que ela explica bem uma coisa que às vezes esquecemos quando falamos sobre programação.

Pensa em alguém construindo uma cadeira.

Existe um projeto. Existem medidas. Existe uma maneira de cortar a madeira, juntar as peças e fazer a cadeira ficar de pé.

Agora coloca duas pessoas para fazer exatamente a mesma cadeira seguindo exatamente o mesmo projeto.

Provavelmente as duas cadeiras vão funcionar.

Mas elas não vão ser exatamente iguais.

Uma pessoa pode fazer um acabamento diferente. Pode escolher uma ferramenta diferente. Pode perceber que alguma coisa no projeto poderia ser melhor e fazer uma pequena alteração. Pode simplesmente ter um jeito diferente de trabalhar.

Mesmo seguindo o mesmo projeto, alguma coisa daquela pessoa acaba aparecendo no resultado.

Eu acho que programação tem muito disso.

Duas pessoas podem receber o mesmo problema e escrever códigos completamente diferentes.

As duas soluções podem funcionar. As duas podem estar corretas. Mas uma pessoa pode organizar o código de uma maneira e outra de uma maneira completamente diferente.

Uma pode gostar de abstrações. Outra pode preferir manter tudo simples e direto. Uma pode pensar muito no que vai acontecer daqui a dois anos. Outra pode estar preocupada apenas em resolver o problema que existe hoje.

Até coisas pequenas começam a mostrar quem escreveu aquele código.

A forma de nomear uma função.

A maneira de organizar os arquivos.

A escolha de uma biblioteca.

A forma de resolver um problema.

Isso tudo parece pequeno, mas são escolhas.

E escolhas são uma parte importante da criação.

Claro que nem todo código é uma obra de arte. Assim como nem toda cadeira que alguém constrói é uma obra de design.

Às vezes você só precisa fazer uma coisa funcionar e ir dormir.

Mas isso não significa que não exista espaço para expressão dentro da programação.

E é justamente aí que a inteligência artificial deixa essa discussão mais interessante.

Hoje uma IA consegue escrever código muito bem. Em muitos casos, provavelmente consegue escrever determinadas partes mais rápido do que eu ou qualquer outra pessoa.

E eu não acho que faça sentido fingir que isso não é verdade.

A questão é que talvez programar nunca tenha sido apenas sobre conseguir escrever as linhas de código.

Existe uma diferença entre saber escrever código e saber o que você quer construir.

Existe uma diferença entre conseguir produzir uma solução e conseguir perceber que aquela solução não é a que você queria.

Existe uma diferença entre seguir instruções e tomar decisões.

Isso me lembra novamente da cadeira.

Uma máquina pode construir uma cadeira perfeitamente seguindo um projeto.

Mas alguém ainda precisou decidir como aquela cadeira deveria ser.

E mesmo quando você entrega o projeto para outra pessoa, ainda existe uma quantidade enorme de pequenas decisões durante o processo.

Talvez programação esteja caminhando para algo parecido.

A IA pode escrever cada vez mais código para nós. Talvez no futuro seja completamente normal descrever o que queremos e receber uma aplicação funcionando.

Mas isso não significa necessariamente que a parte humana desapareceu.

Talvez ela simplesmente tenha mudado de lugar.

Talvez o trabalho deixe de ser escrever cada linha e passe a ser pensar melhor sobre o que estamos tentando criar.

Eu acho interessante porque isso também muda a maneira como enxergamos o aprendizado de programação.

Se o objetivo de aprender a programar fosse apenas saber escrever código, então realmente seria fácil perguntar por que alguém deveria aprender isso quando uma IA pode fazer por ela.

Mas programação ensina outras coisas.

Ensina a quebrar problemas.

Ensina a pensar em possibilidades.

Ensina a perceber quando uma solução está ruim.

Ensina a construir alguma coisa a partir de uma ideia que antes só existia na sua cabeça.

E talvez isso seja mais difícil de substituir.

Não porque uma IA não consiga fazer essas coisas, mas porque existe uma diferença entre uma ferramenta fazer algo e uma pessoa decidir o que quer fazer com aquela ferramenta.

Foi isso que fiquei pensando depois de encontrar aquele texto por acaso.

Talvez eu esteja romantizando um pouco a programação. Talvez esteja mesmo.

Mas eu gosto da ideia de que código pode carregar alguma coisa da pessoa que escreveu.

Do mesmo jeito que duas pessoas podem construir a mesma cadeira seguindo o mesmo projeto e ainda assim fazer duas cadeiras diferentes, duas pessoas podem escrever o mesmo programa seguindo as mesmas regras e ainda assim criar códigos completamente diferentes.

A linguagem é a mesma.

As regras são as mesmas.

O problema pode ser o mesmo.

Mas as pessoas não são.

E talvez seja justamente aí que exista a parte artística da programação.

Não no código por si só.

Mas nas escolhas que uma pessoa faz enquanto escreve ele.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *