Processing

**Processing** on programmeerimiskeel ja 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 programmeerimiskeelel.
## Ajalugu
Projekti alustasid 2001. aastal Casey Reas ja Ben Fry MIT Media Labi Esteetika ja Arvutuste Grupist. Aastal 2012 projektiga liitus Daniel Shiffman ning asutati Processing Foundation. Johanna Hedva liitus projektiga 2014. aastal.

Processing loodi eesmärgiga õpetada programmeerimist algajatele, kuid samas pidi see olema piisavalt võimas ka edasijõudnud kasutajatele.  

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

## Funktsioonid
Processing koosneb klassidest ja funktsioonidest, 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.

Processing sisaldab 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 käitada 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
Processingul on kaks erilist funktsiooni lihtsaks joonistamiseks ekraanile: `setup()` ja `draw()`. Esimene funktsioon käitab koodi ühe korra, ning seda saab kasutada muutujate ja objektide initsialiseerimiseks. Teine funktsioon käitab 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 litsentseeritud GNU Lesser General Public License all, mis annab kasutajatele vabadust integreerida enda loodud sketchid teiste projektidega (ka erinevate litsentsidega).

Processingu Sketchbook (IDE) on aga litsentseeritud GNU General Public License'i 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 Feinbergi loodud Processingu implementatsioon Pythonis. Projektiga liitusid hiljem James Gilles, Ben Alkov. Ühilduvus Processing 3.x versiooniga oli loodud Luca Damasco abiga.  

### Muud
Processingu implementatsioone on muudeski keeltes, näiteks Spde raamistik Scala jaoks, JRubyArt Ruby jaoks, Quil Clojure jaoks ja muud.  

## Meedia
Processingut on kasutanud mitmed visuaaldisainerid ja -kunstnikud. Selle keelega on loodud palju teoseid ja illustratsioone, mis olid esitletud näitustel ja väljaannetes, nagu Nature ja The New York Times. 

Processingu abil on loodud ka muusikavideoid ja muud video-projektid.

Processingu kohta on saadaval rohkesti õppevideoid, näiteks Daniel Shiffmani YouTube'i kanalil.

## Viited


## Välislingid
* Koduleht