Jannah Theme License is not validated, Go to the theme options page to validate the license, You need a single license for each domain name.

لغات برمجة غير مألوفة تقدم أفكارًا تستحق التجربة

7 لغات برمجة غير عادية تستحق إلقاء نظرة عليها

بعض لغات البرمجة لا تنتشر مثل غيرها، لكنها تحمل أفكارًا مبتكرة تجعلها خيارًا مثيرًا للاكتشاف. ينجذب المطورون عادةً إلى اللغات الشائعة، لكن هناك لغات أقل شهرة قد تقدّم حلولًا أبسط، أو طرقًا مختلفة للتفكير في بناء البرمجيات، أو أدوات قوية للتجربة والتعلم. استكشاف هذه اللغات يمنح المطوّر منظورًا أوسع ويكشف عن طرق جديدة للتعامل مع المشكلات اليومية في البرمجة.

person-with-a-code-editor-icon-as-a-head-holding-a-laptop-surrounded-by-colorful-icons-representing-unusual-programming-languages-like-piet-shakespeare-prolog-whitespace-and-jsfuck لغات برمجة غير مألوفة تقدم أفكارًا تستحق التجربة

بكل المقاييس، هناك عدد هائل من لغات البرمجة. بعض القوائم تحتوي على المئات، بينما تُدرج الموسوعة التاريخية للغات البرمجة أقل بقليل من 9000 لغة. ربما لم تستخدم سوى عدد قليل منها، وقد لا يُفاجئك كثيرًا اكتشاف أن العديد من اللغات الأخرى غامضة وقديمة وغريبة.

اكتشف مدى غرابة البرمجة، من اللغات المليئة بالأقواس، إلى تلك التي تُفسر الألوان أو حتى الشيفرة التي لا تراها على الإطلاق!

Lisp، حيث كل شيء عبارة عن قائمة

Lisp لغة قديمة، وربما تكون ثاني أقدم لغة لا تزال مستخدمة حتى اليوم. ظهرت لأول مرة عام 1960. اسم اللغة يرمز إلى “معالجة القوائم”، ولكن هناك بديل شائع، يُشير إلى بناء الجملة الفريد للغة، وهو “الكثير من الأقواس الزائدة المزعجة”. من السهل معرفة سبب تسميتها بهذا الاسم:

(defun factorial (n)
    (if (zerop n) 1
        (* n (factorial (1-n)))))

تحسب هذه الدالة عاملي العدد، باستخدام التكرار. يُعد التكرار مفهومًا أساسيًا في هذه اللغة، إلى جانب ميزات فعّالة أخرى مثل الكتابة الديناميكية ودوال الرتب العليا.

لعل أكثر ما يُثير الإعجاب في لغة ليسب هو تمييزها بين الكود والبيانات: لا يوجد فرق بينهما. كل شيء عبارة عن تعبير s، مما يجعل بناء جملة ليسب اقتصاديًا للغاية. ونتيجةً لذلك، يصفها العديد من مُحبي ليسب بأنها اللغة الوحيدة الجميلة بحق، وبمجرد استيعاب المفهوم، يصعب عليك الاختلاف.

خضعت ليسب للعديد من المراجعات ونتج عنها العديد من الإصدارات منذ ظهورها. من أنجحها Emacs Lisp، الذي يُشغّل مُحرر نصوص لينكس المرن الذي يحمل الاسم نفسه، ويُمكّنه من أن يكون قابلاً للتكوين والتوسيع بشكل لا يُصدق. ومن الاستخدامات البارزة الأخرى للغة ليسب لغة Arc، وهي لهجة تُشغّل موقع Hacker News.

اقرأ أيضا:  كيفية العثور على كلمة مرور الاجتماع لـ Zoom على الهاتف المحمول والكمبيوتر

Prolog، رائد برمجة الذكاء الاصطناعي

Prolog (والتي تُترجم إلى “البرمجة المنطقية”) هي آخر لغة برمجة مهمة في هذه القائمة، وقد أُدرجت نظرًا لنموذجها غير التقليدي ومكانتها كلغة الذكاء الاصطناعي الأصلية. تستخدم برولوغ أسلوبًا تعريفيًا، حيث تصف البرامج بنية المهمة ومنطقها، بدلاً من عملية إنجازها. يتولى برولوغ الباقي، حيث يأخذ هذه القواعد وينتج برامج تستخدمها.

يتيح هذا النهج نوعًا معينًا من البرمجة، يركز على المنطق واللغة الطبيعية أكثر من تدفق التحكم والخوارزميات. يتكون برنامج برولوغ من حقائق مثل:

child(john,sue).

وقواعد مثل:

parent(Y,X) :- child(X,Y).

وهذه تشكل قاعدة معرفية يمكنك بعد ذلك الاستفسار منها باستخدام استفسارات مثل:

?- parent(sue,john).

يجب أن تكون القيمة “صحيح” للإشارة إلى أن “سو” هي والد “جون”. بالطبع، هذا المثال البسيط ليس مُفيدًا جدًا، لكن برنامجًا أكثر تعقيدًا يحتوي على مئات الآلاف من القواعد والحقائق يُمكنه التوصل إلى استنتاجات أكثر إثارة للاهتمام.

تُعد لغة Prolog مُناسبة بشكل خاص لحل الألغاز المنطقية مثل أبراج هانوي أو لغز عبور النهر الكلاسيكي مع ذئب وماعز وملفوف. إنها مثال آخر على لغة يصعب استيعابها؛ ولكن بمجرد استيعابها، يسهل إدراك جمالها وتأثيرها.

Befunge، لغة ذات شيفرة مصدرية ثنائية الأبعاد

تُعد Befunge مثالًا كلاسيكيًا على لغة برمجة غامضة؛ لغة تُركز على استخدامها البارع لتصميم اللغة أكثر من تطبيقها العملي. يُعد استخدام هذه اللغات تحديًا، ولا تزال تتطلب مزيجًا من التفكير المنطقي والتفسير الإبداعي. لكنها في النهاية تُضفي لمسةً من البهجة على عالم البرمجة الجاد عادةً.

في العديد من اللغات، يكون الكود المصدري موجهًا نحو الأسطر، وقليل منها – مثل بايثون – يهتم أيضًا بأعمدة أجزاء الكود. لكن بيفونج يتجاوز هذا الحد: الكود عبارة عن أحرف فردية، مرتبة في شبكة.

0"!dlroW ,olleH"v
                > , v
                | : <
                @

يطبع البرنامج أعلاه عبارة “أهلًا بالعالم!” بإضافة كل حرف إلى المكدس، ثم تكرار طباعته. الرمز @ أسفل يمين البرنامج هو أمر “إنهاء” لإنهاء تنفيذه.

يدعم Befunge 26 أمرًا مختلفًا، تشمل العمليات الحسابية، وتدفق التحكم، وعمليات الإدخال والإخراج، ومعالجة المكدس العام (بنية البيانات المفردة). يستخدم البرنامج أحرفًا تشبه الأسهم للتحكم في تدفق البرنامج، لذا فإن برنامج Befunge هذا عبارة عن حلقة لا نهائية.

>v
^<

يمكنك استخدام تدوين اللاحقة للتحكم في المكدس؛ يُخرج الأمر . القيمة في الأعلى. يقوم هذا البرنامج بإخراج 12:

48+.@

هناك أوامر للتحرك عشوائيًا، والقراءة من مدخلات قياسية، وتكرار أعلى المكدس. وهناك أيضًا مُعامل “if” العمودي المُحدد بدقة رائعة!

اقرأ أيضا:  إصلاح عدم اتصال Chrome بالإنترنت

تشهد البرمجة الرسومية، أو البصرية، رواجًا متزايدًا، مع لغات مثل سكراتش المُوجهة للسوق التعليمي. إذا ما حققت أي لغة نجاحًا، فقد يعود الفضل في ذلك إلى لغة Befunge، اللغة التي تستخدم أبسط أشكال العرض الرسومي: فن ASCII.

Piet ، الذي تُعتبر برامجه أعمالًا فنية تجريدية

piet_hello_big-1 لغات برمجة غير مألوفة تقدم أفكارًا تستحق التجربة

تُعتبر لوحات Piet  موندريان التي جمعت بين خطوط الشبكة السوداء والألوان الأساسية المُكعبة من أشهر فنون القرن العشرين. تستلهم لغة بيت منها، مُنتجةً شيفرة مصدرية رائعة لا تُشبه ما تُقدمه في الواقع.

على الرغم من أن هذا المثال لا يحاكي أسلوب موندريان تمامًا، إلا أن برنامج Piet يمكنه القيام بذلك، مع القليل من العمل:

piet-4 لغات برمجة غير مألوفة تقدم أفكارًا تستحق التجربة

خلف الكواليس، يُشبه Piet لغة Befunge إلى حد ما، حيث تُمثل كتل الألوان الحركة في الفضاء ثنائي الأبعاد داخل البرنامج. لا يُعرّف كل أمر محدد بلون مُحدد، بل بالانتقال من لون إلى آخر، وفقًا لتغير لونه ودرجة سطوعه. لا شك أن Piet ليست لغة برمجة سهلة، ولكن يُقال إن الفن الحقيقي يتطلب نوعًا من المعاناة.

المسافة البيضاء، لأنها تُشعرك وكأنك جاسوس.

ما رأيك في البرنامج التالي؟

دعونا نجعل الأمر أسهل قليلاً: ماذا عن نفس الشيء مع تحديد النص بأكمله؟

programming-whitespace-hello لغات برمجة غير مألوفة تقدم أفكارًا تستحق التجربة programming-whitespace-hello-selected لغات برمجة غير مألوفة تقدم أفكارًا تستحق التجربة

حسنًا، لا يزال فك تشفير هذا الأمر صعبًا بعض الشيء، لكن لا تلم نفسك: هذا هو عالم المسافات البيضاء العجيب، وهي لغة برمجية تتكون برامجها بالكامل من أحرف المسافة والجدولة وتغذية السطر. ربما عليك تعلم كيفية إظهار الأحرف غير المطبوعة في محرر نصوصك قبل البدء بهذا.

نصيحة
استخدم أمر :set list في Vim لإظهار أحرف المسافات البيضاء، وتأكد من أن محرر نصوصك لا يزيل المسافات البيضاء الزائدة عند حفظ ملفات المسافات البيضاء. أو ابتعد تمامًا عن المسافات البيضاء.

بصرف النظر عن بنيتها النحوية الفريدة، تشترك المسافات البيضاء في الكثير مع لغات برمجة أخرى معقدة: فهي تستخدم مكدسًا، وتدعم مجموعة محدودة من العمليات، وتتعرف فقط على أنواع البيانات الصحيحة والحروفية.

اقرأ أيضا:  كيف يجعل دعم iCloud الجديد Outlook أكثر سهولة

تتجاهل المسافات البيضاء جميع الأحرف غير الفراغية، ولكنها تعتمد على الأحرف التي تتجاهلها معظم اللغات الأخرى، لذا يمكن تضمين برنامج المسافات البيضاء في مصدر لغة برمجة مختلفة تمامًا. إذا أردت، يمكنك دمج برنامج المسافات البيضاء داخل برنامج آخر. حتى أن بعض برامجك الحالية قد تكون أكوادًا صالحة للمسافات البيضاء!

Shakespeare ، لغة برمجة ببرامج يُحتمل أن يكون الشاعر قد كتبها.

استمع، استخدم هذه اللغة، وسيكون مصدرك بديعًا كما لو أنه نبع من قلم الشاعر.

بعبارة أخرى، شكسبير لغة برمجة بشفرات مصدرية تبدو وكأن شكسبير كتبها. أعلم أن هذا يبدو مستبعدًا، لذا إليك مثال لبرنامج يُخرج “مرحبًا”:

programming-shakespeare لغات برمجة غير مألوفة تقدم أفكارًا تستحق التجربة

يحقق شكسبير الكثير من أهدافه من خلال منح المبرمج حرية واسعة، مما يسمح له بالكتابة بلغة شبه شكسبيرية. في المثال هنا، يتم الإعلان عن المتغيرات – هاملت وجولييت – باستخدام “Enter”. العبارة التي تنطق بها جولييت، والتي تبدأ بـ “Thou art”، هي عملية حسابية تعتمد على سلبية الصفات وعددها. “Speak your mind” هي إحدى طرق إخراج القيمة؛ في هذه الحالة، حرف “H” في “HI”.

ومثل معظم اللغات الغامضة، لا يُقصد من شكسبير أن يكون عمليًا. ولكنه عرض رائع لمدى تنوع لغات البرمجة، ومدى إبداع بعض مصممي اللغات أيضًا.

JSF**k، لغة برمجة جريئة تعمل في أي متصفح ويب

هذه اللغة هي الأكثر وقاحة بين جميع لغات البرمجة هنا، ولكن فقط لأننا تركنا بعض اللغات الأخرى خارج هذه القائمة! يواصل JSFuck تقليد استخدام الشتائم في أسماء اللغات الغامضة، والذي بدأ مع النسخة الأصلية، Brainfuck، عام ١٩٩٣.

تتميز نسخة JS بكونها فرعًا من JavaScript، ما يسمح بتشغيلها في متصفح الويب. أما سبب رغبتك في ذلك، فهذا أمر آخر.

JSFuck في الواقع مُرمِّز، يُحوِّل أي برنامج JavaScript معقول إلى فوضى برمجية مُعقدة لا تُسبر غورها، لا تستخدم سوى الأحرف [, ] و(,) و! و+. يستغل خصائص مُعينة من لغة JavaScript لإجراء هذا التحويل المُعجز، ولكنه يفعل ذلك دون أي اعتبار للكفاءة. في JSFuck، تشغل Hello World ٣٠٣٩ حرفًا. لن أُضمِّن الكود كاملًا، ولكن إليك مُقتطفًا للتوضيح:

jsfuck لغات برمجة غير مألوفة تقدم أفكارًا تستحق التجربة

JSFuck هو في نهاية المطاف دليل على صحة المفهوم، إذ يُظهر أن أي برنامج جافا سكريبت موجود لا يحتاج إلا إلى ستة أحرف لتشغيله. مع ذلك، فإن جافا سكريبت مسؤولة بالفعل عن تضخم حجم مواقع الويب، لذا يُنصح بتجنب جعلها أسوأ بكثير.

التعرّف على لغات برمجة غير مألوفة يمنح المطور فرصة لفهم أساليب جديدة في التصميم والتفكير. حتى إن لم تُستخدم عمليًا في المشاريع الكبيرة، فإنها تُضيف خبرة قيمة وتعزز القدرة على التعامل مع تحديات البرمجة بمرونة أكبر. توسيع دائرة المعرفة بهذه اللغات قد يلهمك لاختيار أدوات جديدة أو تبني طرق أكثر كفاءة في مشاريعك القادمة.

زر الذهاب إلى الأعلى