Monday, July 27, 2009

Arte e Ciência da Computação - de volta aos primórdios - Parte 2

Unir arte com a Ciência da Computação não é algo muito comum, daí a dificuldade de se encontrar trabalhos que relacionam esses dois temas aparentemente desconexos. Trazemos, então, algumas referências de autores que já citaram de alguma forma como a ciência e a computação se relacionam com a arte.

Como um dos objetivos desse blog é mostrar os benefícios da arte para o desenvolvimento de software, vamos fazer uma pequena reflexão sobre o que seria o conceito de arte e qual as relações entre arte e a ciência. Nos primórdios das Comunicações da ACM, em 1959, os editores destacaram o seguinte objetivo para os periódicos da ACM [0]:
"Se a programação de computadores irá se tornar uma área importante na pesquisa e desenvolvimento da computação, uma transição da programação de arte para ciência deve ser feita."

Donald Knuth, que escreveu um dos livros mais famosos da Computação: The Art of Computer Programming [1], afirmou que a programação deixou de ser uma arte para tornar-se ciência por uma simples razão: começamos a chamá-la de "ciência da computação" [2].

A palavra arte vem do Latin ars, que significa "habilidade". A palavra Grega correspondente seria τεχνη, raíz das palavras "tecnologia" e "técnica". Existiram épocas em que a humanidade não distinguia arte de ciência. As pessoas na idade média ensinavam as artes ciências liberais, que eram as mesmas que as sete ciências liberais (gramática, retórica, lógica, aritmética, geometria, musica e astronomia), das quais três têm bastante relação com a computação de hoje.

Knuth ainda diz [2] que:

"ciência seria o conhecimento que compreendemos tão bem que conseguimos ensiná-lo a um computador; se você não compreende algo totalmente, então seria uma arte lidar um isso (...) Existe uma distância enorme entre o que os computadores podem fazer e o que as pessoas podem fazer. As visões incríveis que as pessoas têm quando falam, escutam, criam ou mesmo quando programam estão longe do alcance da ciência; quase tudo ainda é uma arte (...) A Ciência sem a Arte é suscetível a se tornar ineficaz; a Arte sem a Ciência é suscetível a se tornar imprecisa (...) Precisamos combinar ciência com valores artísticos se quisermos progredir de verdade"

Existe na literatura vários casos que misturam (e confundem) as palavras "arte" e "ciência". Por exemplo, existe o livro The Art of Piano Playing [3] e The Art of Playing the Piano Forte, mas também podemos encontrar The Science of Pianoforte Technique [4], ou ainda The Art of Piano Playing: a Scientific Approach [5]. Podemos citar também The Science of Being and Art of Living [6], livro relacionado a meditação, tópico já tratado algumas vezes nesse blog.

Alvin Toffler disse [7]:

"A sociedade precisa de todos os tipos de habilidades que não são somente cognitivas; elas são emocionais, elas são afetivas. Você não pode dirigir uma sociedade somente com dados e computadores."

Peter Brook, um famoso teatrólogo também argumenta [8] que

"Nos dias de hoje, a tragédia da Arte é que nela não há Ciência; e a tragédia da Ciência é que nela não há emoção."

Albert Eisntein tinha a opinião de que "depois que um certo nível de conhecimento técnico é atingido, ciência e arte tendem a coalescer em estética, plasticidade e forma. Os maiores cientistas são artistas também". Em A Short Introduction to The Art of Programming [9], Dijkstra diz que programação envolve bom gosto e estilo e que um professor não deve ensinar um aluno a escrever um determinado programa, mas ajudar os pupilos a encontrarem seus próprios estilos.

Em The Mythical Man-Month: Essays on Software Engineering [10], Frederick Phillips Brooks compara o pensamento de um programador ao de um poeta, dizendo que ambos trabalham ligeiramente afastamentados de coisas que são pensamento puro. Richard P. Gabriel afirma que todo programador deveria ser treinado como artista [11]. Paul Graham cita várias semelhanças entre programação e pintura [12]. Já que computação é uma ciência e uma arte ao mesmo tempo, deveríamos incluir mais arte no dia-a-dia de alunos de computação, como sugere o Prof. Valdemar Setzer em Um Antídoto Contra o Pensamento Computacional [13]. A famosa astronauta Mae Jemison também concorda que deveríamos unir as ciências com as artes [14].

Em The Art in Computer Programming, Dave Thomas e Andy Hunt mostram como programar é muito mais do que lidar com máquinas. É preciso conhecer o ser humano e interpretar suas vontades, indo além do que é pedido pelo usuário. Precisamos fazer as perguntas certas para o cliente descobrir o que ele realmente precisa. Isso é um trabalho de arte.

Pete McBreen em Software Craftsmanship - The New Imperative Design [15] vê o desenvolvimento de software como habilidade artesanal que mistura sutilmente arte, ciência e engenharia, com o objetivo de entregar sistemas efetivos. Robert C. Martin (também conhecido na comunidade de software como "Uncle Bob") também afirma em Clean Code: A Handbook of Agile Software Craftsmanship [16] que, em resumo, "um programador que escreve código limpo é um artista que, através de uma série de transformações, leva uma tela em branco a um sistema elegantemente codificado."

Como podemos perceber, existem muitos trabalhos que mostram algumas relações entre Arte e Ciência da Computação. Os benefícios da união dessas duas disciplinas aparentemente distintas poderiam talvez significar um avanço, tanto para a Ciência, quanto para a Arte, e consequentemente, para a humanidade.

Para mim, uma grande prova de que devemos nos ligar mais a arte do que estamos atualmente é a repercussão positiva da minha defesa de mestrado. Algumas pessoas podem pensar que não têm talento ou habilidade para realizar uma apresentação como a minha. Eu diria que essas pessoas estão completamente equivocadas. O resultado final do meu mestrado não tem a ver com talento, mas muito mais com trabalho e dedicação.

Não me considero um grande ator. Mas o que eu estudei e pratiquei desde quando comecei no teatro (o vídeo abaixo, feito em 2004, foi minha 2a. peça).




Tudo bem, nessa época eu já sabia tocar violão. Mas isso porque eu comecei a estudar violão com 14 anos.

Todos os autores citados nesse artigo falam de arte e todos são grandes nomes da Computação e da Ciência. Tenho certeza que todo mundo tem alguma arte favorita e acho que cada um deveria investir tempo nessa arte. Uns gostam de tocar, outros de escrever, outros de desenhar. Não importa qual seja a modalidade, tempo precisa ser investido. O resultado desse investimento repercutirá não só para o bem do seu trabalho como programador, mas também para sua vida.

Bibliografia

[0] Walter F. Bauer, Mario L. Juncosa, and Alan J. Perlis. ACM publication policies and
plans
. Journal of the ACM (JACM), 6(2):121-122, 1959.
[1] Donald E. Knuth. The Art of Computer Programming. Addison-Wesley, 1997.
[2] Donald E. Knuth. Computer programming as an art. Commun. ACM, 17(12):667-673,
1974.
[3] Heinrich Neuhaus and K.A. Leibovitch. The Art of Piano Playing. Kahn & Averill
London, 1993.
[4] Thomas Fielden. The Science of Pianoforte Technique. Macmillan London, 1934.
[5] George A. Kochevitsky. The Art of Piano Playing: a Scienti c Approach. Alfred
Publishing, 1967.
[6] Maharishi Mahesh Yogi. The Science of Being and Art of Living. Allied Publishers,
1963.
[7] Thomas Ciszek. A Framework for the Development of Social Linking Theory. 2005.
[8] Yoshi Oida and Lorna Marshall. The Invisible Actor. Routledge, 1998.
[9] Edsger W. Dijkstra. A Short Introduction to The Art of Programming. Technische
Hogeschool Eindhoven, 1971.
[10] Frederick Phillips Brooks. The Mythical Man-Month: Essays on Software Engineering.
Addison-Wesley, 1995.
[12] Paul Graham. Hackers & Painters: Big Ideas from the Computer Age. O'Reilly Media,
Inc., 2004.
[13] Valdemar W. Setzer. Um Antdoto Contra o Pensamento Computacional, 2006.
[15] Pete McBreen. Software Craftsmanship: The New Imperative. Addison-Wesley Professional, 2002.
[16] Robert C. Martin, Clean Code: A Handbook of Agile Software Craftsmanship, Prentice Hall PTR, 2008.


Thursday, July 23, 2009

Arte e Ciência da Computação - de volta aos primórdios


Muitas pessoas me perguntaram qual foi o resultado da minha defesa de mestrado e
qual avaliação que a banca fez. Nós tínhamos uma câmera filmando a defesa, mas a fita acabou (#fail) justamente um pouco depois de a banca começar a argumentar sobre a dissertação. Somente as pessoas que estavam presentes tiveram o privilégio de saber qual foi o impacto que essa defesa teve no Instituto de Matemática e Estatística da USP. Digo isso não para me gabar do meu trabalho, mas porque o fato foi realmente EMOCIONANTE e, sem brincadeira, teve gente que até chorou!

Vou tentar resumir brevemente algumas coisas. Provavelmente não vou lembrar de tudo, mas acho que conseguirei saciar a curiosidade de alguns. Quanto a apresentação da defesa em si, só recebi elogios. Mas logo que essa apresentação que vocês assistiram terminou, comecei a ser literalmente massacrado pelo meu texto na dissertação. A banca não perdoou e criticou muito o meu trabalho. "Eu procurei ouvi-los e, quer saber, ajudou muito!" - tudo que eu aprendi durante quatro anos estudando padrões para introduzir novas ideias serviu demais nesse dia. Eles eram os céticos, eu tinha de ouvi-los.

O principal ponto levantado era o de que a minha dissertação estava mais para livro do que para tese de mestrado. Segundo a banca, aquele não era um trabalho científico. Agora eu vou contar incrível, que poucas pessoas sabem:

Um dos membros da banca era suplente de outro professor que não veio. É regra escolher um suplente para cada membro da banca, em caso de enfermidade ou impossibilidade de o membro escolhido comparecer. Na verdade, depois da defesa, eu fiquei sabendo que o membro da banca que não veio não estava doente ou teve outro compromisso. Ele não veio simplesmente porque ele considerou o meu trabalho uma afronta e que ele nunca aprovaria um absurdo daqueles. Mas tudo bem, o suplente que veio no lugar dele veio e, no final, aprovou o trabalho.

Mas como é que a banca afinal aprovou o trabalho, se ele foi tão criticado? Aí vem a parte mais emocionante daquele dia. Vamos recapitular: a banca tinha 3 membros - um deles era o meu orientador, o segundo era um professor escolhido e o terceiro era o suplente do professor que não veio por não gostar do trabalho. Além desses 3, um quarto professor estava presente na defesa. Era o suplente do segundo professor. Ele quis, por livre vontade, assistir a defesa. Depois que os três integrantes oficiais da banca falaram, o quarto professor pediu a palavra e começou a refutar todos os argumentos contra que tinham sido levantados pela banca. Ele me defendeu!

O resultado final é que o trabalho foi aprovado, com algumas ressalvas. Na visão da banca, eu precisaria tornar a dissertação mais científica, fazer afirmações fortes somente com referências fortes. A minha grande indagação é que boa parte da dissertação era justamente questionar a falta de humanidade na computação. Um texto só é científico se ele é sério, objetivo, chato, impessoal, em linguagem de máquina? O meu texto não tinha nada disso. Eu tomei (propositadamente) várias liberdades, usei uma linguagem mais informal, quebrei regras, usei toda subjetividade que eu podia. Agora eu teria que mudá-lo para ser o que eles queriam. Claro que eu não ia abrir mão do meu ponto.

Um membro da banca me perguntou:
- Você não acha que está sendo muito pretensioso quando diz que tem o objetivo de "fazer com que as ideias dessa dissertação se disseminem para que outros realizem novos trabalhos científicos e tecnológicos em benefício da humanidade."?

O professor que me defendeu disse que eu estava certíssimo e que esse trabalho realmente continha elementos que poderiam beneficiar as pessoas. Ponto.



Outra indagação foi:
- Porque você não foi defender essa tese na Filosofia ou na Faculdade de Educação?

Como assim??? Tudo que eu estava falando ali dizia respeito a COMPUTAÇÃO! Sei que a pergunta do professor na foi maldosa, mas eu não tive organização suficiente na hora para explicar para ele que eu estava falando da falta de HUMANIDADE dentro da COMPUTAÇÃO. Como diz Peter Brook: "Nos dias de hoje, a tragédia da Arte é que nela não há Ciência; e a tragédia da Ciência é que nela não há emoção".

No final, refiz algumas partes, tentando realmente buscar referências para dar força a tudo aquilo que eu estava falando, mas mantendo a minha "linha artística" de expressar as ideias. Tomei o cuidado de explicar, logo no início do texto, que ele era diferente do habitual, para que leitores desavisados não se sentissem ofendidos. Assim que meu orientador revisar a versão final da tese eu coloco ela aqui para que todos possam ler. Não prometo que ela é tão divertida quanto a apresentação de defesa, mas acho que ela está bem fácil de ler (pelo menos algumas pessoas que não entendem nada de computação leram e me disseram que gostaram).



O importante é que eu fiquei muito empolgado com toda essa repercussão da minha defesa. Vou tentar dedicar um tempo fazendo mais paródias de computação, criar outras peças como essa (acreditem, deu trabalho!). Acho que vale muito a pena, porque sei que esse tipo de conteúdo enriquece muito as pessoas, elas realmente se envolvem mais num assunto quando ativamos o lado direito do cérebro.

No meu próximo post falarei sobre todas as referências que encontrei relacionando Ciência e Computação com Arte. Só para dar uma ideia do que eu quero dizer, Donald Knuth, que escreveu um dos livros mais famosos da Computação: The Art of Computer Programming,
afirmou que a programação deixou de ser uma arte para tornar-se ciência por uma simples razão: começamos a chamá-la de "ciência da computação"

OBS: as fotos foram tiradas durante a minha viagem de lua-de-mel. Em breve, publicarei algumas no meu picasa.

OBS2: faltou a explicação do título desse post. Na verdade a verdadeira explicação virá no próximo post. Aguardem!