حين نتحدث عن لغات البرمجة، فإن الصورة النمطية التي تكون عند عامة الناس أنها لغات تتحدث بها مع آلة الكمبيوتر لبرمجتها، وتكون غالبا صعبة، غريبة، ومليئة بالرموز الغير مفهومة وهي موجّهة لمهوسي الكمبيوتر فقط. في الواقع جزء من هذا الكلام صحيح، لكن ليس كله، فما إن تفهم اللغات البرمجية وتفهم المنطق المستعمل فيها، فإنها ستصبح أسهل وأمتع ويمكن لأي شخص أن يستعملها للتواصل مع آلة الكمبيوتر وبرمجتها. طبعا كل كلامي السابق يخص لغات البرمجة العادية. أما اللغات البرمجية التي سأستعرضها في هذا المقال، فهي مصممة لتكون لغات برمجية صعبة الاستعمال وصعبة التعلم، غريبةً، استثنائية، مثيرة للضحك في بعض الأحيان، وحتما مقتصرة على فئة قليلة من الناس.
ArnoldC لغة برمجية مبنية على أقوال الممثل "أرنولد شوارزنيجر" التي جاءت في أفلامه مثل "Terminator"، حيث أن الكلمات الرئيسية الأساسية في أي لغة برمجية عادية أُستبدلت مع اقتباسات من أفلام "أرنولد شوارزنيجر" المختلفة، مثلا: 'False' أصبحت 'I LIED' و 'True' أصبحت 'NO PROBLEMO' و 'Print' أصبحت 'TALK TO THE HAND' وهكذا. يبدو أن مطوّر هذه اللغة كان يحب الممثل "أرنولد شوارزنيجر" جدًا وأول شيء فكّر فيه ليس وضع صور الممثل على حساباته الشخصية داخل مواقع التواصل الاجتماعي، بل أنشأ لغة برمجية استنادًا على أقواله، وهو أمر متوقع جدا من مهووسي الكمبيوتر. وإليك كمثال برنامج "Hello World" بلغة ArnoldC:
IT'S SHOWTIMETALK TO THE HAND "hello world"YOU HAVE BEEN TERMINATED
أُنشأت اللغة البرمجية Taxi سنة 2005، وكما هو واضح من الاسم، البرمجة بلغة Taxi تشبه قيادة سيارة تاكسي افتراضية. حيث أن أي برنامَج بهذه اللغة يبنى عن طريق إعطاء توجيهات إلى وجهات وأماكن على خريطة افتراضية تحمل اسم "خريطة طريق Townsburg"، فهذا التاكسي الافتراضي يحمل البيانات وينقلها بين وجهات مختلفة مثلما تفعل سيارة الأجرة على الواقع وتنقل المسافرين.
فمثلا المتغيرات والدوال في باقي لغات البرمجة أُستبدلت بأماكن ومدن في لغة Taxi، كما أنه مطلوب منك كمبرمج إعطاء تعليمات حول الاتجاهات، أماكن الالتقاط وأماكن النزول. وبما أن سيارة الأجرة تحتاج إلى الوقود لتواصل سيرها، فإن الركاب يدفعون ثمن رحلاتهم وبالتالي يمكن التزود بالوقود في المحطات الخاصة به، وطبعا هذا كله يحدث افتراضيا خلال البرمجة بلغة Taxi. وهذا مثال يوضح كيفية كتابة برنامج "Hello World" بلغة Taxi:
"Hello, World!" is waiting at the Writer's Depot.Go to Writer's Depot: west 1st left, 2nd right, 1st left, 2nd left.Pickup a passenger going to the Post Office.Go to the Post Office: north 1st right, 2nd right, 1st left.Go to the Taxi Garage: north 1st right, 1st left, 1st right.
3 LOLCODE
LOLCODE عبارة عن لغة برمجية مبنية على ما يعرف بالـ "lolspeak" وهو نوع من اللغة المكتوبة الذي يعتمد على اختصار الكلمات وكتابتها بأخطاء إملائية عن قصد لكن يتم نطقها بنفس اللفظ الصحيح، وتستعمل كثيرا على الإنترنت مع صور القطط -أو ما يعرف بالـ lolcat- (مثلا: That would be awesome, seriously dude بلغة lolspeak تصبح Dat wood bee awsoem, srsly dued). تم إنشاء هذه اللغة البرمجية سنة 2007 من طرف Adam Lindsay باحث في قسم الحوسبة بجامعة لانكستر. لدينا المثال التالي وهو حول كتابة كود "Hello World" بلغة LOLCODE:
HAI 1.2CAN HAS STDIO?VISIBLE "HAI WORLD!"KTHXBYE
اقرأ أيضًا: تجمعية جديدة من أقوى تطبيقات تعلم البرمجة
4 Brainf*ck
من الاسم يتضح أن هذه ليست باللغة البرمجية السهلة، بل ستسبب لك صداعا دون شك. Brainf*ck هي لغة برمجية أنشأت سنة 1993 من قبل طالب الفيزياء السويسري Urban Müller. من الأشياء الملحوظة في هذه اللغة هي البساطة، لكن ليست تلك البساطة التي تسهل فهم الأمور، بل العكس. حيث أنها تستخدم فقط ثماني أوامر، كل منها عبارة عن رمز واحد فقط +-<>[],. وإذا كنت تتساءل عن شكل هذا الكود الذي يتكون من ثماني رموز، فإليك مثال حول كيفية كتابة كود "Hello World" بلغة Brainf*ck:
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
إذا لم تفهم شيئا مما تراه وأحسست بصداع في رأسك محاولا قراءة الكود وفهمه، فها أنت ذا تعلم لماذا تسمى لغة البرمجة هذه بـ Brainf*ck.
5 Shakespeare
الهدف من اللغة البرمجية Shakespeare كان الحصول على لغة برمجية لا تشبه باقي اللغات البرمجية العادية، وبالفعل ما يظهر بعد كتابة برنامج بلغة Shakespeare يشبه مسرحية لشكسبير أكثر من شبههِ بكود برمجي عادي. حيث أن المتغيرات يجب أن تسمى على أسماء شخصيات شكسبيرية مثل "روميو" و"جولييت" فتدخل هذه الشخصيات في حوار مع بعضها البعض ومن خلال هذا الحوار يتشكل الكود البرمجي بكل ما يلزمه. وكالعادة، إذا كنت تتساءل كيف يبدو هذا الكود البرمجي الذي يشبه مسرحية لشكسبير، فإليك مثال برنامج "Hello World" القياسي:
The Infamous Hello World Program.Romeo, a young man with a remarkable patience.Juliet, a likewise young woman of remarkable grace.Ophelia, a remarkable woman much in dispute with Hamlet.Hamlet, the flatterer of Andersen Insulting A/S.Act I: Hamlet's insults and flattery.Scene I: The insulting of Romeo.[Enter Hamlet and Romeo]Hamlet:You lying stupid fatherless big smelly half-witted coward!You are as stupid as the difference between a handsome rich brave hero and thyself! Speak your mind!You are as brave as the sum of your fat little stuffed misused dusty old rotten codpiece and a beautiful fair warm peaceful sunny summer's day. You are as healthy as the difference between the sum of the sweetest reddest rose and my father and yourself! Speak your mind!You are as cowardly as the sum of yourself and the difference between a big mighty proud kingdom and a horse. Speak your mind.Speak your mind![Exit Romeo]
ختاما، كانت هذه خمس أمثلة عن ما يعرف بلغات البرمجة الباطنية -esolang- والتي يتم إنشاءها لتكون بعيدة كل البعد عن لغات البرمجة العادية، فهي تصمّم لتكون غريبة وخارجة عن المألوف تماما. طبعا هنالك عدة أمثلة ولغات برمجية أخرى من هذا النوع المتميز بالغرابة، لكن حاليا اكتفينا فقط بذكر خمس أمثلة.