يبدأ الطفل الصغير في سرد حكاية؛ ويبدأ بعض الكبار من حوله في السخرية من الكلام العشوائي الغريب الذي يقوله. أما أنا فأنبهر، وأطلب منه أن يستمر. لديّ نظرية أنه هناك مسار من التفكير مشى فيه الطفل حتى يصل لهذه الحكاية، هو فقط ليس نفس تفكيرنا المألوف.
يقول Piaget أن المعرفة مثل بناء متعدد الطوابق؛ وكل مستوى جديد ينبني على المستويات السابقة، وأنه حتى إن كان المستوى السابق به ثغرات فكرية إلا أنه ضروري للمستوى الذي يليه، وبالتالي هو مرحلة مهمة في تطور الطفل فكرياً.
ويبدأ المبرمجون في السخرية من لغة Lisp. لديهم حجتان دائماً: انها مليئة بالأقواس، وأنها ليست ناجحة تجارياً. كذلك لغة Prolog لم أر أحداً يتحدث أبداً عن شيء فيها إلا وتساءل: هل تستخدم تجارياً في أي شيء؟
أما أنا حين رأيت تلك اللغة تغير الكثير من تفكيري عن البرمجة: لقد رأيت طريقة قوية جداً للتفكير في البرنامج. ما الذي يهم إن كانت ناجحة تجارياً أم لا؟ أنا أريد مستقبلاً تكون فيه البرمجة كلها بهذا الشكل!
ورأيت ذات مرة على أحد المنتديات من يقول أن العرب متأخرون في إنتاج علومهم الخاصة، وقدم مثالاً على ذلك هو أن لغة البرمجة العربية كلمات أضعف حتى من الـVisual Basic. الكلام صحيح: كلمات أضعف من الـVB (التي هي أصلاً لغة قوية جداً، قبل أو بعد الـnet.)، لكنها في نفس الوقت مشروع لم يكتمل. لن أطلب من الناس أن يقيّموا كلمات باعتبار ما يمكن أن يكون؛ بل قيموها كما ترونها، لكن في نفس الوقت سأقول أن كلمات في صورتها الحالية هي [على ما أرجو] فصل في قصة أطول.
ويبدأ بعض من المصريين في مهاجمة كل طموح في بلد أفضل لهم، ويظنون أن هذه هي الواقعية. وما تزال ترى العبارات المتكررة: "انت في مصر! احنا بلد .........! مش شايف الزبالة في الشوارع؟ مش شايف البلطجية؟".
هل رأيت أبداً مبنى قد قارب أن يكتمل بناؤه الأساسي، لكن لم يبدأ "تشطيبه"؟ ستجد المبنى عبارة عن صورة من الرمال والطوب الأحمر والتراب والأسمنت؛ لكن هناك من يستطيع أن ينظر لنفس المبنى ويراه جميلاً رحباً.
أو بشيء أقرب لفكر المبرمج: تخيل فريقاً موهوباً قد كتب engine خاص بلعبة مليء بالإمكانيات المتقدمة، لكنه لم يكمل بعد صناعة الـmodels الخاصة بالشخصيات والمستويات. ستبدو اللعبة رديئة لمن لا يعرف التفاصيل.
بدلاً من السخرية من هذا البناء نصف المكتمل فكر: كيف نكمله؟ كيف نريده أن يبدو في صورته النهائية؟
يقول Piaget أن المعرفة مثل بناء متعدد الطوابق؛ وكل مستوى جديد ينبني على المستويات السابقة، وأنه حتى إن كان المستوى السابق به ثغرات فكرية إلا أنه ضروري للمستوى الذي يليه، وبالتالي هو مرحلة مهمة في تطور الطفل فكرياً.
____________
أما أنا حين رأيت تلك اللغة تغير الكثير من تفكيري عن البرمجة: لقد رأيت طريقة قوية جداً للتفكير في البرنامج. ما الذي يهم إن كانت ناجحة تجارياً أم لا؟ أنا أريد مستقبلاً تكون فيه البرمجة كلها بهذا الشكل!
____________
ورأيت ذات مرة على أحد المنتديات من يقول أن العرب متأخرون في إنتاج علومهم الخاصة، وقدم مثالاً على ذلك هو أن لغة البرمجة العربية كلمات أضعف حتى من الـVisual Basic. الكلام صحيح: كلمات أضعف من الـVB (التي هي أصلاً لغة قوية جداً، قبل أو بعد الـnet.)، لكنها في نفس الوقت مشروع لم يكتمل. لن أطلب من الناس أن يقيّموا كلمات باعتبار ما يمكن أن يكون؛ بل قيموها كما ترونها، لكن في نفس الوقت سأقول أن كلمات في صورتها الحالية هي [على ما أرجو] فصل في قصة أطول.
____________
ويبدأ بعض من المصريين في مهاجمة كل طموح في بلد أفضل لهم، ويظنون أن هذه هي الواقعية. وما تزال ترى العبارات المتكررة: "انت في مصر! احنا بلد .........! مش شايف الزبالة في الشوارع؟ مش شايف البلطجية؟".
____________
هل رأيت أبداً مبنى قد قارب أن يكتمل بناؤه الأساسي، لكن لم يبدأ "تشطيبه"؟ ستجد المبنى عبارة عن صورة من الرمال والطوب الأحمر والتراب والأسمنت؛ لكن هناك من يستطيع أن ينظر لنفس المبنى ويراه جميلاً رحباً.
أو بشيء أقرب لفكر المبرمج: تخيل فريقاً موهوباً قد كتب engine خاص بلعبة مليء بالإمكانيات المتقدمة، لكنه لم يكمل بعد صناعة الـmodels الخاصة بالشخصيات والمستويات. ستبدو اللعبة رديئة لمن لا يعرف التفاصيل.
بدلاً من السخرية من هذا البناء نصف المكتمل فكر: كيف نكمله؟ كيف نريده أن يبدو في صورته النهائية؟