Processing (език за програмиране)

от Уикипедия, свободната енциклопедия

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

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

Processing
Processing logo
Парадигмаобектно-ориентиран
Реализиране през2001
АвторКейси Риас и Бенджамин Фрай
Последна стабилна версияv3.0.2 13 февруари 2016 г.
Повлиян отDesign By Numbers, Java, Logo, OpenGL, PostScript, C
Уебсайт//processing.org
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.[1]

Processing.js[редактиране | редактиране на кода]

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

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

p5.js[редактиране | редактиране на кода]

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

iProcessing[редактиране | редактиране на кода]

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

Spde[редактиране | редактиране на кода]

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

Quil[редактиране | редактиране на кода]

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

Награди[редактиране | редактиране на кода]

През 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).

Вижте също[редактиране | редактиране на кода]

Бележки[редактиране | редактиране на кода]

  1. Android – Processing // Архивиран от оригинала на 2014-08-19. Посетен на 3 юни 2013.
  2. John Resig – Processing.js
  3. John Resig – Processing.js
  4. Processing Foundation: processingfoundation
  5. Spde: Spde // Technically.us. Архивиран от оригинала на 2011-08-02. Посетен на 20 август 2013.
  6. Coderspiel / Runaway processing // Technically.us. Посетен на 20 август 2013.
  7. Coderspiel / Flocking with Spde // Technically.us. Посетен на 20 август 2013.
  8. quil/quil // GitHub. Посетен на 26 януари 2015.

Източници[редактиране | редактиране на кода]

Външни препратки[редактиране | редактиране на кода]

  Тази страница частично или изцяло представлява превод на страницата Processing_(programming_language) в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс – Признание – Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година – от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите. ​

ВАЖНО: Този шаблон се отнася единствено до авторските права върху съдържанието на статията. Добавянето му не отменя изискването да се посочват конкретни източници на твърденията, които да бъдат благонадеждни.​