00 – Introdução

Você deseja criar imagens, sons e experiências digitais interativas? Deseja dominar os princípios da programação e entender o que é um algoritmo? Tratar montanhas de dados brutos e dar algum sentido visual para eles? E, mais importante, quer apenas se divertir com programação na frente de um computador ou celular? Então este livro foi escrito para você. Aqui, de maneira rápida, prática e segura, você aprenderá os elementos fundamentais da programação em Processing.

Em verdade, este último propósito, a diversão, foi o que nos motivou a escrever. Poucas coisas são tão divertidas quanto programar, e poucas coisas são tão educativas quanto programar arte algorítmica e interativa. Criar programas que respondem a seus comandos, às suas ações com o mouse, com toques na tela do seu celular, com o teclado do computador e até mesmo através de sua webcam é uma experiência empolgante.

Vejamos com mais clareza o que é Processing, como surgiu e por que foi criada, e também o que significa trabalhar com sua implementação p5.js.

O que é Processing?

Processing é uma linguagem de programação livre concebida e implementada pela primeira vez em 2001 por Ben Fry e Casey Reas, pesquisadores do MediaLab (Laboratório de Mídia) do Massachusetts Institute of Technology (MIT).

Ao criar a Processing, Fry e Reas tinham a intenção construir uma linguagem simples e poderosa para ensinar os fundamentos de programação a artistas plásticos e designers sem as complicações de linguagens como C++ e Java. Para atingir esse objetivo, eles seguiram o caminho aberto por John Maeda com a linguagem Design by Numbers (DBN), da qual a Processing herdou boa parte dos conceitos. Com o tempo, a Processing passou a ser empregada em áreas muito além da criação de arte digital, como robótica, tratamento de dados, visão por computador, educação científica e até criação de apps para celulares.

A Processing está disponível gratuitamente no site processing.org para as plataformas Windows, Linux e Mac OS, com ampla e detalhada documentação. Sua implementação p5.js, disponível no site p5js.org, procura vencer as limitações das plataformas mencionadas servindo como uma biblioteca Javascript leve e facilmente incorporada em páginas da web.

Usos

Existem dezenas de softwares no mercado para trabalhar com os mesmo elementos de design para os quais a Processing foi criada. Mas algumas de suas características a fazem distinta de outras linguagens alternativas.

Nas seções a seguir, vamos tratar com um pouco mais de atenção cada uma das grandes vocações dessa linguagem, esperando que você se convença de sua utilidade e adequação a vários tipos de usuários.

Educação informática

Frequentemente, o professor de programação deve encarar uma dificuldade inicial em sua prática de ensino: a escolha da linguagem adequada a iniciantes.

As opções variam de pseudolinguagens, como Portugol, a linguagens acadêmicas ou profissionais, como Pascal, Scheme, C, Java, Python e Haskell, utilizadas com diversos graus de sucesso. A compreensão dos elementos fundamentais da prática computacional, no entanto, como entrada e saída de dados, escolha entre alternativas, repetição de instruções, criação e manipulação de classes e objetos, uso da recursão e manejo de diversas estruturas de dados constituem uma barreira cognitiva de difícil transposição para a maioria dos alunos.

Em apoio à superação dessas dificuldades, a Processing apresenta-se como uma alternativa simples e viável, mantendo o foco nos gráficos e na interatividade. É um linguagem completa, com forte vocação didática e capaz de criar programas reais voltados à solução de problemas concretos. Seu diferencial está na rapidez com que os programas são criados e testados — em outras palavras, prototipados — com resultados visuais que confirmam ou refutam conjeturas feitas pelo programador. Com isso, a Processing pretende trazer de volta a simplicidade da linguagem BASIC e a interatividade e o prazer da linguagem LOGO.

Educação científica

Educadores nas áreas de ciências e matemática podem se beneficiar da Processing em seus ambientes de ensino, fazendo com que alunos apliquem de forma contextualizada os conceitos aprendidos nas aulas de ciências e matemática. A Processing, assim como no passado a linguagem Logo, age como uma interlocutora do estudante, ao trazer o resultado de suas conjeturas em forma gráfica, levando-o à reflexão sobre as consequências de seus pensamentos. E nada melhor do que poder testar e experimentar em um ambiente amigável e sem perigos, como o que a Processing oferece.

Tratamento de dados

Existem profissionais que lidam diariamente com uma massa enorme de dados. Em geral, eles tentam domá-los através de planilhas que geram gráficos em forma de pizza ou em barras. Mas nem sempre as relações entre as diversas variáveis ficam claras, e a compreensão sobre a influência de cada uma no fenômeno em questão permanece obscura.

Os dados em si não dizem nada. É preciso organizá-los, relacioná-los uns com os outros, descobrir suas interdependências. Um aspecto importante, no entanto, costuma ser negligenciado pelos profissionais que lidam com eles: a comunicação dos dados e de suas relações à equipe de trabalho ou ao público em questão. Existe uma maneira visual de promover a compreensão de um universo de dados melhor do que os tradicionais gráficos de barras?

Essa é uma das questões que determinaram a criação da Processing, exibindo seu lado prático de ferramenta estatística e comunicativa. Criar gráficos de diversos tipos, para além dos gráficos padronizados costumeiros oferecidos por planilhas eletrônicas, é uma das grandes vocações da Processing.

Arte digital

Artistas plásticos, escultores, arquitetos e músicos têm utilizado o computador como um instrumento auxiliar na criação de suas obras desde os primórdios da computação moderna, na década de 1960. Logo de início, esses profissionais viram no computador algo mais do que um mero coadjuvante do processo de criação. Computadores são agentes eficazes na produção de obras de execução difícil ou mesmo impossível sem sua intervenção.

Fractais, animações e efeitos especiais em filmes são hoje um elemento comum da cultura popular e erudita. O uso de computadores na criação de arte é generalizado e em muitos casos indispensável. Esse uso traz também à ordem do dia a interatividade entre criador e espectador, proporcionando uma melhor fruição artística e compreensão da obra e dos conceitos envolvidos.

A Processing promove de forma ativa a criação de arte digital por uma ampla gama de usuários. Artistas profissionais, amadores e hobbistas de computação tem na Processing uma linguagem e um ambiente riquíssimos para a expressão de suas ideias artísticas.

Criação de aplicativos para Android

Recentemente, com a plataforma Android se tornando o sistema operacional mais utilizado no mundo, as linguagens de programação modernas tem sido renovadas para atender às demandas por softwares voltados para esse sistema.

A Processing, por ser programada em Java, a linguagem nativa das aplicações Android, se destaca nesse campo de maneira natural. Aplicações para Android, das mais simples às complexas, podem ser programas diretamente no celular e lá mesmo instaladas sem a menor dificuldade.

Sites de interesse

Há muitos sites na internet já dedicados à Processing. A maioria – ou quase todos – estão em inglês. As sugestões abaixo servem como um ótimo começo:

  • http://www.processing.org — Site oficial da linguagem. Downloads, extensa coleção de tutoriais e links.
  • https://p5js.org — A p5.js é uma biblioteca de funções escritas na linguagem Javascript para incorporação e execução de programas escritos em Processing em páginas da internet. Esta é a versão da linguagem que utilizaremos neste livro.
  • http://www.openprocessing.org — Site dedicado à divulgação de obras criadas com Processing, com código-fonte disponível e possibilidade de utilização da p5.js para a criação online de programas.
  • http://www.creativeapplications.net/category/processing/ — O Creative Applications é um site dedicado à arte digital em geral. Muitos artistas lá utilizam a Processing em suas aplicações.

Próximo capítulo