پراسسینگ (زبان برنامهنویسی)
پراسسینگ (به انگلیسی Processing) یک کتابخانه گرافیکی منبع باز و محیط توسعه یکپارچه (IDE) برای کارآموزی جوامع هنرهای الکترونیکی، هنر رسانههای جدید و طراحی بصری است که هدف آن آموزش مبانی برنامهنویسی رایانهای در یک زمینه بصری است.
الگو برنامهنویسی | Object-oriented |
---|---|
ظهوریافته در | ۲۰۰۱ |
انتشار پایدار | |
پروانه | GPL, LGPL |
.pde | |
وبگاه |
پراسسینگ از زبان برنامهنویسی جاوا، به کمک ابزارهای اضافی ساده مانند کلاسهای اضافی و توابع ریاضی و عملیات تعریف شده استفاده میکند. همچنین یک رابط کاربری گرافیکی برای سادهسازی مرحله تدوین و اجرا دارد.
زبان پراسسینگ و IDE بسیاری از پروژههای دیگر، به ویژه Arduino , Wiring و p5.js را پیش بردهاست.
تاریخچه
این پروژه در سال ۲۰۰۱ توسط کیسی ریس و بن فرای، که قبلاً عضو گروه زیباییشناسی و محاسبات در آزمایشگاه رسانه MIT بودند آغاز شد. در سال ۲۰۱۲، آنها بنیاد پراسسینگ را همراه با دانیل شیفمن، که به عنوان سرپرست سوم پروژه پیوست، شروع کردند. یوهاندا هدوا در سال ۲۰۱۴ به عنوان مدیر پشتیبانی به این پروژه پیوست.[2]
در اصل، پراسسینگ نشانی اینترنتی proce55ing.net را داشت، زیرا دامنه پراسسینگ اشغال شده بود. سپس ریس و فرای دامنهٔ processing.org را به دست آوردند.[3] گرچه این نام ترکیبی از حروف و اعداد بود، اما همچنان پراسسینگ خوانده میشود. آنها Proce55ing را ترجیح نمیدهند. علیرغم تغییر نام دامنه، پراسسینگ هنوز هم اصطلاح p5 را به عنوان نام اختصاری نامیدهاست (P5 بجای p55 استفاده میشود)، به عنوان مثال p5.js که به آن اشاره دارد.[4]
امکانات
انتشار پایدار | ۳٫۴٫۰
۲۶ ژوئیه ۲۰۱۸ |
---|---|
مخزن | |
نوشتهشده با | Java, GLSL , JavaScript |
سیستمعامل | Cross-platform |
گونه | Integrated development environment |
وبگاه |
پردازش شامل یک sketchbook (محیطی به نام دفترچه نقاشی) و یک جایگزین کم حجم محیط توسعه یکپارچه (IDE) برای سازماندهی پروژهها است.[5]
هر sketch پراسسینگ، در واقع یک زیر کلاس از کلاس PApplet
Java است (قبلاً یک زیر کلاس از Applet جاوا بود) که اکثر ویژگیهای زبان را اجرا میکند.[6]
هنگام برنامهنویسی در پراسسینگ، تمام کلاسهای اضافی تعریف شده به عنوان کلاسهای داخلی در نظر گرفته میشوند، زمانی که کد قبل از کامپایل شدن به زبان جاوا تبدیل میشود.[7] این بدان معنی است که استفاده از متغیرهای استاتیک و methodها در کلاسها ممنوع است، مگر اینکه در حالت جاوای خالص پراسسینگ کد زده شود.
پراسسینگ اجازه میدهد تا کاربران کلاسهای خود را در PApplet sketch ایجاد کنند. این کار اجازه میدهد که انواع دادههای پیچیده بتواند شامل هر تعداد آرگومان باشند و از محدودیتهایی با استفاده از انواع دادههای استاندارد مانند: int (عدد صحیح)، کاراکتر (شخصیت)، شناور (تعداد واقعی) و رنگ (RGB, RGBA, hex) به وجود میآیند، اجتناب کنند.
مثالها
سادهترین نسخه ممکن یک برنامه "Hello World" در پراسسینگ:
// را در کنسول محیط خود چاپ میکند"Hello World."
println("Hello World.");
با این حال، به لطف طبیعت بصری گرای پراسسینگ، کد زیر یک مثال بهتر از نگاه و احساس زبان است.
//Hello mouse.
void setup() {
size(400, 400);
stroke(255);
background(192, 64, 0);
}
void draw() {
line(150, 25, mouseX, mouseY);
}
جوایز
در سال ۲۰۰۵، Reas و Fry برنده جایزه معتبر Golden Nica از Ars Electronica در بخش Net Vision برای کار خود در پراسسینگ شدند.[8]
بن فرای در سال ۲۰۱۱ جایزه طراحی ملی را توسط موزه طراحی ملی کوپر-هاوت را در بخش تعامل طراحی به دست آورد. بیانیه جایزه:
«با کار کردن در زمینهٔ طراحی گرافیک و علوم کامپیوتری، بن فری شیفتگی طولانی را با مصورسازی دادهها دنبال میکند. به عنوان مدیر کل طراحی اطلاعات فاتوم در بوستون، فری نرمافزار، کارهای چاپی، تأسیسات و کتابهایی را توسعه و ارائه میدهد که موضوعاتی از ژنوم انسان تا درآمد بیسبال تا تکامل اسناد متنی را شرح و توضیح میدهد. با کیسی ریس، او پروژه پراسسینگ، یک محیط برنامهنویسی منبع باز برای آموزش طراحی محاسباتی و طراحی برنامههای رسانه ای تعاملی را تأسیس کرد. این کار برای هنرمندان و طراحان ابزار قابل دسترس برای کار با کد را فراهم میکند در حالی که مهندسان و دانشمندان کامپیوتر را به فکر کردن دربارهٔ مفاهیم طراحی تشویق میکند.»[9]
مجوز
کتابخانههای اصلی پراسسینگ، کد شامل شده در اپلتها و برنامههای اکسپورت شده، تحت مجوز GNU Lesser General Public میباشند، این به کاربران اجازه میدهد کد اصلی خود را با انتخاب مجوز انتشار دهند.
IDE تحت مجوز GNU General Public License میباشد.
پروژههای مرتبط
پراسسینگ یک زبان واحد نیست، بلکه یک رویکرد هنر-گرا به یادگیری، تدریس و ساختن با کد است. چندین نوع و پروژههای مرتبط با پراسسینگ وجود دارد:
طراحی با اعداد
پراسسینگ بر اساس کار اصلی انجام شده بر روی پروژه طراحی با اعداد در MIT بود. ایدههای مشابه بسیاری را به اشتراک میگذارند و فرزند مستقیم این آزمایش است.
Processing.js
در سال ۲۰۰۸، John Resig پراسسینگ را به جاوا اسکریپت با استفاده از عنصر Canvas برای رندر کردن، منتقل کرد،[10] این به ما اجازه میدهد که پراسسینگ در مرورگرهای مدرن بدون نیاز به افزونه جاوا اجرا شود. از آن زمان به بعد، جامعه متنباز از جمله دانش آموزان کالج Seneca در تورنتو پروژه را گرفتهاند.
Processing.js همچنین برای حمایت از برنامهنویسی پایه برای دانش آموزان در تمام سنین بر روی آکادمی خان با ایجاد نقاشیها و انیمیشنها مورد استفاده قرار میگیرد. یادگیرندگان خلاقیت و ساختههای خود را برای سایر یادگیرندگان به نمایش میگذارند.
p5.js
در سال ۲۰۱۳، لورن مککارتی p5.js را ایجاد کرد، جایگزین جاوااسکریپت برای Processing.js که پشتیبانی رسمی از بنیاد پراسسینگ است. مککارتی همچنین در یک دوره مقدماتی، p5.js را در Kadenze آموزش میدهد.[11]
« | عدد ۵ در "p5" به چه معناست؟ دامنه اصلی پراسسینگ proce55ing.net بود، که مردم به پراسسینگ به عنوان proce55ing مراجعه میکردند یا P5, یا p5 به عنوان کوتاه شده. p5.js هم از همان گرفته شدهاست. |
» |
—لاورن مککارتی، [12] |
Processing.py
حالت Python برای پراسسینگ، یا Processing.py یک رابط پایتون به جعبه ابزار اساسی Java است؛ که توسط جاناتان فینبرگ در سال ۲۰۱۰ با کمک جیمز جیلز و بن الکوو توسعه یافتهاست.[13]
Wiring, Arduino, and Fritzing
پراسسینگ یک پروژه دیگر، Wiring، که از IDE پراسسینگ با مجموعه ای از کتابخانههای نوشته شده در زبان C ++ به عنوان راهی برای آموزش هنرمندان به نحوه برنامهنویسی میکروکنترلرها، ایجاد کردهاست.[14] در حال حاضر دو پروژه جداگانه سختافزاری با استفاده از زبان و محیط Wiring وجود دارند، Wiring و آردوینو.
Fritzing یک محیط نرمافزاری دیگر از همان نوع است که به طراحان و هنرمندان کمک میکند تا نمونههای تعاملی خود را مستند کنند و از نمونه اولیه فیزیکی تا محصول واقعی پیش ببرند.
پراسسینگ موبایل
یکی دیگر از پروژههای مشتق گرفته شده که اکنون از بین رفتهاست، پراسسینگ موبایل ساخته شده توسط فرانسیس لی است که اجازه استفاده از نرمافزار ساخته شده با استفاده از زبان و محیط پراسسینگ برای اجرا در دستگاههای موبایل جاوا را میدهد. امروزه برخی از همان قابلیتها توسط خود پراسسینگ ارائه شدهاست.[15]
iProcessing
iProcessing برای کمک به مردم در توسعه برنامههای نیتیو آیفون با استفاده از زبان پراسسینگ ساخته شدهاست. iProcessing از ادغام کتابخانه Processing.js و فریم وورک برنامه جاوا اسکریپت برای iPhone ساخته شدهاست.[16]
SPDE
SPDE (محیط توسعه پراسسینگ Scala) جایگزین سینتکس کاهش یافتهٔ جاوای پراسسینگ و پیش پردازنده عادی با زبان برنامهنویسی Scala شدهاست که همچنین در سکوی جاوا اجرا میشود و برخی از محدودیتهای مشابه مانند محدودیت استفاده از متدهای استاتیک را اعمال میکند، با این حال اجازه مختصرتر نوشتن کد و پشتیبانی از برنامهنویسی تابعی را میدهد.[17][18][19]
موضوعات بیشتر
- سیلندر (C ++)
- OpenFrameworks (C ++)
- JavaFX
- Max (نرمافزار)
- کدا
پانویسها و منابع
- "Download Processing.org". processing.org. Retrieved 2018-07-26.
- "People". processingfoundation.org. Archived from the original on 5 October 2019. Retrieved 2017-04-24.
- "Processing 1.0 _ALPHA_ - processing.org". processing.org. Archived from the original on 28 April 2012. Retrieved 15 June 2019.
- "What means number 5 in name "p5"? · Issue #2443 · processing/p5.js". GitHub.
- Ira Greenberg (31 December 2007). Processing: Creative Coding and Computational Art. Apress. pp. 151–. ISBN 978-1-4302-0310-0.
- Jeanine Meyer (15 June 2018). Programming 101: The How and Why of Programming Revealed Using the Processing Programming Language. Apress. pp. 121–. ISBN 978-1-4842-3697-0.
- Ira Greenberg (25 March 2010). The Essential Guide to Processing for Flash Developers. Apress. pp. 412–. ISBN 978-1-4302-1980-4.
- Meredith Hoy (3 January 2017). From Point to Pixel: A Genealogy of Digital Aesthetics. Dartmouth College Press. pp. 142–. ISBN 978-1-5126-0023-0.
- http://cdn.cooperhewitt.org/2011/05/26/Final%20-%20CHNDM%20NDA%202011%20Winner%20Release%205-26-11.pdf
- "John Resig - Processing.js". Archived from the original on 22 March 2017. Retrieved 15 June 2019.
- Introduction to Programming for the Visual Arts with p5.js on Kadenze
- What means number 5 in name "p5"?
- Allison Parrish; Ben Fry; Casey Reas (11 May 2016). Getting Started with Processing.py: Making Interactive Graphics with Processing's Python Mode. Maker Media, Incorporated. ISBN 978-1-4571-8679-0.
- "Processing, Wiring, and Arduino (EE Tip 101) - Circuit Cellar". 18 September 2013.
- "Android - Processing". Archived from the original on 19 August 2014. Retrieved 2013-06-03.
- "iProcessing Puts Processing.js on iPhone - But What About Browsers? - CDM Create Digital Music". 11 February 2010. Archived from the original on 13 October 2019. Retrieved 15 June 2019.
- "Spde: Spde". Technically.us. Archived from the original on 2 August 2011. Retrieved 2013-08-20.
- "Coderspiel / Runaway processing". Technically.us. Archived from the original on 10 November 2016. Retrieved 2013-08-20.
- "Coderspiel / Flocking with Spde". Technically.us. Retrieved 2013-08-20.
منابع
- Bohnacker, Hartmut; Gross, Benedikt; Laub, Julia; Lazzeroni, Claudius (August 22, 2012), Generative Design: Visualize, Program, and Create with Processing (1st ed.), Princeton Architectural Press, p. 472, ISBN 978-1-61689-077-3
- Glassner, Andrew (August 9, 2010), Processing for Visual Artists: How to Create Expressive Images and Interactive Art (1st ed.), A K Peters/CRC Press, p. 955, ISBN 1-56881-716-9, archived from the original on April 21, 2011
- Reas, Casey; Fry, Ben (June 17, 2010), Getting Started with Processing (1st ed.), Make, p. 208, ISBN 1-4493-7980-X
- Noble, Joshua (July 21, 2009), Programming Interactivity: A Designer's Guide to Processing, Arduino, and Openframeworks (1st ed.), O'Reilly Media, p. 736, ISBN 0-596-15414-3
- Terzidis, Kostas (May 11, 2009), Algorithms for Visual Design Using the Processing Language (1st ed.), Wiley, p. 384, ISBN 0-470-37548-5
- Reas, Casey; Fry, Ben; Maeda, John (September 30, 2007), Processing: A Programming Handbook for Visual Designers and Artists (1st ed.), The MIT Press, p. 736, ISBN 0-262-18262-9, archived from the original on April 17, 2011
- Fry, Ben (January 11, 2008), Visualizing Data (1st ed.), O'Reilly Media, p. 382, ISBN 0-596-51455-7
- Greenberg, Ira (May 28, 2007), Processing: Creative Coding and Computational Art (Foundation) (1st ed.), friends of ED, p. 840, ISBN 1-59059-617-X, archived from the original on January 27, 2011
- Shiffman, Daniel (August 19, 2008), Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction (1st ed.), Morgan Kaufmann, p. 450, ISBN 0-12-373602-1
- Faludi, Robert (January 4, 2011), Building Wireless Sensor Networks: with ZigBee, XBee, Arduino, and Processing (1st ed.), O'Reilly Media, p. 320, ISBN 978-0-596-80774-0, archived from the original on 12 June 2019, retrieved 15 June 2019
- Vantomme, Jan (September 20, 2012), Processing 2, Creative Programming Cookbook (1st ed.), Packt Publishing, p. 291, ISBN 978-1-84951-794-2, archived from the original on 2 July 2014, retrieved 15 June 2019
- Pearson, Matt (June 1, 2011), Generative Art, A practical guide using Processing (1st ed.), Manning, p. 240, ISBN 978-1-935182-62-7, archived from the original on 24 June 2019, retrieved 15 June 2019
- Jan, Vantomme (September 20, 2012), Processing 2: Creative Programming Cookbook (1st ed.), Packt Publishing, p. 306, ISBN 978-1-84951-794-2, archived from the original on 2 July 2014, retrieved 15 June 2019
- Sauter, Daniel (May 2, 2013), Rapid Android Development: Build Rich, Sensor-Based Applications with Processing (1st ed.), Pragmatic Bookshelf, p. 300, ISBN 978-1-937785-06-2, archived from the original on 13 October 2019, retrieved 15 June 2019
- Gradwohl, Nikolaus (May 20, 2013), Processing 2: Creative Coding Hotshot (1st ed.), Packt Publishing, p. 266, ISBN 978-1-78216-672-6, archived from the original on 2 July 2014, retrieved 15 June 2019
پیوند به بیرون
- وبگاه رسمی{{پیوند مرده|date=نوامبر ۲۰۱۹ |bot=InternetArchiveBot }}
- ویکی رسمی
- انجمن رسمی
- OpenProcessing - طرح کتابخانه
- وب سایت برای کتاب Generative Gestaltung با نمونه و کد منبع (آلمانی )
- کار با پردازش و آردوینو
- روبی پردازش، که یک جعبه روبی در اطراف جعبه هنر پردازش پردازش است، ساخته شده با استفاده از JRuby