Parece idiota perguntar se um programa de computador pode ser uma obra de arte. Talvez se for um programa para uma instalação de arte moderna, parte de uma obra maior. Mas o nosso editor de texto ou sistema operativo não será. É uma máquina, tem uma função definida, executa-a. Não tem nada de artístico. Ou terá?
Tentei e desisti começar por definir o que é a arte. Não sou especialista na matéria. Raciocinemos por exemplos. Arquitectura é arte. Pintura é arte. Fotografia é arte. Literatura é arte. Aonde a Programação parece destoar destes exemplos é em ter uma função bem definida, ser uma técnica usada para resolver problemas concretos. Mas será que destoa? A Arquitectura deve ser funcional. A Fotografia é uma técnica para registar imagens.
Prefiro analisar a questão do ponto de vista do processo de criação. Se estiver a fazer uma qualquer tarefa mecânica, não acrescento arte ao processo. Sou eu próprio uma máquina. Mas embora os programas que escrevo sejam eles próprios máquinas, o processo que os produziu não é descrito por nenhuma acção mecânica repetitiva. Um quadro é "só" um conjunto de camadas de tinta sobrepostas de uma maneira qualquer. O processo que o criou é que não é algo mecânico e bem definido, é uma arte.
Diria que para que uma dada técnica possa ser usada para criar obras de arte tem de ser suficientemente expressiva para representar o estilo do artista. As engenharias tradicionais lidam com restrições físicas e têm esta capacidade expressiva limitada (mas não anulada). É possível argumentar que estas técnicas também podem produzir arte. O caso da programação é mais forte. As restrições físicas são consideravelmente menores, pelo que o número de maneiras para fazer uma dada coisa é muito maior. Aqui se abre o espaço para as soluções imaginativas e conceptualmente belas (tema para outro texto).
Talvez o argumento mais forte para mostrar que a programação é uma arte é o facto de ter público. Ler código escrito por outras pessoas é uma óptima forma de aprender novas técnicas de programação. Quando é mesmo bom é também um prazer.
Programação é arte, ou pode ser. Não tenho dúvidas disso. Sinal de que estou enganado?