‏إظهار الرسائل ذات التسميات thinking. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات thinking. إظهار كافة الرسائل

الجمعة، 9 نوفمبر 2012

التاريخ والأشياء الصغيرة

أهوى علم لغات البرمجة (علم مختلف عن الـcompilers). وأفكر دائماً في لغة البرمجة "النموذجية" التي يمكن التعبير بها عما تريد بدون فجوة بين الفكرة في دماغك والكود التي تكتبها. يتفرع من هذا فكرة لغة البرمجة التعليمية التي يمكن لأي شخص أن يدخل منها عالم البرمجة، ولغة البرمجة "الديموقراطية" التي تمكّن أي شخص (صحفي، محامي) أن يكتب برنامجاً في مجال تخصصه، وهكذا.

وأقوى سلاح في هذه الرحلة هو التاريخ. وهكذا تجدني أقضي الساعات في القراءة عن لغات البرمجة القديمة منذ الستينات وما بعدها.

Algol - Icon -  CLU - Simula - Self - Forth - Logo - CleanSheet - ObjectVision

..بحثاً عن فكرة عبقرية لكن مفقودة.



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

وفي أيام معركة الجمال في الثورة، ابتكر الثوار - وحدهم - طرقاً حربية مشابهة لما كان يفعله الرومان. حائط بشري يمسك دروع طويلة ويزحف بها... Testudo formation

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

تلك المخطوطات منذ أيام الحضارة الإسلامة فيها أسلوب معين لكتابة الكتب: العنوان الطويل لكل فقرة الذي يصلح ملخصاً للفقرة. هناك كاتب أجنبي استخدم هذا الاسلوب في كتابه للذكاء الاصطناعي (الكاتب Patrick Henry Winston)، واستخدمته أحياناً في مقالات على المدونة. في الواقع الكتب الإسلامية القديمة كان بها ميزة ظريفة جداً هي أن الكاتب كان يصنع الكتاب خليطاً من الكتابة والرسم ينسابان مع بعضهما في حرية. كان الكتاب عملاً فنياً وليس مجرد وسيلة تقديم معلومات، وربما نحتاج أن تكون المزيد من الكتب بهذه الطريقة.

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

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

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

الخميس، 6 سبتمبر 2012

حاجات مطلوبة عشان تفكر

قبل أن تفكر، تحتاج أن تعرف كيف ترى، وكيف تسأل أسئلة، وكيف تصف.

كيف ترى

أنت لا ترى بعينيك فقط. أنت ترى بعقلك. هذه نقطة بالغة الأهمية. العالم من وجهة نظرك غير العالم من وجهة نظري، وهما يختلفان عن العالم من وجهة نظر القطة في الشارع؛ مع أنه - مادياً - هو نفس العالم.

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

والمفاهيم التي تعرفها هي أعين جديدة ترى بها. في رحلتي في علم لغات البرمجة تعلمت فكرة الـcontinuation. منذ ذلك الوقت وأنا أراه في كل مكان: في أشياء برمجية سابقة، في الحياة عموماً، في أفكار تكنولوجية غير برمجية. شيء شبيه بذلك حين قرأت عن الـmonads.

ونظرية Piaget في التطور المعرفي للأطفال! النظرية تتحدث عن الـconstructivism، منذ أن قرأت عنها وأنا أنظر في كل شيء فأراها..
  • لا يكفي نقل التكنولوجيا لننهض علميا؛ لابد من بناء التكنولوجيا، وإلا سنسير في حلقة لا تنتهي من "غيرنا يبتكر، نحن ننقل".
  • عند شرح كود موجودة لأحد نحن غالباً ما نشرح الكود في أحدث صورها، لكن هناك معلومات قيمة عن الكود تأتي من تاريخها (من بنائها). لماذا اتخذت قرار كذا ولم أتخذ كذا؟ لماذا هذه الفصيلة موجودة بهذه الطريقة؟ هذه النقاط تأتي من خبرة ومن تجارب في إصدارات قديمة من البرنامج، وإني لأتخيل IDE بها طريقة لتأريخ المراحل المهمة في حياة هذا البرنامج.
  • التاريخ نفسه! إن أردنا أن نخرج مما نحن فيه علينا أن نفهم أولاً كيف قد صرنا فيه! ليس فقط بجمل مختصرة على غرار "لقد صرنا متفرقين"، بل أيضاً بتفاصيل. كيف صرنا كذلك؟ متى بدأ هذا؟ وكيف استمر؟ وماذا أيضاً غير التفرق؟ وماذا كانت العوامل الداخلية؟ وماذا عن الخارجية؟ هل نستطيع رسم خط زمن لمراحل "التخلف" والأسباب الأساسية لكل مرحلة؟
  • كيف نغير القيم الموجودة في المجتمع حالياً؟ فلنفهم كيف بُنيت هذه القيم!

(ليست هذه التدوينة عن نظرية Piaget، تذكر: نحن في جزء "كيف ترى"، أتحدث عن كيف تغير الأفكار في عقلك من نظرتك للعالم. منذ عرفت النظرية وأنا أنظر لكل المجالات الأخرى نظرة بنائية).

وكيف تسأل أسئلة؟

Computers are useless. They can only give you answers.
-- Pablo Picasso

يكاد يكون علم الفلسفة مبني على فكرة "كيف تسأل أسئلة جيدة". المشكلة أن معظم الأذكياء الذين أراهم يهتمون بالأجوبة فقط. الامتحانات؟ المسابقات؟ الinterview؟ إجابة إجابة إجابة! والظريف أنه في كثير من الأحيان يكون اختيار الأسئلة سيء أصلاً...

"إنتاج أفريقيا هو (أ) 8% (ب) 9% (ج) 11% (د) 13% من إنتاج الحديد العالمي".
"What is the difference between x++ and ++x"
"لما بترجع البيت بتعلق هدومك والا بترميها" (هذا سؤال حقيقي أخذته في interview)

هي دي الأسئلة؟؟؟

كان هناك قديماً خمس مسلّمات للهندسة منذ أيام إقليدس، وكان كثير من العلماء الرياضيين يعتبرون المسلّمة الخامسة زائدة (أي يمكن إثباتها من الأربعة السابقين لها، وبالتالي لا داع لاعتبارها مسلّمة بل هي نظرية عادية). وقد حاول العلماء لمئات السنين، علماء الحضارة اليونانية ثم الإسلامية ثم الأوروبية، أن يأتوا بذلك الإثبات ولم يقدروا.

ثم جاء كارل فريدريك جاوس في 1817 وسأل نفسه: ماذا يحدث لو افترضت أن المسلّمة الخامسة ليست بالضرورة صحيحة؟ والتفكير في هذا الأمر دفع بسؤال آخر: ماذا لو اخترعت "هندسة" جديدة بالأربع مسلّمات + خامسة مختلفة عن المعتاد؟

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

أبواب جديدة من العلم، جاءت من السؤال المناسب..

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

العلم الحديث مبني على التجربة. كيف تسجل ملاحظات تلك التجربة؟

تخيل علم الرياضيات الحديث لو كنا مازلنا نستخدم الأرقام الرومانية. بسرعة: اجمع XI على XXV. مجرد تغيير طريقة وصف الأرقام غير من تفكيرنا فيها.

وكيف تصف المجتمع حين تريد تغييراً سياسياً؟ وكيف تصف مشروعك للآخرين؟ وكيف تصف المشكلة التي تريد أن تحلها؟

وكيف يكون شكل برامجنا لو تخلينا عن فكرة "البرنامج في ملفات نحررها بمحرر نصي"؟ وما البدائل لوصف المطلوب من البرنامج؟

كيف تصف الألوان لشخص أعمى؟ وكيف تصف الروائح في فيلم رسوم متحركة؟ وكيف تصف ملمس معين في صورة؟

ملمس في صورة؟ قرأت في طفولتي مقالاً عن قصر الحمراء بغرناطة، يقول أن الزخارف متنوعة ومصنوعة بطريقة كأن العين "تتحسسها"..انظر للصورة واحكم بنفسك:

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

كيف تصف، هذا مهم.