P5 é uma modernização da linguagem Processing, promovida por Lauren McCarthy em 2013, que permitiu a migração do ambiente e das ferramentas do Processing para a web. O ambiente inicial, criado por Ben Fry e Casey Reas em 2001 era grafado como Proce55ing, pois o domínio "www.processing.org" já estava sendo usado por uma empresa. Em decorrência disso, ele era apelidado internamente de P5. Em sua adaptação para a web, McCarthy fez uma referência às origens e à história desta tecnologia.
P5 não é uma linguagem de programação. Ele é um framework: uma biblioteca de ferramentas de programação (API) voltada para as tecnologias criativas, que funcionam dentro de uma estrutura/mecanismo (pipeline) pré-definido. Tanto a biblioteca quanto esta estrutura foram herdadas do Processing, e se mantém praticamente idênticas, o que significa que qualquer pessoa com familiaridade em Processing poderá programar com P5 imediatamente, e vice-versa. A diferença entre as duas é que Processing utilza como base a linguagem Java, e P5 a linguagem Javascript, logo, diferenças de sintaxe, procedimentos e recursos que existem entre elas se refletirão na diferença entre Processing e P5.
P5, como 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.
P5 tem sido adotado amplamente para a criação de arte computacional, para instalações e projeções interativas, e para a visualização de dados. A comunidade OpenProcessing mantém uma série de obras criadas em sua própria plataforma usando Processing e P5. 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 P5. 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 P5.
O capítulo Funções auto-invocadas é dedicado às funções-tronco do P5, responsáveis por configurar o programa e realizar o trabalho permanente de desenho na tela.
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.
P5 pode ser construído e executado sem a necessidade de ferramentas específicas para seu desenvolvimento. O código em sí é um arquivo de texto puro (UTF-8) que pode ser elaborado usando um editor como o Notepad (do Windows), o Text Editor (do MacOS ou Linux), ou mesmo através de um terminal (no Linux, MacOs, Windows, MS-Dos, ou qualquer outro sistema operacional). Há, contudo, ferramentas de produtividade destinadas a agilizar/facilitar seu desenvolvimento que incluem verificação de erros no código (Linting), marcação de sintaxe (Highlight), e outros recursos bastante úteis para o programador. Aqui está uma relação das ferramentas mais populares para edição de código:
Para trabalhar com estas ferramentas no seu ambiente local e off-line, será necessário o download da biblioteca P5:
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 P5 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.
var count = 0; var cor = '#78008A'; function draw () { stroke(cor); var x1 = random(300) - 75; var y1 = random(300) - 75; var x2 = random(300) - 75; var y2 = random(300) - 75; line(x1,y1,x2,y2); count++ if (count > 1000) { count = 0; if (cor == '#78008A') { cor = "#FFFFFF"; } else { cor = '#78008A'; } } }