Processing е програмен език с отворен код и интегрирана среда за разработка (IDE) създаден за електронни изкуства, нови медийни изкуства и визуален дизайн. Езикът е създаден през 2001 г. от Кейси Риас и Бенджамин Фрай, които преди това са част от Aesthetics and Computation Group в MIT Media Lab. Езикът се основава на Java, но използва опростен синтактичен и графичен модел на програмиране. През 2012 г. Кейси Риас и Бен Фрай стартират Processing Foundation заедно с Даниел Шифман, официално присъединен като трети съосновател.

Първоначално езикът е създаден за използване от визуални дизайнери и творци, които не са запознати с компютърното програмиране. Processing е проектиран с цел лесна употреба и осигуряване на основа за изучаването на компютърното програмиране. Също така езикът служи и като база за електронни скицници.

Какво може да правим с Processing? Да създаваме генеративно изкуство. Има много примери на OpenProcessing. Да пишем компютърни игри. Вече има много анимация и физически библиотеки. Вижте 2D gaming using Processing.js Processing може да си взаимодейства с Arduino платка. Да създаваме визуални изображения от огромни данни Можем да правим прототипи на интерфейси за софтуер и хардуер. Има библиотеки, които предлагат достъп до стандартни UI елементи. Може да създадем и нови модели UI, които да отговарят на нашите нужди. Повече информация controlP5 Може да добавите невероятни визуални ефекти към вашия уеб сайт, който иначе е написан на обикновен JavaScript. Processing скицниците също може да са написани на JavaScript, но да имат специални JS библиотеки. Вижте Processing.js Може да създадем невероятно изглеждащи графики за следващото ни видео или арт проект. Вижте Processing on Vimeo Може да свържете Processing с вашите MIDI интерфейси и за създадете музикални композиции Може да интегрирате Processing с вашата арт инсталация или скулптура. Може да проектирате изображения върху неравни повърхности Може да създавате анимация чрез която да дискутирате своите идеи с вашия екип или да ги представите пред аудитория Може лесно да публикувате вашите Processing скицници, като десктоп приложения (Windows, Linux, Mac), да ги вграждате в уеб страници и дори в Android приложения

Характеристики Processing включва скицник, като алтернатива на интегрирана среда за разработка (IDE) за организиране на проекти.

Всяка Processing скица всъщност е подклас на класа PApplet в Java, който имплементира повечето от функциите в Processing езика.

При компилиране всички допълнително дефинирани класове се разглеждат като вътрешни класове и се превеждат на чист Java език. Това означава, че използването на статични променливи и методи в класовете е забранено, освен ако изрично не се избере опция да се пише режим на чиста Java. Processing също така позволява на потребителите да създават свои собствени класове в рамките на PApplet скицата. Това дава възможността за използване за сложни типове данни, които могат да включват произволен брой аргументи и избягва ограниченята на стандартните типове от данни, като: int (цяло число), char (символ), float (число с плаваща запетая) и цвят (RGB, ARGB, hex).

Примери Hello World Най-простият възможен вариант на програмата „Hello World“ в Processing е:

//This prints "Hello World." to the IDE console. void setup() { println("Hello world."); }

Благодарение на по-визуално ориентирания характер на Processing, по-добър пример за облика на езика е следния код:

//Hello mouse. void setup() { size(400, 400); stroke(255); background(192, 64, 0); }

void draw() { line(150, 25, mouseX, mouseY); }

Карта на резултатите от президентските избори в САЩ

Следващият пример създава карта на резултатите от президентските избори в САЩ проведени през 2008 г. Със син цвят за обозначени щатите, в които Барак Обама спечели изборите, а в червен – Джон МакКейн.

PShape usa; PShape state; String [] Obama = { "HI", "RI", "CT", "MA", "ME", "NH", "VT", "NY", "NJ", "FL", "NC", "OH", "IN", "IA", "CO", "NV", "PA", "DE", "MD", "MI", "WA", "CA", "OR", "IL", "MN", "WI", "DC", "NM", "VA" };

String [] McCain = { "AK", "GA", "AL", "TN", "WV", "KY", "SC", "WY", "MT", "ID", "TX", "AZ", "UT", "ND", "SD", "NE", "MS", "MO", "AR", "OK", "KS", "LA" };

void setup() { size(950, 600); // The file "Blank US Map (states only).svg" can be found at Wikimedia Commons usa = loadShape("http://upload.wikimedia.org/wikipedia/commons/archive/1/1a/20130330152451!Blank_US_Map_(states_only).svg"); smooth(); // Improves the drawing quality of the SVG noLoop(); }

void draw() { background(255); // Draw the full map shape(usa, 0, 0); // Blue denotes states won by Obama statesColoring(Obama, color(0, 0, 255)); // Red denotes states won by McCain statesColoring(McCain, color(255, 0, 0)); // Save the map as image saveFrame("map output.png"); }

void statesColoring(String[] states, int c){ for (int i = 0; i < states.length; ++i) { PShape state = usa.getChild(states[i]); // Disable the colors found in the SVG file state.disableStyle(); // Set our own coloring fill(c); noStroke(); // Draw a single state shape(state, 0, 0);

Сходни проекти Design By Numbers Processing е базиран на основната на експеримента Design by numbers проведен в MIT. Той споделя много от идеите му и е пряко свързан с него.

Wiring, Arduino, and Fritzing Processing езика ражда и проекта Wiring, който използва IDE-то на Processing и колекция от библиотеки, написани на C++, и има за цел да научи художници да програмират микроконтролери. Към момента има два отделни хардуерни проекта, Wiring и Arduino, които използват средата за разработка и езика на Wiring. Fritzing е друга софтуерна среда от същия вид, която помага на дизайнери и художници да документират техните интерактивни прототипи и да преминат от физически прототипи към реални продукти.

Mobile Processing Друг проект, който вече не съществуващата, е Mobile Processing създаден от Франсис Ли. Mobile Processing позволява софтуер написан на езика и в средата за разработка на Processing, да върви на мобилни устройства поддържащи Java. Днес част от тази функционалност се осигурява от самия Processing.

Processing.js

През 2008 г. Джон Резиг пренася Processing езика в JavaScript с помощта на Canvas елемента за визуализиране, позволявайки му да бъде използван в съвременните уеб браузъри, без необходимостта от Java плъгин. От тогава, любители на отворения код, както и студенти от Seneca College в Торонто поемат проекта.

Processing.js се от използва от Khan Academy, за да представя основите на програмирането сред учениците от всички възрасти чрез създаване на рисунки и анимации. Учащите показват своите творения на съучениците, като голяма част от проектите са много впечатляващи.

p5.js Лорън МакКарти създава p5.js. като алтернатива на Processing.js, официално подкрепена от Processing Foundation.

iProcessing IProcessing е създаден за IPhone приложения с помощта на езика Processing. Това става чрез интеграция на библиотеката на Processing.js и Javascript framework application за iPhone.

Spde Spde(Scala Processing Development Environment) замества препроцесора и улеснения Java синтаксиса с езикът Scala, който също работи върху Java платформата и прилага някои от същите ограничения като забрана на статични методи, позволява писането на по-кратък код и поддържа функционално програмиране.

Quil Quil (старото му название е clj-processing) е обвивка (wrapper) за Processing в Clojure езика, който работи на Java платформата.

Награди През 2005 г. Рийс и Фрай печелят престижната награда Golden Nica на Ars Electronica в категорията Net Vision за работата им по Processing.

Бен Фрай печели 2011 National Design Award, присъдена му от Smithsonian Cooper-Hewitt National Design Museum в категория Interaction Design. Връчват му наградата със следната реч: "Въз основа на опита си в графичния дизайн и компютърните науки, Бен Фрай преследва дългогодишния си интерес от визуализирането на данните. Като директор на Fathom Information Design в Бостън, Фрай разработва софтуер, отпечатва произведения и книги, които описват и обясняват теми като човешкия геном, бейзболните заплати и еволюцията на текстовите документи. Заедно с Кейси Рийс, той основава Processing Project, среда за разработка с отворен код, учеща на изчислителен дизайн и скициране с интерактивен медия софтуер. Тя осигурява на художниците и дизайнерите достъпни средства за работа с код, като същевременно насърчава инженери и компютърни специалисти да мисля за дизайн концепции.

Лиценз Основните библиотеки на Processing, кодът включени в експорт приложенията и аплетите, се разпространява под GNU Lesser General Public License, който позволява на потребителите да пуснат своя оригинален код с възможност за избор на лиценз. IDE-то е лицензирано под GNU General Public License.

Наименование Първоначално Processing има уеб адрес www.proce55ing.net, тъй като домейна Processing e зает. В крайна сметка Рийс и Фрай придобиват домейна. Макар че името било комбинация от букви и цифри, то се произнасяло Processing. Рийс и Фрай не одобрявали и не искали средата за разработка да се нарича Proce55ing. Въпреки промяната в името на домейна, понякога за Processing все още се използва терминът P5 като кратко наименование (специално се използва p5, а не p55).

Вижте също Cinder (C++) OpenFrameworks (C++) JavaFX Max (software) Processing.js

Бележки

Източници

Външни препратки Официален уебсайт Processing.js official website Official wiki Official forum OpenProcessing – sketches library Processing.js blog Processing.js Google group Working with Processing and Arduino Website (German) to the book with nice source-codes and examples Ruby-Processing, which is a ruby wrapper around the Processing code art framework, built using JRuby

Категория:Езици за програмиране Категория:Компютърна графика Категория:Анимационен софтуер