پراسسینگ (زبان برنامه‌نویسی)

**پراسسینگ (به انگلیسی Processing)** یک کتابخانه گرافیکی منبع باز و محیط توسعه یکپارچه (IDE) برای کارآموزی جوامع هنرهای الکترونیکی، هنر رسانه‌های جدید و طراحی بصری است که هدف آن آموزش مبانی برنامه‌نویسی رایانه‌ای در یک زمینه بصری است.

پراسسینگ از زبان برنامه‌نویسی جاوا، به کمک ابزارهای اضافی ساده مانند کلاس‌های اضافی و توابع ریاضی و عملیات تعریف شده استفاده می‌کند. همچنین یک رابط کاربری گرافیکی برای ساده‌سازی مرحله تدوین و اجرا دارد.

زبان پراسسینگ و IDE بسیاری از پروژه‌های دیگر، به ویژه Arduino , Wiring و p5.js را پیش برده‌است.

## تاریخچه
این پروژه در سال ۲۰۰۱ توسط کیسی ریس و بن فرای، که قبلاً عضو گروه زیبایی‌شناسی و محاسبات در آزمایشگاه رسانه MIT بودند آغاز شد. در سال ۲۰۱۲، آنها بنیاد پراسسینگ را همراه با دانیل شیفمن، که به عنوان سرپرست سوم پروژه پیوست، شروع کردند. یوهاندا هدوا در سال ۲۰۱۴ به عنوان مدیر پشتیبانی به این پروژه پیوست.

در اصل، پراسسینگ نشانی اینترنتی proce55ing.net را داشت، زیرا دامنه پراسسینگ اشغال شده بود. سپس ریس و فرای دامنهٔ processing.org را به دست آوردند. گرچه این نام ترکیبی از حروف و اعداد بود، اما همچنان پراسسینگ *خوانده می‌شود*. آنها *Proce55ing* را ترجیح نمی‌دهند. علی‌رغم تغییر نام دامنه، پراسسینگ هنوز هم اصطلاح *p5 را* به عنوان نام اختصاری نامیده‌است (*P5* *بجای p55* استفاده می‌شود)، به عنوان مثال p5.js که به آن اشاره دارد.

## امکانات
 پردازش شامل یک *sketchbook (محیطی به نام دفترچه نقاشی)* و یک جایگزین کم حجم محیط توسعه یکپارچه (IDE) برای سازماندهی پروژه‌ها است.
هر *sketch* پراسسینگ، در واقع یک زیر کلاس از کلاس `PApplet` Java است (قبلاً یک زیر کلاس از Applet جاوا بود) که اکثر ویژگی‌های زبان را اجرا می‌کند.

هنگام برنامه‌نویسی در پراسسینگ، تمام کلاس‌های اضافی تعریف شده به عنوان کلاس‌های داخلی در نظر گرفته می‌شوند، زمانی که کد قبل از کامپایل شدن به زبان جاوا تبدیل می‌شود. این بدان معنی است که استفاده از متغیرهای استاتیک و method‌ها در کلاس‌ها ممنوع است، مگر اینکه در حالت جاوای خالص پراسسینگ کد زده شود.

پراسسینگ اجازه می‌دهد تا کاربران کلاس‌های خود را در PApplet sketch ایجاد کنند. این کار اجازه می‌دهد که انواع داده‌های پیچیده بتواند شامل هر تعداد آرگومان باشند و از محدودیت‌هایی با استفاده از انواع داده‌های استاندارد مانند: int (عدد صحیح)، کاراکتر (شخصیت)، شناور (تعداد واقعی) و رنگ (RGB, RGBA, hex) به وجود می‌آیند، اجتناب کنند.

## مثال‌ها
ساده‌ترین نسخه ممکن یک برنامه "Hello World" در پراسسینگ: 
```arduino
// را در کنسول محیط خود چاپ می‌کند"Hello World."

println("Hello World.");
```
 با این حال، به لطف طبیعت بصری گرای پراسسینگ، کد زیر یک مثال بهتر از نگاه و احساس زبان است. 
```arduino
//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 برای کار خود در پراسسینگ شدند.

بن فرای در سال ۲۰۱۱ جایزه طراحی ملی را توسط موزه طراحی ملی کوپر-هاوت را در بخش تعامل طراحی به دست آورد. بیانیه جایزه:  «با کار کردن در زمینهٔ طراحی گرافیک و علوم کامپیوتری، بن فری شیفتگی طولانی را با مصورسازی داده‌ها دنبال می‌کند. به عنوان مدیر کل طراحی اطلاعات فاتوم در بوستون، فری نرم‌افزار، کارهای چاپی، تأسیسات و کتاب‌هایی را توسعه و ارائه می‌دهد که موضوعاتی از ژنوم انسان تا درآمد بیسبال تا تکامل اسناد متنی را شرح و توضیح می‌دهد. با کیسی ریس، او پروژه پراسسینگ، یک محیط برنامه‌نویسی منبع باز برای آموزش طراحی محاسباتی و طراحی برنامه‌های رسانه ای تعاملی را تأسیس کرد. این کار برای هنرمندان و طراحان ابزار قابل دسترس برای کار با کد را فراهم می‌کند در حالی که مهندسان و دانشمندان کامپیوتر را به فکر کردن دربارهٔ مفاهیم طراحی تشویق می‌کند.» 

## مجوز
کتابخانه‌های اصلی پراسسینگ، کد شامل شده در اپلت‌ها و برنامه‌های اکسپورت شده، تحت مجوز GNU Lesser General Public می‌باشند، این به کاربران اجازه می‌دهد کد اصلی خود را با انتخاب مجوز انتشار دهند.

IDE تحت مجوز GNU General Public License می‌باشد.

## پروژه‌های مرتبط
پراسسینگ یک زبان واحد نیست، بلکه یک رویکرد هنر-گرا به یادگیری، تدریس و ساختن با کد است. چندین نوع و پروژه‌های مرتبط با پراسسینگ وجود دارد:

### طراحی با اعداد
پراسسینگ بر اساس کار اصلی انجام شده بر روی پروژه طراحی با اعداد در MIT بود. ایده‌های مشابه بسیاری را به اشتراک می‌گذارند و فرزند مستقیم این آزمایش است.

### Processing.js
در سال ۲۰۰۸، John Resig پراسسینگ را به جاوا اسکریپت با استفاده از عنصر Canvas برای رندر کردن، منتقل کرد، این به ما اجازه می‌دهد که پراسسینگ در مرورگرهای مدرن بدون نیاز به افزونه جاوا اجرا شود. از آن زمان به بعد، جامعه **[[متن‌باز]]** از جمله دانش آموزان کالج Seneca در تورنتو پروژه را گرفته‌اند.

Processing.js همچنین برای حمایت از برنامه‌نویسی پایه برای دانش آموزان در تمام سنین بر روی آکادمی خان با ایجاد نقاشی‌ها و انیمیشن‌ها مورد استفاده قرار می‌گیرد. یادگیرندگان خلاقیت و ساخته‌های خود را برای سایر یادگیرندگان به نمایش می‌گذارند.

### p5.js
در سال ۲۰۱۳، لورن مک‌کارتی p5.js را ایجاد کرد، جایگزین جاوااسکریپت برای Processing.js که پشتیبانی رسمی از بنیاد پراسسینگ است. مک‌کارتی همچنین در یک دوره مقدماتی، p5.js را در Kadenze آموزش می‌دهد. 

### Processing.py
حالت Python برای پراسسینگ، یا Processing.py یک رابط پایتون به جعبه ابزار اساسی Java است؛ که توسط جاناتان فینبرگ در سال ۲۰۱۰ با کمک جیمز جیلز و بن الکوو توسعه یافته‌است.

### Wiring, Arduino, and Fritzing
پراسسینگ یک پروژه دیگر، Wiring، که از IDE پراسسینگ با مجموعه ای از کتابخانه‌های نوشته شده در زبان C ++ به عنوان راهی برای آموزش هنرمندان به نحوه برنامه‌نویسی میکروکنترلرها، ایجاد کرده‌است. در حال حاضر دو پروژه جداگانه سخت‌افزاری با استفاده از زبان و محیط Wiring وجود دارند، Wiring و آردوینو.

Fritzing یک محیط نرم‌افزاری دیگر از همان نوع است که به طراحان و هنرمندان کمک می‌کند تا نمونه‌های تعاملی خود را مستند کنند و از نمونه اولیه فیزیکی تا محصول واقعی پیش ببرند.

### پراسسینگ موبایل
یکی دیگر از پروژه‌های مشتق گرفته شده که اکنون از بین رفته‌است، پراسسینگ موبایل ساخته شده توسط فرانسیس لی است که اجازه استفاده از نرم‌افزار ساخته شده با استفاده از زبان و محیط پراسسینگ برای اجرا در دستگاه‌های موبایل جاوا را می‌دهد. امروزه برخی از همان قابلیت‌ها توسط خود پراسسینگ ارائه شده‌است.

### iProcessing
iProcessing برای کمک به مردم در توسعه برنامه‌های نیتیو آیفون با استفاده از زبان پراسسینگ ساخته شده‌است. iProcessing از ادغام کتابخانه Processing.js و فریم وورک برنامه جاوا اسکریپت برای iPhone ساخته شده‌است.

### SPDE
SPDE (محیط توسعه پراسسینگ Scala) جایگزین سینتکس کاهش یافتهٔ جاوای پراسسینگ و پیش پردازنده عادی با زبان برنامه‌نویسی Scala شده‌است که همچنین در سکوی جاوا اجرا می‌شود و برخی از محدودیت‌های مشابه مانند محدودیت استفاده از متدهای استاتیک را اعمال می‌کند، با این حال اجازه مختصرتر نوشتن کد و پشتیبانی از برنامه‌نویسی تابعی را می‌دهد.

### JRubyArt
JRubyArt (قبلاً به نام *ruby-processing*) یک بسته‌بندی برای پراسسینگ در زبان Ruby است که در سکوی جاوا با استفاده از JRuby اجرا می‌شود.

## موضوعات بیشتر

* سیلندر (C ++)
* OpenFrameworks (C ++)
* JavaFX
* Max (نرم‌افزار)
* کدا

## پانویسها و منابع

## منابع

* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 

## پیوند به بیرون
* 
* ویکی رسمی
* انجمن رسمی
* OpenProcessing - طرح کتابخانه
* وب سایت برای کتاب ''Generative Gestaltung'' با نمونه و کد منبع 
* کار با پردازش و آردوینو
* روبی پردازش، که یک جعبه روبی در اطراف جعبه هنر پردازش پردازش است، ساخته شده با استفاده از JRuby

رده:پلت‌فرم جاوا
رده:خانواده زبان برنامه‌نویسی جاوا
رده:زبان‌های برنامه‌نویسی
رده:زبان‌های برنامه‌نویسی آموزشی
رده:زبان‌های برنامه‌نویسی ساخته‌شده در ۲۰۰۱ (میلادی)
رده:زبان‌های برنامه‌نویسی شیءگرا
رده:زبان‌های برنامه‌نویسی ماشین مجازی جاوا
رده:کتابخانه‌های رایانه‌ای آزاد
رده:گرافیک رایانه‌ای
رده:مقاله‌ها با نحو منسوخ‌شده تصویر
رده:نرم‌افزارهای آزاد چندسکویی
رده:نرم‌افزارهای چندسکویی
رده:نرم‌افزارهای دارای پروانه ال‌جی‌پی‌ال
رده:نرم‌افزارهای ۲۰۰۱ (میلادی)
رده:ویکی‌سازی رباتیک
رده:نرم‌افزارهای انیمیشن