Programação como forma de arte
Aprendi a tocar violão aos 13 anos de idade e, algum tempo depois, passei para a guitarra. Toquei em bandas autorais, toquei na noite, toquei para diversos públicos e estilos, e sempre tive curiosidade de entender as nuances de cada estilo, conheci a MPB, Bossa nova, Rock, blues, Heavy Metal (e seus mil subgêneros), música regional, música instrumental, assim como entender as particularidades de cada músico que está inserido em cada um desses ecossistemas. Em todos esses contextos, uma coisa sempre ficou muito clara para mim: música é uma linguagem.
Quando falo em linguagem, não falo no sentido romântico, mas linguagem no sentido prático, concreto e aprendido com vivência e experiência. Para se entender um músico como BB King é preciso um certo grau de sensibilidade, e entender que ele toca um padrão muito comum da escala pentatônica, porém seu diferencial é o “feeling” e o modo como ele toca os bends que se tornaram uma marca registrada. Já um João Bosco tem um estilo que flerta com a essência do samba, MPB e Jazz, sua música tem um grande apelo rítmico e levadas que trazem coisas do partido alto com elementos do Jazz. E se fossemos falar de um Iron Maiden, que é um símbolo do metal mundial, ele traz consigo camadas e dobras de guitarras bem particulares, assim como letras com temáticas históricas. Poderia falar também em diversos outros exemplos, que não caberia aqui: Beatles, Jimi Hendrix, Pink Floyd, Tom Jobim, Stevie Wonder, Mozart, a lista é longa. Mas o ponto é o seguinte: cada um desses artistas carregam um contexto histórico e acúmulo de referências, assim como uma gramática própria, cada um tem seu vocabulário, suas regras implícitas, suas quebras de regra e seus padrões recorrentes.
A arte musical é uma habilidade prática. Você estuda teoria, aprende escalas, domina o campo harmônico, aprende técnicas, mas o domínio vem de fato com a vivência. A linguagem só entra de verdade quando você pratica. Isso é facilmente observável quando vemos um gringo tentando tocar samba: por mais que ele conheça bastante de música, não fica igual a de um brasileiro que tem um nível de imersão no estilo bem superior a ele. Isso me lembra também a história de quando o lendário guitarrista Steve Vai foi tocar com a banda brasileira Sepultura no Rock in Rio USA, na cidade de Las Vegas. Segundo relatos dos integrantes da banda, o guitarrista teve dificuldade em tocar o riff da música “Roots Bloody Roots”, que é um groove que emula elementos de percussão brasileira e do “berimbau” de capoeira. O que não tira em nada a capacidade do lendário e virtuoso guitarrista que é o Steve Vai, só mostra que ele não tem a vivência de um brasileiro nativo. Assim como um brasileiro tenta tocar um Jazz americano, não irá sair da mesma forma. Quando falo de vivência da linguagem estou me referindo a isso.
Quando você toca, erra, observa e ajusta, quando você percebe as nuances, dinâmica, intenção, silêncio, timing, nesse sentido técnico, essa habilidade é construída com prática deliberada, método e um nível crescente de abstração e percepção. Isso só é absorvido com anos de imersão e prática. Quanto mais você domina a linguagem, mais fica livre pra se expressar dentro dela, de forma automática, sem pensar.
Quando comecei a programar, percebi que o processo é muito parecido.
Programação também é uma linguagem. Só que, em vez de som, ela se expressa por meio de código. Em vez de acordes e escalas, temos estruturas de dados, fluxos de controle, estados, contratos, protocolos. No início, assim como se aprende uma linguagem falada como o português, tudo parece mecânico: sintaxe, regras, erros, muitos erros. Mas, conforme a prática avança, você começa a enxergar intenção no código, estilos, clareza, economia e excessos.
Um código bem escrito comunica. Ele diz o que está acontecendo, por que está acontecendo e até o que não deve acontecer. Assim como na música, isso não vem de decorar comandos ou saber usar frameworks, mas de vivenciar problemas reais, errar soluções, refatorar, observar outras pessoas mais experientes e internalizar padrões.
Quando você olha para figuras como John Carmack, programador do Doom, fica evidente esse aspecto artístico. Não no sentido estético superficial, mas na forma como ele lidava com limitações técnicas, abstrações matemáticas e performance extrema. O código era uma forma de expressão técnica: uma maneira muito particular de resolver problemas complexos com elegância e eficiência.
John Carmack, e equipe de desenvolvimento do jogo DOOM.
Linus Torvalds criou o Linux não apenas como um sistema operacional funcional, mas como uma expressão de como software deveria ser feito. A filosofia por trás do kernel Linux reflete a visão de Torvalds sobre design de sistemas, sobre simplicidade, sobre fazer as coisas do jeito certo mesmo quando é mais difícil. O estilo dele é pragmático, direto, sem firulas, mas conseguimos ver arte nessa clareza de propósito.
Linus Torvalds - criador do Linux e Git.
E então tem Why the Lucky Stiff, da comunidade Ruby, que levou a programação como arte ao extremo. Why criava código que era deliberadamente poético, escrevia tutoriais em forma de histórias ilustradas, misturava programação com música e arte visual. Para ele, Ruby não era só uma ferramenta para resolver problemas, era um meio de expressão artística. Ele mostrou que código pode ser lúdico, experimental, que pode comunicar personalidade e emoção.
Why - Lucky Stiff - Cartunista, artista e programador, famoso na comunidade Ruby.
Assim como na música, programação exige abstração. Você não pensa em cada nota isoladamente quando toca uma música inteira, você pensa em frases, seções, tensão e resolução. Da mesma forma, um bom programador pensa também em termos de modelos mentais, responsabilidades, fluxos e limites. Bons sistemas também são frutos de boas abstrações.
No fim, a pergunta “programação é arte?” talvez esteja mal formulada. A questão não é se todo código é arte, assim como nem toda música é arte no sentido mais profundo. A questão é que tanto a música quanto a programação são linguagens que permitem expressão. Ambas exigem prática, método, técnica e abstração. Ambas evoluem com o tempo e com a experiência. E ambas refletem quem as pratica.
Para mim, que vivi a música antes da programação, o paralelo é inevitável. Eu consigo enxergar o mesmo processo mental: como aprender a linguagem, praticar até internalizar, abstrair para se expressar melhor. E em ambos os casos, isso é essencialmente o mesmo.
E talvez seja exatamente aí que mora a arte.
