**Processing** on programmeerimiskeel ning tarkvarateek, mis on loodud lihtsaks piltide genereerimiseks ja muutmiseks. Selle fookus on interaktiivse meedia ja kunstiteoste loomisel, pakkudes erinevaid klasse ja funktsioone mugavaks visuaalseks programmeerimiseks.

Processing põhineb Java programmeerimiskeele peal.

Ajalugu
-------

Projektiga alustati 2001. aastal Casey Reasi ja Ben Fry poolt, kes on pärit MIT Media Labi Esteetika ja Arvutuste Grupist. Aastal 2012 projektiga liitus Daniel Shiffman ning asutati Processing Foundationi. Johanna Hedva liitus projektiga 2014. aastal.

Algusest peale Processing oli loodud eesmärgiga õpetada programmeerimist algajatele, kuid samuti olla piisavalt võimas ka edasijõudnud kasutajatele. 

2023. aastal teatas Ben Fry, et tema astub Processing Foundationist tagasi.

Funktsionaalsus
---------------

Processing koosneb klassidest ja funkstioonidest, mis on kirjutatud Java programmeerimiskeele põhjal. Funktsioonide abil saab lihtsasti joonistada ekraanile kujundid, seadistada värvid, animatsioonid, loogika ja muu. Lisaks teegis leidub lihtsustatud matemaatilisi ja geomeetrilisi funktsioone.

Kujutatud on Processing IDE 4.0b1 versiooni ekraanitõmmis. Avatud on näidisprogramm ja selle kood on nähtav.Processing 4.0b1 IDE ekraanitõmmis.
Processing sisaldab endas lihtsustatud versiooni integreeritud programmeerimiskeskkonnast (IDE), mida nimetatakse *Sketchbookiks*. Kasutades *sketchbook*i saavad algajad kasutajad õppida programmeerimist tänu kasutajaliidesele, mis võimaldab kergesti kompileerida ja jooksutada loodud programmi ühe nupuga. Iga programmi lähtekoodi nimetatakse *sketchiks*, mis võib koosneda ka mitmest klassist, kuna iga sketch on Java `PApplet` klassi alamklass.

Näited
------

Processing pakub kaks erilist funktsiooni lihtsaks joonistamiseks ekraanile - `setup()` ja `draw()`. Esimene funktsioon jooksutab koodi ühe korra, ning seda saab kasutada muutujate ja objektide initsialiseerimiseks. Teine funktsioon jooksutab seesoleva koodi iga kaader ehk 60 korda sekundis. Tänu sellele on visuaalne programmeerimine eriti lihtne ja sujuv.

### Kood

Allolev koodi näide võimaldab luua akna halli taustaga, milles on arvutikursori asukoha peale joonistatud roheline ring.

```
void setup() {
  size(640, 480);                // Loo aken suurusega 640x480px
  fill(0, 255, 0);               // Määra kujundite värv roheliseks
}

void draw() {
  background(200);               // Värvi taust halliks
  circle(mouseX, mouseY, 100);   // Joonista ring läbimõõduga 100px kursori kohal 
}
```

Litsents
--------

Processingu raamistik ja kood on litsenseeritud GNU Lesser General Public License all, mis annab kasutajatele vabadust integreerida enda loodud sketchid teiste projektidega (ka erinevate litsentsitega).

Processingu Sketchbook (IDE) on aga litsenseeritud GNU General Public License all.

Seotud projektid
----------------

Processingu kasutamine kujunes ajas nii, et see ei ole üks programmeerimiskeel, vaid kunstile suunatud lähenemine programmeerimise õppimisel ja õpetamisel. Seoses sellega esineb erinevates programmeerimiskeelte teekides erinevusi funktsioonide nimetustes ja kasutuses.

### **p5.js**

Lauren Lee McCarthy on 2013. aastal loonud teeki p5.js, mis baseerub programmeerimiskeele JavaScript põhjal. Selle abil saab kasutaja tutvuda loomingulise programmeerimise võimalustega JavaScriptis. p5.js sisaldab enamik funktsioone ja klasse, mis ka Processing, ning seda on võimalik proovida otse brauseris veebitoimetaja abil. 

p5.js jaoks on loodud ka eraldi raamistik ml5.js, mis võimaldab kasutada masinõppe algoritme ja mudeleid kunsti loomiseks. 

### Processing.py

2010. aastal oli Jonathan Feinberg poolt loodud Processingu implementatsioon Pythonis. Projektiga hiljem liitusid James Gilles, Ben Alkov. Ühilduvus Processing 3.x versiooniga oli loodud Luca Damasco abiga. 

### Teised

Lisaks on olemas veelgi Processing implementatsioone ka teistes keeltes, näiteks Spde raamistik Scala jaoks, JRubyArt Ruby jaoks, Quil Clojure jaoks ja muud.

Meedia
------

Processing on kasutatud mitmete visuaalsete disainerite ja kunstnikute poolt. Selle keelega on loodud palju teoseid ja illustratsioone, mis olid esitletud näitustel ja väljaannetes, nagu *Nature* ja *The New York Times*.

Lisaks, Processingu abil on loodud ka mitmed muusikavideod ja muud video-projektid.

Processingu kohta on saadaval rohkelt õppematerjale video kujul, näiteks Daniel Shiffmani YouTube kanalil.

Viited
------

1. 1 2  Reas, Casey; Fry, Ben (2007). *Processing: a programming handbook for visual designers and artists*. Cambridge, Mass.: MIT Press. ISBN 978-0-262-18262-1.
2. ↑  "People". *Processing* (Ameerika inglise). Vaadatud 24. detsembril 2023.
3. ↑  
@ben\_fry (4. oktoober 2023). "I have made the extremely difficult decision to resign from the Processing Foundation. I am absolutely heartbroken, and have not slept well for months" (Tweet) – via Twitter.
4. ↑  Reas, Casey; Fry, Ben (2010). *Getting started with Processing: a hands-on introduction to making interactive graphics*. Make: projects (1. ed trükk). Beijing Köln: O'Reilly. ISBN 978-1-4493-7980-3.
5. ↑  "processing/license.txt at master · processing/processing". *GitHub* (inglise). Vaadatud 4. jaanuaril 2024.
6. ↑  "p5.js — Lauren Lee McCarthy". *lauren-mccarthy.com* (inglise). Vaadatud 2. jaanuaril 2024.
7. ↑  "home | p5.js". *p5js.org*. Vaadatud 2. jaanuaril 2024.
8. ↑  "p5.js Web Editor". *editor.p5js.org*. Vaadatud 2. jaanuaril 2024.
9. ↑  "ml5js·Friendly Machine Learning For The Web". *ml5js.org* (inglise). Vaadatud 5. jaanuaril 2024.
10. ↑  "Python Mode for Processing". *py.processing.org*. Vaadatud 4. jaanuaril 2024.
11. ↑  "Overview". *Processing* (Ameerika inglise). Vaadatud 24. detsembril 2023.
12. ↑  *The Making-of "House of Cards" video*, vaadatud 26. detsembril 2023
13. ↑  "The Coding Train - YouTube". *www.youtube.com*. Vaadatud 26. detsembril 2023.

Välislingid
-----------

Ametlik kodulehekülg