Processing (език за програмиране)
Processing е програмен език с отворен код и интегрирана среда за разработка (IDE) създаден за електронни изкуства, нови медийни изкуства и визуален дизайн. Езикът е създаден през 2001 г. от Кейси Риас и Бенджамин Фрай, които преди това са част от Aesthetics and Computation Group в MIT Media Lab. Езикът се основава на Java, но използва опростен синтактичен и графичен модел на програмиране. През 2012 г. Кейси Риас и Бен Фрай стартират Processing Foundation заедно с Даниел Шифман, официално присъединен като трети съосновател.
Първоначално езикът е създаден за използване от визуални дизайнери и творци, които не са запознати с компютърното програмиране. Processing е проектиран с цел лесна употреба и осигуряване на основа за изучаването на компютърното програмиране. Също така езикът служи и като база за електронни скицници.
Processing | |
Парадигма | обектно-ориентиран |
---|---|
Реализиране през | 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).
Вижте също
[редактиране | редактиране на кода]- Cinder (C++)
- OpenFrameworks (C++)
- JavaFX
- Max (software)
- Processing.js
Бележки
[редактиране | редактиране на кода]- ↑ Android – Processing // Архивиран от оригинала на 2014-08-19. Посетен на 3 юни 2013.
- ↑ John Resig – Processing.js
- ↑ John Resig – Processing.js
- ↑ Processing Foundation: processingfoundation
- ↑ Spde: Spde // Technically.us. Архивиран от оригинала на 2011-08-02. Посетен на 20 август 2013.
- ↑ Coderspiel / Runaway processing // Technically.us. Посетен на 20 август 2013.
- ↑ Coderspiel / Flocking with Spde // Technically.us. Посетен на 20 август 2013.
- ↑ quil/quil // GitHub. Посетен на 26 януари 2015.
Източници
[редактиране | редактиране на кода]- Bohnacker, Hartmut, Gross, Benedikt, Laub, Julia. Generative Design: Visualize, Program, and Create with Processing. 1st. Princeton Architectural Press, 22 август 2012. ISBN 978-1616890773. с. 472.
- Glassner, Andrew. Processing for Visual Artists: How to Create Expressive Images and Interactive Art. 1st. A K Peters/CRC Press, 9 август 2010. ISBN 1-56881-716-9. с. 955. Архив на оригинала от 2011-04-21 в Wayback Machine.
- Reas, Casey, Fry, Ben. Getting Started with Processing. 1st. Make, 17 юни 2010. ISBN 1-4493-7980-X. с. 208.
- Noble, Joshua. Programming Interactivity: A Designer's Guide to Processing, Arduino, and Openframeworks. 1st. O'Reilly Media, 21 юли 2009. ISBN 0-596-15414-3. с. 736.
- Terzidis, Kostas. Algorithms for Visual Design Using the Processing Language. 1st. Wiley, 11 май 2009. ISBN 0-470-37548-5. с. 384.
- Reas, Casey, Fry, Ben, Maeda, John. Processing: A Programming Handbook for Visual Designers and Artists. 1st. The MIT Press, 30 септември 2007. ISBN 0-262-18262-9. с. 736. Архив на оригинала от 2011-04-17 в Wayback Machine.
- Fry, Ben. Visualizing Data. 1st. O'Reilly Media, 11 януари 2008. ISBN 0-596-51455-7. с. 382.
- Greenberg, Ira. Processing: Creative Coding and Computational Art (Foundation). 1st. friends of ED, 28 май 2007. ISBN 1-59059-617-X. с. 840. Архив на оригинала от 2011-01-27 в Wayback Machine.
- Shiffman, Daniel. Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction. 1st. Morgan Kaufmann, 19 август 2008. ISBN 0-12-373602-1. с. 450.
- Faludi, Robert. Building Wireless Sensor Networks: with ZigBee, XBee, Arduino, and Processing. 1st. O'Reilly Media, 4 януари 2011. ISBN 978-0-596-80774-0. с. 320.
- Vantomme, Jan. Processing 2, Creative Programming Cookbook. 1st. Packt Publishing, 20 септември 2012. ISBN 9781849517942. с. 291. Архив на оригинала от 2014-07-02 в Wayback Machine.
- Pearson, Matt. Generative Art, A practical guide using Processing. 1st. Manning, 1 юни 2011. ISBN 9781935182627. с. 240. Архив на оригинала от 2019-06-24 в Wayback Machine.
- Jan, Vantomme. Processing 2: Creative Programming Cookbook. 1st. Packt Publishing, 20 септември 2012. ISBN 978-1849517942. с. 306. Архив на оригинала от 2014-07-02 в Wayback Machine.
- Sauter, Daniel. Rapid Android Development: Build Rich, Sensor-Based Applications with Processing. 1st. Pragmatic Bookshelf, 2 май 2013. ISBN 978-1937785062. с. 300. Архив на оригинала от 2019-10-13 в Wayback Machine.
- Gradwohl, Nikolaus. Processing 2: Creative Coding Hotshot. 1st. Packt Publishing, 20 май 2013. ISBN 978-1782166726. с. 266. Архив на оригинала от 2014-07-02 в Wayback Machine.
Външни препратки
[редактиране | редактиране на кода]- Официален уебсайт
- Processing.js official website
- Official wiki Архив на оригинала от 2014-08-05 в Wayback Machine.
- Official forum
- OpenProcessing – sketches library
- Processing.js blog
- Processing.js Google group
- Working with Processing and Arduino Архив на оригинала от 2010-06-14 в Wayback Machine.
- 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
Тази страница частично или изцяло представлява превод на страницата Processing_(programming_language) в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс – Признание – Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година – от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите.
ВАЖНО: Този шаблон се отнася единствено до авторските права върху съдържанието на статията. Добавянето му не отменя изискването да се посочват конкретни източници на твърденията, които да бъдат благонадеждни. |