A linguagem Processing foi criada por Ben Fry e Casey Reas em 2001 enquanto ambos eram estudantes de pós-graduação no MIT Media Lab do Aesthetic + Computation Group de John Maeda.
Processing é, originalmente, uma modificação e simplificação da linguagem de programação Java. Ele usa os mesmos princípios, sintaxe e infra-estrutura, mas retira diversos aspectos originais da linguagem que exigem um conhecimento mais profundo sobre a ciência da computação, como níveis de proteção das variáveis e classes, inicio do código já com uma orientação à objetos com herança de classes, etc. O intuito de Fry e Reas era criar uma linguagem de programação para que artistas e designers pudessem se apropriar, e que pudessem utilizar como ferramenta em seus processos produtivos. Desde o início, o Processing foi projetado como uma primeira linguagem de programação. Foi inspirado em linguagens anteriores como BASIC e Logo, criadas na década de 60/70 para ensinar programação à principiantes e que, de fato, ensinou programação à grande parte dos professores de programação da atualidade, mas que seriam muito limitadas para as possibilidades da computação de hoje.
O Processing é voltado para a criação de mídia visual e interativa, portanto, os primeiros programas começam com o desenho. Iniciantes em programação se sentem mais confortáveis no aprendizado quando vêem seus programas produzindo algo na tela visualmente, e não apenas resultados abstratos. Isso se provou motivador para levar os alunos de design, arte e arquitetura à programação.
A linguagem P5 é uma forma atualizada do Processing. Criada por Lauren McCarthy em 2013, ela substitui a base Java do Processing por Javascript, liguagem nativa nos navegadores web, permitindo que os códigos possam ser executados em documentos web. Não se trata de uma versão melhor, ou pior, que o original, mas da mesma estrutura de programação voltada a outro contexto.
Esta linguagem permanece sendo muito utilizada para a criação de arte computacional, para instalações e projeções interativas. A comunidade OpenProcessing mantém uma série de obras criadas em sua própria plataforma usando Processing. O autor mantém uma curadoria com algumas obras de expressão gráfica generativa:
Este texto amplia o conteúdo do "livro" com todo o material técnico já produzido, relativo ao código Processing. Este conteúdo está organizado de acordo com a relação de cada instrução, ou conjunto de instruções, com o código:
Em Fundamentos se encontram os princípios e elementos básicos de quase todas as linguagens de programação formal, dentro do contexto de Processing. Em Código Criativo estão explicações necessárias para o uso e aplicação das principais instruções gráficas utilizadas para construir programas nesta linguagem.
O capítulo Funções auto-invocadas é dedicado às funções-tronco do código Processing, responsáveis por configurar o programa e realizar o trabalho permanente de desenho na tela. As Funções por Eventos tratam das instruções executadas pelo próprio Processing quando certo acontecimentos se efetivam. Em Funções de Desenho estão detalhadas cada função responsável pelo efetivo desenho na tela, enquanto em Funções Especificadoras, aquelas responsáveis pelas definições e características utilizadas pelas anteriores.
Em Funções de Transformação estão as instruções utilizadas para utilizar modificadores na matriz de transformação.
Nas Funções de Controle você encontrará o detalhamento das funções úteis para averiguar o que acontece com o programa, necessárias, sobretudo, quando ele não funciona.
Na sequência, você encontrará as demais linguagens de programação incluídas nesta obra no capítulo +Linguagens, e, finalmente, em Solicitações, os documentos através dos quais é possível solicitar que outros elementos ou procedimentos sejam incluídos futuramente neste material.
A construção e execução deste tipo de programação depende da instação do ambiente Processing no computador. Este ambiente é mantido e distribuido gratuitamente pela Processing Foundation. O pacote inclui tanto o ambiente integrado de desenvolvimento (IDE), um editor de código que possui ferramentas integradas para ajudar na sua construção, quanto o ambiente de execução. Seu download pode ser realizando no próprio website do Processing:
Outras opções de desenvolvimento, atualmente, são o uso de ambientes online, utilizadas integralmente dentro do próprio navegador. Para isto, contamos com ambientes integrados de desenvolvimento (IDEs), e ferramentas de experimentação - chamadas de Live Code - que interpretam e executam o código em tempo-real, conforme ele vai sendo digitado. Aqui estão as opções para o desenvolvimento de Processing nestes contextos:
LIVECODE
IDE ONLINE
Experimentações com o código podem ser realizadas em qualquer página do material técnico desta obra, no próprio editor live code incluído, como o que se encontra logo abaixo. Nenhuma modificação feita nos documentos é permanente, e o editor está inserido nas próprias páginas do "livro" para torná-lo interativo, e permitir ao leitor que modifique e experimente com os códigos, sem a necessidade de instalar ou configurar nenhum software previamente.
O editor, infelizmente, não funciona na plataforma iOS.
void setup() { size(150,150); background(#FFFFFF); frameRate(20); stroke(#78008A); strokeWeight(2); fill(#78008A); } colorMode(HSB, 300); int ang, cx, cy, cor = 0, d = 20; float radiano(int angulo) { float r = (angulo * PI)/180; return r; } void polarline(int x, int y, int tamanho, int angulo) { line(x,y,x+(cos(radiano(angulo))*tamanho),y+(sin(radiano(angulo))*tamanho)); } void draw() { stroke(240,cor,250); d = random(20)+20; cx = width/2 + (cos(radiano(ang))*d); cy = height/2 + (sin(radiano(ang))*d); polarline(cx,cy,50+random(20)-15,ang); ang = ang + 3; cor++; if (cor>300) { cor = 0; } }