قد تظن للوهلة الأولى أن بعض لغات البرمجة مجرد مزاح أو مشاريع تجريبية غير قابلة للاستخدام العملي، لكن الواقع يثبت عكس ذلك. توجد لغات برمجة حقيقية صُممت بأفكار غير تقليدية، وتبدو وكأنها وهمية بسبب أسمائها أو طريقة كتابتها أو فلسفتها المختلفة.
تندرج هذه اللغات ضمن ما يُعرف أحيانًا باللغات غير التقليدية أو لغات البرمجة الغريبة، لكنها في الحقيقة قادرة على تنفيذ أوامر فعلية وبناء تطبيقات، بل وتُستخدم أحيانًا لأغراض تعليمية أو بحثية. بعض هذه اللغات يهدف إلى تبسيط المفاهيم، بينما يسعى بعضها الآخر إلى تحدي التفكير البرمجي السائد.
التعرّف على لغات برمجة تبدو خيالية يمنحك نظرة أوسع على تطور علم البرمجة، ويكشف كيف يمكن للإبداع أن يتجاوز القوالب التقليدية. في هذا المقال نستعرض أمثلة حقيقية للغات برمجة غير مألوفة تثبت أن الابتكار في هذا المجال لا حدود له.
يميل المبرمجون إلى استخدام مجموعة محدودة من لغات البرمجة في عملهم اليومي، إما بسبب جهة خارجية أو تفضيلهم الشخصي. تتغير اللغات وتتطور تبعًا للموضة، لكننا لا نرى سوى جزء ضئيل مما هو متاح فعليًا.
اللغات التالية متخصصة جدًا – أو غريبة بكل بساطة – لدرجة أنك قد لا تكون على دراية بوجودها، أو على الأقل غير ملم بها. هل هي حقيقية أصلًا، أم أنها جزء من مزحة مُحكمة؟ القرار لك.
Whitespace: هل الكود غير مرئي؟
تخيل أنك تُسلم ورقة بيضاء لمهمة البرمجة التالية، ليُهنئك مُدرسك على إنجازك. يُمكن تحقيق هذا الوعد مع لغة Whitespace، وهي لغة برمجة غريبة حقًا.
إذا لم تُعجبك طريقة بايثون في إجبارك على تنسيق الكود بشكل مُنتظم، فتوقف عن القراءة الآن.
في لقطة الشاشة تلك، تم تحديد شفرة المصدر للبرنامج لتمييز الأسطر الجديدة وعلامات الجدولة والمسافات بوضوح، لأنها الأحرف الوحيدة المهمة في لغة Whitespace. مع ذلك، يصعب تصديق أن هذه شفرة حقيقية، شفرة قادرة على فعل أي شيء تفعله أي لغة أخرى، لكنها كذلك.
يعتمد كل شيء في Whitespace على تركيبة وعدد أحرف المسافة البيضاء المتتالية. لذا، مسافة، مسافة تعني “إضافة الرقم التالي إلى المكدس”، بينما علامة جدولة، مسافة، مسافة، سطر جديد تعني “ضرب الرقمين العلويين في المكدس”.
كتابة برنامج Whitespace أمرٌ في غاية الصعوبة. لن تضطر فقط للتعامل مع مجموعة تعليمات محدودة، بل سيتعين عليك أيضًا توخي الحذر الشديد عند استخدام محرر النصوص لضمان عدم قيامك بتنسيق المسافات تلقائيًا عن طريق الخطأ. علاوة على ذلك، يصعب قراءة شفرة Whitespace المطبوعة…
Chef: هل أصبحت وصفات الطعام شفرة مصدرية الآن؟
إذا كانت الوجبة التالية التي ستُقدم لك مُعدّة من وصفة تُستخدم أيضًا كشفرة مصدرية لبرنامج “مرحباً بالعالم”، فهل سترغب حقًا في تناولها؟ إذا كُتبت تلك الوصفة بلغة Chef، فيمكنك المتابعة وأنت مطمئنٌ إلى أن هذا الكود يجب أن:
لا يقتصر الأمر على إنتاج مخرجات صحيحة، بل يجب أن يكون سهل التحضير ولذيذًا.
هذا أحد مبادئ تصميم Chef، وهي لغة تُمثل البيانات كمكونات، وتُمثل تعليمات البرنامج بوصفة طهي. من أمثلة هذه الأخيرة: “أخرج الحليب من الثلاجة” لقراءة المدخلات في متغير، و”اخلط وعاء الخلط الثاني جيدًا” لترتيب مجموعة من القيم عشوائيًا.
ظاهريًا، قد تبدو برامج Chef مشابهةً بشكلٍ مُدهش لما قد تجده في كتاب طبخ، مع أن وصفةً تتطلب 101 بيضة و111 كوبًا من الزيت يُنصح بعدم اتباعها في المنزل، حتى لو طبعت عبارة “Hello World” بعد الانتهاء.
لغة LOLCODE مجرد مزحة كبيرة، أليس كذلك؟
أي لغة تحمل كلمة “LOL” في اسمها يجب التعامل معها بحذر؛ فهذا برنامج آخر من برامج Chef. لذا، من الواضح أن LOLCODE تتطلب منك عدم أخذها على محمل الجد، ولكن هل عبارة “CAN HAS STDIO?” تُعدّ فعلاً شيفرة برمجية قابلة للتطبيق؟ نعم، مع LOLCODE، بالطبع.
تحتفي هذه اللغة بظاهرة لغة الضحك (lolspeak)، التي أهدتنا صور LOLcats، وعبارة “I CAN HAS CHEEZBURGER?”، وغيرها الكثير من سخافات أوائل القرن الحادي والعشرين التي ربما نسيتموها تمامًا.
إلى جانب إعادة استخدام عبارات مثل “BTW” (لإدخال تعليق) وعبارة “KTHXBYE” الرائعة لإنهاء البرنامج، تستخدم LOLCODE الرموز التعبيرية، السلف القديم لرموز الإيموجي الحالية. فالتسلسل “:)” ليس مجرد وجه مبتسم مقلوب، بل هو أيضًا حرف سطر جديد في LOLCODE.
تماشيًا مع لغة السخرية، تكثر الأخطاء الإملائية في هذه اللغة، لذا عليك توخي الحذر حتى لا تخلط بين الأخطاء المطبعية الحقيقية والمتعمدة. على سبيل المثال، يمكنك التحقق من أن متغيرًا باسم “ANIMAL” يحمل القيمة “CAT” باستخدام عامل التشغيل “BOTH SAEM”، أي: BOTH SAEM ANIMAL AN “CAT”.
Malbolge: يمكنك ببساطة الضغط عشوائيًا على لوحة المفاتيح.
مالبولج لغة باطنية عريقة، لذا قد تتعرف على اسمها حتى لو لم تفهم معناها. مع ذلك، من الأفضل لك على الأرجح ألا تعرف معناها؛ فالاسم إشارة إلى الدائرة الثامنة من جحيم دانتي، وهو مكان قد تشعر وكأنك فيه إذا طُلب منك الكتابة بهذه اللغة.
حتى لو كنت مُلمًا باللغة، فقد لا تتعرف عليها من بعض نماذج الشيفرة المصدرية.
(=<`#9]~6ZY327Uv4-QsqpMn&+Ij"'E%e{Ab~w=_:]Kw%o44Uqp0/Q?xNvL:`H%c#DD2^WV>gY;dts76qKJImZkj
هذا السيل من الكلام غير المفهوم يعرض -كما قد تكون خمنت- رسالة “مرحباً بالعالم” الكلاسيكية.
مع ذلك، لا بد أن كتابة البرامج بهذه الصعوبة بمجرد فهم اللغة، أليس كذلك؟ لكن اطمئن: إنها صعبة. ربما لن تشعر بالثقة عندما تكتشف أن مبتكر لغة مالبولج لم يكتب برنامجاً واحداً بها قط.
معظم برامج مالبولج -إن لم تكن جميعها- تُولّد تلقائياً من شفرة مكتوبة بلغات أكثر شيوعاً. وبما أن مالبولج صُممت عمداً لتكون صعبة الكتابة قدر الإمكان، فهذا أمر مفهوم.
Velato: هل التصفير برمجة؟
في الإيطالية، تعني كلمة “فيلاتو” “مُحجب”، وهذه اللغة غامضة وغير مباشرة بلا شك. لكن أي جمال في اسمها يتضاءل أمام جمال شفرة برامجها المصدرية.
نعم، برامج Velato عبارة عن مقطوعات موسيقية، وهذا مثال آخر على استخدام شفرة المصدر المزدوجة. يُعبّر كل من درجة الصوت وترتيب النوتات عن أوامر Velato، ويمكنك حتى استخدام مسارات متعددة للتناغمات؛ إذ تتجاهل اللغة أي مسار بعد الأول.
نصيحة
لماذا لا تُقدّم بعضًا من شفرة Velato المصدرية في حفل عشاءك القادم، بينما تستمتع بطبق رئيسي من شفرة Chef؟ قد يؤدي هذا التفاعل الحسي إلى حدوث أي شيء تقريبًا!
لعلّ أكثر ما يُثير الإعجاب في Velato هو امتداد 2024، الذي يُضيف دعمًا للصفارة. تخيّل أنك تستخدم يديك بحرية، وتسترخي، وتُصفّر لحنًا مرحًا لبرمجة حاسوبك. إذا كنت تتمتع بحاسة سمع موسيقية مثالية وعقلٍ حادّ، فلماذا لا تُجرّب ذلك؟
Funciton : مخططات التدفق ليست شفرة برمجية في الواقع، أليس كذلك؟
إذا لم تجد في التأليف الموسيقي بديلًا مثاليًا لكتابة شفرة البرامج، فماذا عن الرسم؟ تقوم لغة Funciton بتفسير البرامج باستخدام أحرف رسم المربعات Unicode، لذا يمكنك الآن تشغيل فن ASCII الخاص بك بالإضافة إلى الإعجاب به.
تبدو برامج الدوال شبيهة إلى حد ما بمخططات الدوائر الكهربائية أو أنواع مخططات التدفق التي قد ترسمها عند تصميم برنامج في المقام الأول:
على عكس معظم اللغات المذكورة هنا، والتي تتميز بمجموعات تعليمات محدودة، يمتلك مُفسِّر Funciton مكتبة ضخمة من الدوال، تغطي كل شيء بدءًا من دمج السلاسل النصية (ʝ) وتصفية التسلسلات (ƒ) وصولًا إلى مطابقة التعبيرات النمطية (℞).
مرة أخرى، قد تحتاج إلى ضبط إعدادات محرر النصوص بعناية لإدارة عملية كتابة برامج Funciton. ستحتاج إلى خط أحادي المسافة جيد لدعم المحاذاة الصحيحة، وقد ترغب في كتابة مسودات برامجك على الورق أولًا لتجنب التعديلات غير الموفقة على التنسيق.
لغات البرمجة لا تقتصر على الأدوات الشائعة فحسب، بل تضم تجارب إبداعية قد تبدو غريبة في ظاهرها لكنها تحمل أفكارًا تقنية حقيقية. الاطلاع على هذه اللغات يوسّع فهمك لأساليب التفكير البرمجي ويحفّزك على استكشاف آفاق جديدة.
إذا كنت مهتمًا بتطوير مهاراتك، جرّب قراءة توثيق إحدى هذه اللغات أو تنفيذ مثال بسيط بها، فقد تكتشف منظورًا مختلفًا يغيّر طريقة تعاملك مع البرمجة بالكامل.








