Parece uma frase em código, certo? Mas, normalmente, esta é uma das perguntas que surge sempre que se fala de um artista ou de um designer aprender a programar… afinal qual é a melhor linguagem ou programa que podemos utilizar para começar a programar?
Há uns dias, estive a ver a conferência do Ricardo Lafuente no Libre Graphics Meeting. Ele, e de certa forma a Ana Carvalho também, passam brevemente por este tópico (que já temos tido oportunidade de discutir). É sempre uma questão complicada. Para o Lafuente, o ShoeBot é a aplicação de eleição. Percebo e subscrevo, até certo ponto. Mas não partilho completamente a opinião dele. É preciso fazer uma escolha ponderada.
A minha resposta prende-se sempre com os objectivos a alcançar…
Em 40-60% das vezes respondo Flash / AS2. Para um artista ou designer que quer começar a programar, é um excelente ponto de partida. Não foi exactamente o meu, mas também serve. Para Flash, há bastante documentação on e off line. É uma ambiente visual e fornece um feedback quase imediato do que se está a passar (tal como o Lafuente diz) motivando os utilizadores. Permite a criação de gráficos e animações de forma visual e depois interagir através do código de forma bastante eficiente. A eficiência e o poder de processamento são especialmente evidente na versão As3 (bem mais complexa e menos recomendada para iniciantes). É preciso dizer que, normalmente, a pergunta vem associada à criação de um site. Ou, pelo menos, com a intenção de divulgar o trabalho à posteriori. O Flash é também a ferramenta mais utilizada na indústria (de criação web). Estas são vantagens inigualáveis em qualquer outra aplicação.
Mas, se vejo que as pessoas são interessadas, ou que querem começar a fazer algo que realmente envolva a criação (sem grandes condicionantes, ou agenda comercial), a minha resposta automática e universal é o Processing—é muito simples de aprender (a documentação necessária está online e é muito simples de estudar), suficientemente poderoso para fazer algum processamento em tempo real e permite usar todos os recursos de input e de output do computador. Recursos como a entrada e análise de vídeo, áudio e dados locais ou a partir da Internet. Saída de gráficos em vídeo, imagem ou PDFs para o disco do computador (uma limitação séria no Flash/AS), para a Web, ou mesmo para interagir com dispositivos físicos (através do Arduino).
Para além disto, o Processing é altamente extensível através de bibliotecas que já existem. Ao contrário do Flash, não temos um auxílio de ferramentas de desenho, nem uma timeline. Mas criar gráficos em Processing é MESMO muito simples—o feedback visual é imediato. Uma das principais vantagens, para mim, é colocar o utilizador mais em contacto com os princípios da programação—não temos as “distracções” da timeline, dos símbolos, nem da biblioteca do Flash. Isto é, se queremos manipular tempo, eventos, triggers, etc, temos que aprender a usa-los. No início custa, mas a longo prazo é um conhecimento muito útil. Podemos usar uma linguagem procedimental simples em Processing, mas assim que precisamos de mais, rapidamente escalamos para uma linguagem orientada aos objectos. Isto permite uma aprendizagem gradual e universal (?). Para mim, o AS2 e o PHP foram muito mais fáceis de aprender depois de aprender estas noções com Processing. Ah!… o Processing é gratuito! ;)
Por isso, sempre que surgir esta pergunta, devem sempre ter em conta os objectivos a cumprir, o tempo e recursos necessários e a utilidade posterior da ferramenta/linguagem.
Deixo aqui uma lista, uma apreciação de cada ferramenta que conheço para a criação digital, visual e interactiva. Deixem-me um comentário e digam-me qual é a vossa experiência com estas, ou outras ferramentas!
Flash: ActionScript 2.0 (AS2);
- Plataformas: Mac OS X / Windows (Software proprietário)
- Dificuldade (1-5): 2 Média-baixa;
- Poder de processamento/possibilidades (1-5): 2 Médio-baixo;
- Documentação (1-5): 4 Boa;
- Publicação: On e Offline;
- Pontos fortes: Gráficos vectoriais, facilidade de animação. Publicação multiplataforma + web. Tempos de compilação rápidos (bom para prototipagem);
- Pontos fracos: Não faz síntese de áudio, “fechado” nas capacidades do próprio player;
Flash: ActionScript 3.0 (AS3);
- Plataformas: Mac OS X / Windows (Software proprietário)
- Dificuldade (1-5): 3 Média-alta;
- Poder de processamento/possibilidades (1-5): 3 Médio-alto;
- Documentação (1-5): 4 Boa;
- Publicação: On e Offline;
- Pontos fortes: (milhões de ) Gráficos vectoriais, facilidade de animação, manipulação 3D. Publicação multiplataforma + web. Tempos de compilação rápidos (bom para prototipagem);
- Pontos fracos: Ainda não faz síntese de áudio (?), “fechado” nas capacidades do próprio player;
Processing: Processing (Java simplificado);
- Plataformas: Mac OS X / Windows / Linux;
- Dificuldade (1-5): 3 Média-alta;
- Poder de processamento/possibilidades (1-5): 4 Alto;
- Documentação (1-5): 5 Excelente!
- Publicação: On e Offline;
- Pontos fortes: Projecto Open Source académico com uma comunidade de utilizadores e developers extremamente activos, facilidade de aprendizagem, exemplos, extensível e versátil (através de bibliotecas). Publicação multiplataforma + web. Tempos de compilação rápidos (bom para prototipagem);
- Pontos fracos: fraco em processamento em tempo real, não tem qualquer tipo de timeline, ou auxílio visual (apesar da versão do Kaleido existente para Mac);
Java: Linha de comandos (ou um IDE como o Eclipse ou Aptana)
- Mac OS X / Windows / Linux;
- Dificuldade (1-5): 4 Alta;
- Poder de processamento/possibilidades (1-5): 4 Alto;
- Documentação (1-5): 3 Média (linguagem para engenheiros ;)
- Publicação: On e Offline;
- Pontos fortes: Multiplataforma;
- Pontos fracos: Aprendizagem demorada e complexidade de criação de gráficos;
DrawBot: Python (simplificado):
- Mac OS X;
- Dificuldade (1-5): 2 Média-baixa;
- Poder de processamento/possibilidades (1-5): 3 Média;
- Documentação (1-5): 3 Média (curta);
- Publicação: Offline;
- Pontos fortes: Linguagem simplificada, criação de gráficos imediata;
- Pontos fracos: Poder de processamento limitado ao Python e portabilidade e publicação do código/app;
NodeBox: Python (simplificado);
- Mac OS X;
- Dificuldade (1-5): 2 Média-baixa;
- Poder de processamento/possibilidades (1-5): 3 Média;
- Documentação (1-5): 3 Média (curta);
- Publicação: Offline;
- Pontos fortes: Linguagem simplificada, criação de gráficos imediata;
- Pontos fracos: Poder de processamento limitado ao Python e portabilidade e publicação do código/app
NodeBox 2: Python (simplificado);
- Mac OS X / Windows / Linux;
- Dificuldade (1-5): 2 Média-baixa;
- Poder de processamento/possibilidades (1-5): 3 Média;
- Documentação (1-5): (ainda não analisei);
- Publicação: Offline;
- Pontos fortes: Linguagem simplificada, criação de gráficos imediata. Tempos de compilação rápidos (bom para prototipagem);
- Pontos fracos: Poder de processamento limitado ao Python e portabilidade e publicação do código/app
ShoeBot: Python (simplificado);
- Linux;
- Dificuldade (1-5): 2 Média-baixa;
- Poder de processamento/possibilidades (1-5): 3 Média;
- Documentação (1-5): (ainda não analisei);
- Publicação: Offline;
- Pontos fortes: Linguagem simplificada, criação de gráficos imediata. Tempos de compilação rápidos (bom para prototipagem);
- Pontos fracos: Poder de processamento limitado ao Python e portabilidade e publicação do código/app
Spryte: Python (simplificado);
- Windows;
- Dificuldade (1-5): 2 Média-baixa;
- Poder de processamento/possibilidades (1-5): 3 Média;
- Documentação (1-5): (ainda não analisei);
- Publicação: Offline;
- Pontos fortes: Linguagem simplificada, criação de gráficos imediata;
- Pontos fracos: Poder de processamento limitado ao Python e portabilidade e publicação do código/app
OpenFrameworks: C++ (simplificado, através de um editor com o XCode);
- Mac OS X / Windows / Linux;
- Dificuldade (1-5): 4 Alta;
- Poder de processamento/possibilidades (1-5): 5 limitado pela imaginação?;
- Documentação (1-5): 3 Média-Boa (tudo no site deles. Dá para começar a usar, ams às vezes é críptica…);
- Publicação: Offline;
- Pontos fortes: Open Source com um desenvolvimento em comunidade bastante activo. Elevado poder de processamento e versatilidade (através de bibliotecas complementares), criação de gráficos (quase) imediata. Publicação multi-plataforma;
- Pontos fracos: Difícil de aprender e complexo (os próprios builds de cada aplicação levam tempo a compilar, aumentando o tempo de desenvolvimento e teste);
Cinder: C++ (mais ou menos simplificado, através de um editor com o XCode);
- Mac OS X / Windows / Linux;
- Dificuldade (1-5): 5 Alta;
- Poder de processamento/possibilidades (1-5): 5 Alto;
- Documentação (1-5): 2 Média-baixa (Tudo? online, mas é demasiado críptica para mim);
- Publicação: Offline;
- Pontos fortes: Open Source com um desenvolvimento a partir da própria Barbarian Group, com a promessa de adopção pela comunidade. Elevado poder de processamento e versatilidade (logo de raiz, mas com a possibilidade de incremento de bibliotecas especializadas), criação de gráficos (pouco?) imediata. Publicação multi-plataforma;
- Pontos fracos: Mais difícil de aprender do que OpenFrameworks e complexo (os próprios builds de cada aplicação levam tempo a compilar, aumentando o tempo de desenvolvimento e teste);
HTML 5 (Canvas): HTML5 (editor de texto, ou um IDE como o Aptana)
- Plataformas: Mac OS X / Windows / Linux / etc…
- Dificuldade: (ainda não experimentei);
- Poder de processamento/possibilidades (1-5): 2 Médio (limitado ao browser?);
- Documentação (1-5): (ainda não analisei);
- Publicação: On e Offline;
- Pontos fortes: Candidato a standard de indústria (em 2012?)—corre em qualquer dispositivo com um browser actualizado (alguém consegue soletrar iPhone?);
- Pontos fracos: limitado ao browser (?), interacção bastante limitada, técnicas de animação e de scripting difíceis de dominar (baseio-me apenas no que li até à data);
Max/MSP: C++ (Visual Programming)
- Mac OS X / Windows (Software proprietário)
- Dificuldade (1-5): 3 Média-alta (é fácil de começar, mas a algoritmia torna-se muito complexa para o meu gosto);
- Poder de processamento/possibilidades (1-5): 5 Alto;
- Documentação (1-5): (ainda não analisei);
- Publicação: Offline;
- Pontos fortes: Linguagem visual (node compositing), manipulação de objectos, construção de patches e compilação muito rápida (excelente para prototipagem), poder de processamento em tempo (quase, ou mesmo) real. Perfeito para aúdio. Extensível;
- Pontos fracos: Torna-se facilmente crítico/complexo à medida que os programas (patches) aumentam em funções. Desvia a nossa atenção da aprendizagem (dos conceitos) da programação revelando ser um investimento pouco versátil a longo prazo (para quem está a começar);
PureData: C++ (Visual Programming)
- Plataformas: Mac OS X / Windows / Linux;
- Dificuldade (1-5): (ainda não analisei);
- Poder de processamento/possibilidades (1-5): 3 Médio (limitado ao ecrã?);
- Documentação (1-5): (ainda não analisei);
- Publicação: Offline;
- Pontos fortes: Open Source. Linguagem visual (node compositing), manipulação de objectos, construção de patches e compilação muito rápida (excelente para prototipagem), poder de processamento em tempo (quase, ou mesmo) real. Perfeito para aúdio. Extensível;
- Pontos fracos: Mais “feio” do que o Max. Torna-se facilmente crítico/complexo à medida que os programas (patches) aumentam em funções. Desvia a nossa atenção da aprendizagem (dos conceitos) da programação revelando ser um investimento pouco versátil a longo prazo (para quem está a começar);
VVVV: C++ (Visual Programming):
- Plataformas: Windows (Software Proprietário)
- Dificuldade (1-5): 3 Média-alta;
- Poder de processamento/possibilidades (1-5): 5 Alto;
- Documentação (1-5): (ainda não analisei);
- Publicação: Offline;
- Pontos fortes: (não analisei, mas parece-me que é) Ideal para programação e criação de gráficos 3D complexos;
- Pontos fracos: (não analisei) ;
Director: Lingo
- Plataformas: Mac OS X / Windows (Software Proprietário)
- Dificuldade (1-5): 2 Média-baixa;
- Poder de processamento/possibilidades (1-5): 3 Médio-alto;
- Documentação (1-5): 4 Alto (ainda não analisei para as últimas versões);
- Publicação: On e Offline;
- Pontos fortes: Manipulação e integração de múltiplos (todos?) formatos de ficheiros multimédia, talvez o melhor do mercado para Vídeo, Áudio e 3D. Linguagem de Script simples e escalável (Lingo). Publicação multiplataforma + web. Tempos de compilação rápidos (bom para prototipagem);
- Pontos fracos: “fechado” nas capacidades do próprio player, depende muito de bibliotecas externas (Xtras);
(imagem do topo do post retirada do site do Nodebox 2)

Belo resumo! Talvez queiras acrescentar o Director que apesar de velhinho e com morte anunciada há vários anos, continua a ser actualizado pela Adobe.
Obrigado guictx!
Na realidade não o incluí na lista, porque não o considerei como uma ferramenta de criação artística… Actualmente não o considero, mas talvez seja um erro preconceituoso da minha parte… Até porque foi com o (Macromedia) Director que me iniciei nesta área.
Vou incluir!
Já não o uso desde a versão 10 (mais ou menos desde 2004), o último trabalho que fiz com este Software foi para um trabalho de Laboratório Multimédia no Mestrado… já lá vão uns aninhos, e por isso o meu estado de actualização em relação ao Adobe Director é… fraco!