1.5. Llenguatges i entorns per a la programació creativa
A l’hora de programar, segons la tasca que hàgim de fer, podem usar un tipus de llenguatge o un altre. Al mateix temps, molts llenguatges són capaços de fer tasques molt diverses, per la qual cosa l’elecció d’un llenguatge o un altre pot ser complexa.
Per exemple, JavaScript s’ha establert en el llenguatge per excel·lència del web, però això no treu que puguem desenvolupar un videojoc en JavaScript o que puguem usar Python per programar un web.
Per sort, els conceptes fonamentals de programació, que aprendrem al llarg de l’assignatura, són fàcilment transferibles d’un llenguatge a un altre.

Font: elaboració pròpia.
En el món de la programació creativa també tenim múltiples opcions. A continuació, farem un repàs per diverses de les més populars.
Llenguatges i llibreries
- Processing. És un dels primers projectes pensats des del seu origen per acostar la programació a artistes, dissenyadors i interessats sense coneixements previs. És un llenguatge basat en Java i que, amb el temps, s’ha anat adaptant també a altres llenguatges, com Python amb Processing.py o JavaScript amb Processing.js o p5.js.
- P5.js. Projecte acollit per la fundació Processing i amb la seva mateixa meta: fer accessible la programació a artistes i dissenyadors amb un enfocament molt didàctic. p5.js és una llibreria (pensem en això com una extensió) de JavaScript i està pensada per al web. És l’entorn en el qual programarem al llarg de l’assignatura. En estar basat en el web, ens facilita la tasca d’aprendre, ja que no necessitem descarregar res ni utilitzar un editor de text, sinó que podem fer-ho tot en línia.
- Openframeworks. Implementat en C++, llenguatge compilat, la qual cosa implica un gran rendiment a costa d’una certa complexitat si volem aprofitar totes les seves capacitats.
- Cinder. També implementat en C++, més minoritari que l’openFrameworks però similar en les seves capacitats.
Entorns gràfics de programació
Un tipus de llenguatges que poden resultar atractius per als qui s’inicien en la programació són els que s’engloben dins del paradigma dels entorns gràfics de programació. En aquests, en lloc d’escriure el codi en un editor de text, disposem d’elements gràfics que redistribuïm i connectem entre si per generar els programes. Molts estan pensats com a eines didàctiques per a l’ensenyament de la programació, però altres s’usen en entorns professionals. Moltes vegades, també permeten escriure codi, combinant una capacitat de prototipatge ràpid utilitzant elements visuals amb un control més fi mitjançant el codi que nosaltres creem.
- Max-MSP. Es tracta d’un entorn amb més de trenta anys d’història, molt enfocat al món sonor però que compta també amb grans capacitats gràfiques. Des de fa diversos anys, està integrat com a extra en el programari de producció musical Ableton Live com a Max for Live.

Font: elaboració pròpia.
- Pure Data. Es tracta d’una escissió de codi obert de Max-MSP (qualsevol pot descarregar i modificar el programari). Comparteix moltes funcionalitats i la manera de treballar de Max-MSP, amb l’atractiu que la seva llicència és gratuïta en tractar-se d’un projecte de codi obert.
- VVVV. Equip d’eines multipropòsit enfocat en el tractament de vídeo en temps real i instal·lacions multimèdia.
- Touchdesinger. Nascut a partir del programari de creació Houdini 3D com a solució per treballar amb geometries tridimensionals en temps real, s’ha convertit en una eina molt completa per a la creació digital.
Computació física
Moltes vegades en els nostres projectes podem voler implementar sensors, llums, motors o altres elements que interactuïn o reaccionin als nostres programes. Per això, també disposem d’eines que ens permeten «sortir de la pantalla» i crear interaccions amb elements físics.
- Arduino. Va néixer amb el mateix esperit de Processing d’acostar la programació a persones amb perfils creatius, però en aquest cas aplicat a l’electrònica. Amb Arduino resulta molt senzill crear projectes d’electrònica creativa o implementar sensors i actuadors que agreguin interactivitat als nostres programes.
- Raspberry Pi. Projecte la meta del qual és fer la computació accessible a tothom. Per uns 30 € ofereixen un ordinador completament funcional en el qual podem executar els nostres programes.
Motors de videojocs
Una altra categoria que podem destacar és la dels entorns per a la creació de videojocs. Podem pensar en un videojoc com l’aplicació interactiva total (gràfics i sons generats en temps real, interacció a través del teclat, ratolí o altres dispositius, etc.), per la qual cosa podem aprofitar tot el que ens ofereixen i aplicar-ho de manera creativa, creant experiències que vagin més enllà d’un simple joc. Aquests entorns també solen venir preparats per a moltes tasques que en altres llenguatges o entorns poden resultar tedioses de dur a terme, com podrien ser la realitat virtual o augmentada. Podem pensar en aquests com en editors de 3D (Cinema 4D, 3D Studio, Blender, etc.) que ens permeten treballar en temps real i incloure programes que controlin els comportaments dels diferents elements.
- Unity 3D. Entorn de creació de videojocs amb multitud d’adeptes, des d’estudis independents a grans companyies. Té una gran comunitat darrere i molts recursos d’aprenentatge disponibles. Dins d’Unity podem programar tant en JavaScript com en C#.
- Unreal Engine. Un altre entorn amb gran popularitat, però amb una corba d’aprenentatge una mica més complexa. A Unreal Engine podem programar amb C++.