زبان های برنامه نویسی عجیب غریب!
دنیای برنامهنویسی فقط شامل زبانهایی مثل Python، JavaScript یا Java نیست. در کنار این زبانهای کاربردی، دستهای از زبانها وجود دارند که بیشتر برای سرگرمی، آزمایش مفاهیم کامپیوتر یا حتی شوخی ساخته شدهاند. به این دسته از زبانها معمولاً Esoteric Programming Languages یا به اختصار Esolang گفته میشود.
این زبانها اغلب هدف عملی ندارند و بیشتر برای به چالش کشیدن ذهن برنامهنویسها طراحی شدهاند. در این مقاله با برخی از عجیبترین زبانهای برنامهنویسی دنیا آشنا میشویم.
زبان های Esoteric چیست؟
زبانهای Esoteric به زبانهایی گفته میشود که هدف اصلی آنها کاربرد عملی در پروژههای واقعی نیست. معمولاً این زبانها با اهداف زیر ساخته میشوند:
- آزمایش مرزهای طراحی زبانهای برنامهنویسی
- ایجاد چالش برای برنامهنویسان
- طنز یا سرگرمی
- نمایش مفاهیم علوم کامپیوتر
بعضی از این زبانها عمداً بسیار سخت طراحی شدهاند، در حالی که برخی دیگر ساختار کاملاً غیرمعمولی دارند.
Brainfuck
یکی از معروفترین زبانهای عجیب دنیا Brainfuck است. این زبان در سال ۱۹۹۳ توسط Urban Müller ساخته شد.
هدف از ساخت این زبان این بود که یک کامپایلر بسیار کوچک داشته باشد.
ویژگیهای Brainfuck
- فقط ۸ دستور دارد
- کدها بسیار سخت خوانده میشوند
- درک آن برای افراد تازهکار تقریباً غیرممکن است
دستورات Brainfuck
دستورات اصلی شامل این موارد هستند:
> < + - . , [ ]
مثال Hello World
++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.
همانطور که میبینی کد تقریباً غیرقابل فهم است!
Whitespace
یکی از عجیبترین زبانهای برنامهنویسی Whitespace است.
در این زبان فقط سه کاراکتر اهمیت دارند:
- Space
- Tab
- New Line
یعنی تمام کاراکترهای قابل مشاهده در کد نادیده گرفته میشوند.
در واقع شما برنامهای مینویسید که تقریباً هیچ چیز در آن دیده نمیشود.
به همین دلیل خواندن یا دیباگ کردن این زبان بسیار سخت است.
Shakespeare Programming Language
در این زبان عجیب، برنامهها به شکل نمایشنامههای شکسپیر نوشته میشوند.
در این زبان:
- متغیرها = شخصیتهای داستان
- دستورات = دیالوگها
- ساختار برنامه = صحنههای نمایش
نمونه کد
Romeo, a young man with remarkable patience.
Juliet, a likewise young woman of remarkable grace.
Act I: A beautiful garden.
Romeo:
You are as lovely as a summer's day.
در ظاهر شبیه یک متن ادبی است، اما در واقع یک برنامه محسوب میشود.
LOLCODE
LOLCODE زبانی است که بر اساس میمهای اینترنتی (LOLcats) ساخته شده است.
سینتکس این زبان شبیه زبان طنز اینترنتی است.
مثال Hello World
HAI
VISIBLE "HELLO WORLD"
KTHXBYE
این زبان بیشتر برای سرگرمی و آموزش مفاهیم ساده برنامهنویسی ساخته شده است.
Piet
Piet یکی از عجیبترین زبانهای برنامهنویسی تصویری است.
در این زبان:
- برنامه به صورت تصویر رنگی نوشته میشود
- هر رنگ معنای خاصی دارد
- اجرای برنامه با حرکت بین رنگها انجام میشود
در واقع به جای کد، شما یک نقاشی برنامهنویسی میکنید!
Malbolge
Malbolge یکی از سختترین زبانهای برنامهنویسی در تاریخ است.
این زبان در سال ۱۹۹۸ طراحی شد و هدف آن این بود که نوشتن برنامه در آن تقریباً غیرممکن باشد.
ویژگیهای Malbolge:
- کدها به شدت پیچیده هستند
- حتی طراح زبان هم ابتدا نمیتوانست در آن برنامه بنویسد
- اولین برنامه بعد از چند سال و با کمک الگوریتمهای جستجو نوشته شد
Befunge
Befunge زبانی است که در آن برنامه به صورت دو بعدی اجرا میشود.
در بیشتر زبانها اجرای برنامه از بالا به پایین است، اما در Befunge:
- اجرای برنامه میتواند
- بالا
- پایین
- چپ
- راست
حرکت کند.
به همین دلیل ساختار برنامه میتواند بسیار عجیب و پیچیده شود.
Chef
Chef زبانی است که در آن برنامهها به شکل دستور آشپزی نوشته میشوند.
ساختار برنامه شامل بخشهایی مانند:
- Ingredients
- Method
- Serves
است.
مثال ساده
Hello World Souffle.
Ingredients.
72 g haricot beans
101 eggs
Method.
Put beans into mixing bowl.
Print.
در واقع شما در حال نوشتن یک رسپی غذا هستید، اما برنامه اجرا میشود!
ArnoldC
این زبان بر اساس جملات معروف Arnold Schwarzenegger ساخته شده است.
دستورات برنامه شبیه دیالوگهای فیلمهای او هستند.
مثال
IT'S SHOWTIME
TALK TO THE HAND "HELLO WORLD"
YOU HAVE BEEN TERMINATED
این زبان کاملاً جنبه سرگرمی دارد.
INTERCAL
INTERCAL یکی از قدیمیترین زبانهای عجیب است که در سال ۱۹۷۲ ساخته شد.
هدف طراحان این زبان این بود که:
زبانی بسازند که عمداً بر خلاف تمام زبانهای دیگر باشد.
ویژگی جالب INTERCAL این است که گاهی برنامهنویس باید در کد خود عذرخواهی کند!
چرا این زبانها ساخته میشوند؟
ممکن است این سوال پیش بیاید که چرا اصلاً چنین زبانهایی ساخته میشوند.
دلایل مختلفی وجود دارد:
- بررسی مرزهای طراحی زبانهای برنامهنویسی
- ایجاد چالش برای برنامهنویسان
- آموزش مفاهیم علوم کامپیوتر
- سرگرمی در جامعه برنامهنویسان
در بسیاری از دانشگاهها از این زبانها برای درک بهتر نحوه کار کامپایلرها و زبانها استفاده میشود.
آیا این زبانها کاربرد واقعی دارند؟
در عمل تقریباً هیچ پروژه جدیای با این زبانها ساخته نمیشود. دلیل آن هم واضح است:
- خوانایی بسیار پایین
- سختی در نگهداری کد
- نبود ابزارهای توسعه
اما با این حال این زبانها بخش جالبی از فرهنگ برنامهنویسی هستند.
سخنان پایانی
دنیای برنامهنویسی فقط به زبانهای رایج محدود نمیشود. زبانهای عجیب یا Esoteric نشان میدهند که طراحی زبان میتواند تا چه حد خلاقانه، طنزآمیز یا حتی دیوانهوار باشد.
از زبانهایی که فقط از Space و Tab استفاده میکنند گرفته تا زبانهایی که برنامه را به شکل نمایشنامه یا دستور آشپزی مینویسند، همه اینها نشاندهنده خلاقیت جامعه برنامهنویسان هستند.
اگر به دنبال چالش جدید هستید، امتحان کردن یکی از این زبانها میتواند تجربه جالبی باشد؛ هرچند احتمالاً بعد از چند دقیقه دوباره به Python یا JavaScript برمیگردید!