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

Tava vagando pela internet e encaro coisas como:

  • 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.

Fui dar uma lida e agora eu fico pensando que 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.

Pensa em alguém construindo uma cadeira. Existe um projeto, medidas, formas de cortar a madeira, formas dejuntar 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 e, provavelmente, as duas cadeiras vão funcionar mas elas não vão ser exatamente iguais. Uma pessoa pode fazer um acabamento diferente, ou uma ferramenta diferente, ou perceber que alguma coisa no projeto poderia ser melhor e fazer uma pequena alteração, ou 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 e, em muitos casos, provavelmente consegue escrever determinadas partes mais rápido (pode até ser melhor) do que você 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, ou 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.

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

    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 comentario

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