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

اللغة التي أطلق عليها د. السلكا اسم جيم (www.jeemlang.com) نسبة للغة سي الانجليزية تعتبر أول محاولة جادة لتطوير لغة حاسوبية يمكن استخدامها في مراحل التعليم العامة، صفحة تقنية المعلومات التقت مع الدكتور السلكا ليسلط الضوء أكثر على لغة جيم وتطبيقاتها.

@ هل لنا بتعريف بسيط بلغة جيم؟ وما سبب اختيار الاسم؟ وكيف بدأت الفكرة؟ والهدف منها؟

  • لغة ج هي لغة لبرمجة الحاسوب تستخدم أحرف اللغة العربية ومفرداتها وأرقامها وتحترم قواعدها وأصول كتابتها، يمكن بواسطتها كتابة البرامج للحاسوب الشخصي بدلاً من اللغات التي تستخدم الأحرف والمفردات الإنكليزية، مثل لغة C، ولذلك أعتقد أن لغة "ج" تصلح أن تكون وسيلة لتعليم برمجة الحاسوب في المدارس العربية أكثر من اللغات الأجنبية.

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

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

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

@ أشرتم في موقعكم إلى أن لغة جيم تستخدم اللغة العربية قلباً وقالباً؟ هل لنا بتوضيح أكثر كيف تم ذلك (منظومة بناء اللغة)؟

  • المقصود هو أن لغة "ج" قد تم تطويرها من الصفر وهي ليست واجهة أمامية للغة برمجة أجنبية أخرى، حيث يقترح البعض أن تكون لغات البرمجة العربية مجرد واجهة للغات البرمجة الأجنبية. أما لغة ج فقد تم كتابة مترجمها من البداية لتكون لغة مستقلة عن لغات البرمجة الأجنبية، وقد كتب مترجم لغة "ج" (وهو الآن جزء من برنامج الخوارزمي) بواسطة لغة C++.

    @ هل اللغة تنهج منهج البرمجة الكائنية (Object Oriented) أو البرمجة الوظيفية (Functional)؟ وهل لنا بمثال بسيط على مقطع برمجي لهذه اللغة (مثلا تقوم بطباعة أهلا بالعالم)؟

  • حالياً، لغة "ج" هي لغة برمجة وظيفية (مثل C) وأنا أحاول أن أجد الوقت الكافي لإصدار نسخة كائنية منها، ربما أطلق عليها اسم "ج++"، وأبسط البرامج هو أنت تكتب عبارة ترحيبية فالأمر البرمجي يكون (أكتب "مرحباً بكم إلى لغة ج")، وكما يلاحظ يتكون هذا البرنامج من سطر واحد فقط ولا يحتاج إلى أي إضافات أو بوادئ أخرى، وهذه إحدى السمات التي تميز لغة "ج"، إذ يمكن للمبرمج أن يبدأ بكتابة الجمل البرمجية مباشرة دون الحاجة إلى تعريف تابع رئيسي أو ما إلى ذلك.

@ ما هي قدرات لغة جيم وما هي متطلبات تشغيله؟ بمعنى هل اللغة قادرة على بناء أنظمة متطورة ومعقدة مثل ما تقوم به معظم لغات البرمجة الحالية؟

  • يمكن بواسطة لغة "ج" برمجة معظم التطبيقات التي يمكن برمجتها بلغات البرمجة الوظيفية المعروفة، وإذا اطلعتم على مجلد الأمثلة الموجود على الموقع لوجدتم أمثلة مختلفة تتراوح بين حساب المتوسط الحسابي لسلسة أعداد، وبين حل جملة معادلات آنية، إلى رسم المنحني البياني لتابع رياضي عام، أما فكرة بناء أنظمة معقدة ومتطورة بواسطة لغة "ج" فكما أسلفت لم يكن الهدف من لغة "ج" أن تكون بديلاً عن لغات البرمجة الشهيرة في تطوير البرامج الاحترافية، كما أن برامج لغة ج تنفذ بواسطة معالج افتراضي Virtual Processor (كما هو حال لغة جافا) وهو جزء من برنامج الخوارزمي لذلك لا يمكن تنفيذ برامج "ج" خارج إطار برنامج الخوارزمي أو تصدير البرامج التنفيذية على شكل ملفات تنفيذية مستقلة.

@ وهل بالإمكان استخدام اللغة في أنظمة تشغيل أخرى مثل الماك واللينكس؟

  • للأسف حالياً ذلك غير ممكن.

@ ما هي الخدمات التي يقدمها موقع لغة جيم؟ وهل اللغة مفتوحة المصدر بحيث تكون قابلة للتطوير؟

  • حالياً الموقع في حالة متواضعة، يمكن من خلاله تحميل برنامج الخوارزمي، والكتاب التعريفي للغة "ج"، ومجموعة من الأمثلة لبرامج بلغة "ج". ومن المزمع إضافة منتدى ملحق بالموقع للإجابة على استفسارات المهتمين بلغة "ج" وإتاحة الفرصة للحوار حول لغة "ج" وسبل تطويرها، أما عن الشق الثاني للسؤال فبرنامج الخوارزمي هو برنامج مجاني Freewareلكنه ليس مفتوح المصدر.

@ نعلم أن سر نجاح اللغات البرمجية مثل الجافا وغيرها هو وجود مجموعات مهتمة لتطويرها، هل بدأت لغة جيم باستقطاب المهتمين الذين يطمحون في تكوين مجموعة مهتمة حول اللغة؟

  • نعم بدأت لغة "ج" تستقطب اهتمام العديد من الأشخاص والمجموعات وأنا أستقبل العديد من الطلبات من الراغبين في المشاركة بتطوير لغة "ج" وتطبيقاتها.

@ هل تم تجربة اللغة في مناهج دراسية فعلية؟ وهل لنا ببعض قصص نجاح اللغة في تحقيق أهدافها؟

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

@ من المعلوم أن هناك تجارب سابقة في مضمار عمل لغات برمجة باللغة العربية ولكن أغلبها لم تحظ بذاك الاهتمام من المستخدم العربي، برأيكم ما هي أسباب عدم تنافس لغات البرمجية العربية مثيلاتها من اللغات الأخرى؟

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

hend@alriyadh-np.com