مقدمة إلى Grace: لغة البرمجة التعليمية مفتوحة المصدر

عندما يتعلق الأمر بانتقاء لغة برمجة مناسبة لاستخدامها في تعليم الناس كيفية البرمجة، فإنك تجد لديك الكثير والكثير من اللغات والخيارات المختلفة، قمثلا تُعتبر Scratch لغة برمجة مناسبة لتعليم الأساسيات لأنها قائمة على مبدأ السحب والإفلات (drag & drop)، وPython و Ruby أيضا تعتبران خيارين مثاليين، فكلاهما يملكان تركيبة لغوية جيّدة (syntax) ومتشابهة لحدٍ ما، ومستخدمتان على نطاق واسع في العديد من المشاريع في العالم، ومجتمع ضخم؛ كما لدينا في الجانب الآخر لغات عملاقة مثل: Java و C و Objective-C و C#، وهي الأخرى مستخدمة على نطاق واسع في تطوير البرمجيات المختلفة، كل تلك اللغات تعتبر خيارات جيّدة، ولكن عندما يتعلق الأمر بالتدريس في الأوساط الأكاديمية فهل حقًا يمكنك أن تعتبرهم أفضل سبيل للقيام بذلك؟!

في مؤتمر At Linux.conf.au تحدّث Michael Homer في جامعة فيكتوريا حول لغة البرمجة “غريس Grace”، وهي لغة برمجيّة مفتوحة المصدر صممت خصيصا لتلبية احتياجات التعليم وتعليم البرمجة في البيئات التعليمية، بُنيت لغة “غريس” من الصفر باستخدام المفهوم الحالي للغات البرمجة ومواكبة للتطورات التعليمية الحديثة، إنّ العديد من اللغات المستخدمة في الأوساط الدراسية هي لغات قديمة بالحقيقة، على الرغم من أن جافا وبيثون تعتبران من اللغات الشعبية الحديثة “أوالأقل قدامة” بين اللغات الشهيرة – إلا أنهما قديمتان أيضا – وتلك اللغات عمومًا هي في بعض الأحيان قد لا تكون صديقة دائمًا للمبتدئين، وهي لم تُصمم لتعليم البرمجة بعين الاعتبار، لقد تمّ تصميم Grace لتكون لغة تعليمية، ولذلك فالهدف من تصميمها قوية ومتينة وصديقة للمُبرمجين الجُدد قدر الإمكان.

وتتميّز “غريس” بأربعة مبادئ أو خصائص أساسية، وهي كالتالي:

البرمجيات البسيطة ينبغي أن تكون بسيطة.
اللغة يجب أن تمتلك نموذجًا دلاليًا مفهومًا.
اللغة يجب أن تدعم مُختلف طلبات وأوامر التعليم.
أن تكون هذه اللغة متعددة الأغراض.

على سبيل المثال، انظر للكود أو البرنامج الآتي المكتوب بلغة “غريس” والذي يطبع عبارة Hello World:

print “Hello world”

وبالمقابل ألقِ نظرة على نفس البرنامج في لغة جافا:

class HelloWorld {
public static void main(String[] args) {
System.out.println(“Hello world”);
}
}

لعلك لاحظت أن “غريس” أسهل بكثير للمبرمج الجديد، فكما رأينا استطاعت أن تطبع Hello World بقليل من الكود، وأما جافا فقد تطلب الأمر كتابة المزيد من الأكواد، كما أن كل قطعة من الكود أعلاه في جافا لها وظيفة معينة ومختلفة، فإن هذا يتطلب بعض الوقت لكي يفهم الناس طريقة كتابة أكواد الجافا قبل أن يغوصوا في صميم اللغة، إن جافا قد تكون مربكة للمبرمجين الجدد، إن المدرسين يقضون الكثير من الوقت في تعليم الناس ومساعدتهم على معرفة واكتشاف رسائل الخطأ الصادرة عن مترجم الجافا عوضًا عن الوقت المستغرق في مساعدتهم تعلم أساسيات البرمجة كالمتغيرات (Var) والحلقات (Loops)؛ ويُعطينا Homer مثالا ممتازا على مدى الربكة التي قد يقع بها المبرمج الجديد في جافا، من خلال رسالة الخطأ التي سوف تنتج عن تنفيذ الكود الآتي:

class Counter {
int total = 0;
int add(int n) {
return ( total += n);
}
int addAllNegative(Iterable < Integer > all) {
for ( int n : all )
if (n < 0)
int total = add( -n);
return total;
}
}

في المثال أعلاه، يُظهر المُترجم (Compiler) الخاص بلغة جافا، رسالة خطأ، وهي كالتالي:

error: ’.class’ expected” for the line “int total = add(-n);

كما تلاحظ أمامك، فإن رسالة الخطأ هذه تطلب من المستخدم أن يقوم بفعل ما تُملي عليه، وهي إضافة كلاس (class.)، وهذا الحل الذي اقترحته رسالة الخطأ تلك (قد يسبب فوضى أكبر!)، وهذا إنما يدل على أنها ليست صديقة للمبرمج الجديد وهي تجعل الأمور مربكة لغير ذوي الخبرة، لقد تم تصميم “غريس” من الألف إلى الياء لتكون سهلة الفهم للمبرمجين المبتدئين.
“غريس” لديها الكثير والكثير من المميزات والخصائص التي تجعل تعليم وتعلم البرمجة أسهل من ذي قبل، شاهد الفيديو أدناه لـ Michael Homer لمعرفة المزيد من التفاصيل حول هذه اللغة البرمجية:

راجع أيضا المزيد من التفاصيل في هذا الموقع.

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