الخميس، 8 نوفمبر 2012

A notation for a sketch-based programming language

This is my design for a language called "SketchCode". The language tries to enable sketch-based programming, both on a traditional paper pad or on a tablet-like device, and strives to maintain simplicity and clarity of the sketches by reusing whatever notations people already use when sketching and by introducing as few new notations as possible.

Instead of making the code itself graphical, the system keeps the code mostly text based while using graphical notation for data structures. Blocks of simple shapes indicate objects, arrows indicate object references, tables indicate records or arrays.

As you see, this simple scheme already allows us to represent many kinds of data. In SketchCode our program should be mostly graphs, state machines, ...etc, I like the idea that a program's data stands out more than its code.  As Fred Brooks said: Show me your flowchart and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won't usually need your flowchart; it'll be obvious

The graphical nature of the data allows us to program by pattern matching as seen in a lot of functional languages. An important set of new notations would be the language of pattern matching: how to indicate matching a variable? How to match a part of an array or structure?



The first example shows how to calculate the sum the elements in a (sketched) linked list, the second shows how to extract data from a record, and the third shows the notation for 'if' statements.

Tentatively, I chose to underline an identifier in a pattern to indicate being a variable, and the "piece of a table" to indicate partial record matching. It would be interesting to see how to indicate other notations like a part of a graph or a slice of an array.

I have also borrowed some notations from math, and an implemented system could add traditional notations for things like roots, fractions, summation,...etc

A lot can be done with just those basic components: we could have unit tests with sketches of test input, or a "console" where we sketch function application to evaluate it, and more. From there, there is so much that could be added.

Of course, such a system needs to be implemented in order to find out whether this design is really sufficient to express interesting programs, and whether such expressions are actually natural to draw/understand, and how to e.g naturally modify an existing program.

السبت، 3 نوفمبر 2012

عطش للأفكار الأصيلة

حين أقول "فكرة أصيلة" فقولي محاولة لترجمة original idea، والمقصود هو فكرة ليست مجرد تكرار للأفكار المعروفة. وأنا أعيش في حالة عطش دائم للأفكار الأصيلة، ويمكن تلخيص حياتي في أنها رحلة بحث عن الجديد، والنادر، والمبتكر. ولذلك أتحدث عن البرمجة، والرسم، والتأليف. كل من هذه هو ببساطة رحلة بحث عن فكرة جديدة [وتنفيذها].

والمشكلة هي أنني شخص يحب الأفكار الأصيلة يعيش في عالم يحب المكرر والمألوف...

- الشباب الجامعي الذي "يمزح" عن طريق تكرار القفشات من الأفلام الكوميدية.
 - السياسيون الذين يكررون الشعارات كل يوم حتى صارت تصريحاتهم هي clip show من لصق الشعارات ببعضها (والجمهور يحب هذا وينتخبهم).
 - حتى البرمجة؛ يكاد يصير تلخيصها الآن في تطبيقات "خزن البيانات ثم اعرضها"، والـUML ، والـ design patterns.

هل تريد أكبر دليل على كلامي؟ انظر إلى لغة مثل الـ Prolog، إنها "فكرة أصيلة" بمعنى الكلمة، وتغير من تفكيرك في البرمجة تماماً، لكن الجميع يسخر منها لأنها أكاديمية، أو لأنه لم يفهم الcut، أو لأنها لن تأتي له بوظيفة. حتى الذين يحبونها، يحبونها بطريقة "لغة كويسة" وليس بطريقة "أريد أن أعرف المزيد!!".

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

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

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

ولن يكون للمدونة قراء كثيرون جداً :)

الأربعاء، 31 أكتوبر 2012

أفكار سياسية لحزب مصر القوية

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

قبل الانتخابات

من المشاكل التي تواجه الحزب - وهي من أكبر المشاكل في رأيي - مشكلة الpositioning، وهو مصطلح تسويقي بمعنى "الفكرة المرتبطة بك أو بمنتجك، بحيث يمكن أن يقال لو كنت تريد _______ فلدينا المطلوب".

الـposition الخاص بحزب الحرية والعدالة مثلاً هو "دولة اسلامية معتدلة". حزب الدستور يحاول الحصول على position في عقول الناس هو "حزب يبحث عن الديموقراطية والحريات". حزب الأمة المصرية (الذي يؤسسه حازم صلاح أبو إسماعيل) ربما يكون الـposition الذي يسعى له هو "دولة اسلامية 'حازمة' بلا تنازلات"، وهكذا. فما هو الـposition الخاص بمصر القوية؟ بدون الإجابة على هذا السؤال أخشى أن يأتي الكثير من الناس فيقولوا "ده حزب كويس" ويسكتوا، بدون حماسة حقيقية أو تقدير للأهمية الحقيقية للدور الذي يقوم به الحزب.

أنا لا أقول أن الحزب بلا موقع محدد، أنا فقط أقول أن هذا الموقع قد يشعر به مؤسسو الحزب لكن لا يوجد تعبير قوي عنه بين الناس..

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

(أعتقد أن لديّ قصة مناسبة، لكني لا أريد الحديث عنها بعد لأني لم أنته بعد من مراجعة جوانبها المختلفة)

عموماً كما قلت: لابد من تحديد الـposition، وإيصال هذا الـposition لكل أعضاء الحزب وكل من يتعامل معه، ثم انعكاس هذه الفكرة في اللقاءات الصحفية والحملات الدعائية...الخ. لابد أن يوجد فكرة تجعل الناس يقولون "مصر القوية" حين يأتي ذكرها.

أثناء الانتخابات

سوف يكون هناك بعض العوائق لانتخاب الحزب: البعض سيقول أنه بلا خبرة سياسية، البعض سيقول أنه ليس إسلامياً حقاً، والبعض سيقول أنه ليس متجهاً لبناء الدولة الحديثة حقاً، والبعض سيقول "كلام كويس بس احنا عاوزين أفعال".

هناك شيء ربما يساعد في هذا الموضوع (وربما الحزب يقوم به بالفعل وأنا لا أعلم): حزمة من الأفعال.

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

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

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

لكن لماذا نستخدم هذه النقطة فقط في إقرار عدد من القوانين؟ لماذا لا نستخدمها في تغيير شكل الحوار السياسي في مصر؟ :)

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

هناك طريقة رابعة، والذي يقدّم هذه الطريقة إلى سائر أطراف الحوار السياسي المصري سيكون في أعيني بطلاً قومياً. هذه الطريقة هي القرار المبني على البيانات.

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

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

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

وهذا قد يكون ما يأتي بمصر قوية حقاً.

الجمعة، 12 أكتوبر 2012

طيب ليه المجتمع ما بقاش فجأة مليان بطلبة العلم؟

نحن الآن في عصر الوفرة المعلوماتية. من أراد أن يتعلم سيجد مئات الكتب والدروس والفيديوهات والأوراق البحثية والبرامج والـsource code. لكن ليس الكثير يستغلون هذه الموارد. لماذا؟

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

هل هو الوقت والمال؟

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

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

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

القصور الذاتي

Every object in a state of uniform motion tends to remain in that state of motion unless an external force is applied to it.
Newton's first law of motion

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

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

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

وكثير من المؤسسات الفكرية النهضوية (وليس كلها) تبحث عن التوعية أكثر منها العلم. وحتى من يبحث عن العلم فيها نجده يتحدث عن العلم أكثر منها في العلم. أي أن رسالته هي "ندوة عن أهمية العلم" أكثر منها "ندوة عن الـcontext free grammars".

ولابد من البحث عن الأسباب.

"ولكن كيف سيؤثر في حياتي؟"

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

فلنفترض أنك قد قرأت وقرأت وقرأت، وتعلمت البرمجة، أو قرأت في الفيزياء، أو في التاريخ، أو في علم الفلك، أو في الاقتصاد، فماذا بعد؟

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

"ولكن العلم ممل"

الحرارة النوعية هي كمية الحرارة اللازمة لرفع درجه حرارة 1 كيلوجرام من المادة بمقدار درجه واحدة. ويرمز لها بالرمز (c) ووحداتها في النظام الدولي هي (جول/كيلوجرام/كلفن).
من ويكيبديا

لماذا أراك تحب الكتب هكذا؟ أنا لا أحب الكتب! هل رأيت كتب المدرسة؟
من حديث مع أقاربي


مشكلتنا لها نواح متعددة: بدايةً معظمنا، في أول خبرة له بالعلم، يرى العلم في الكتب المدرسية، والكتب المدرسية المصرية (وربما هذه مشكلة عالمية) تبدو بلا اتجاه ولا هدف، بل هي مجموعة من الحقائق المرصوصة بعضها بجوار بعض.

المشكلة الثانية أن العلم فعلاً - ولو خارج الكتب المدرسية - يقدم بطريقة جافة مجردة. ومعظم الذين يسعون لحل المشكلة يركزون على جزء "جافة" بأن يضيفوا الرسومات والألوان والحركة ولا يقتربون من جزء "مجردة". ما معنى الحرارة النوعية؟ لا أقصد المعنى المذكور في التعريف، ولكن المعنى مثلما نقول "حياتي لها معنى"...ما السبب الذي جعلنا نعرّف الحرارة النوعية ونضعها في الكتب؟ ما دور هذه المعادلة في سير الطبيعة وفي الاستفادة من العلم؟ ما هو الـraison d'etre لهذا القانون؟

وكيف "أشعر" بهذا القانون وليس فقط "اعرفه"؟ هذه نقطة لا ينتبه لها البعض: أن القوانين لا توجد في الورق ولكنها تتمثل في الطبيعة المحسوسة. لماذا نسلق اللحم في الماء لكن نقليه في الزيت؟ ما علاقة هذا بالحرارة النوعية؟ حتى القواعد التي تبدو مجردة مثل قواعد النحو أو البلاغة، لماذا هي كما نراها وليس بصورة أخرى؟ مثلاً لماذا نضع بعض الطلبات في صورة سؤال مثل "could you pass the salt؟"، وما الأثر النفسي لهذه الصياغة على السامع، وما سبب ذلك الأثر؟

"ولكن العلم صعب"

وحتى من يبحث عن العلم فيها نجده يتحدث عن العلم أكثر منها في العلم. أي أن رسالته هي "ندوة عن أهمية العلم" أكثر منها "ندوة عن الـcontext free grammars".
 — أنا، من جزء سابق في هذا المقال

هؤلاء يقضون الساعات على الفيسبوك، أو الفيديو جيمز، أو في الخروج، أو في الكوفي شوبس.
  — أنا برضه

 الحديث عن العلم أسهل من الدخول في التفاصيل العلمية. مشاهدة المسلسل أسهل من تعلم البرمجة. إن كنا نبحث عن الأسباب فهذا سبب.

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

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

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

 ولن تكون النهضة العلمية بتوزيع الأجهزة اللوحية في المدارس (وإن كنا نرحب بكل خطوة نافعة)، بل من فهم سلوك الناس ودوافعهم.

السبت، 6 أكتوبر 2012

احذر: قد تكون لا تريد النهضة

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

ماذا عن النهضة؟ إن لم يحدث الشيء فقد يكون السبب هو (1) عوامل خارجية تعوق حدوثه. أو (2) صاحب القرار [المجتمع في حالة النهضة] لا يريد للشيء أن يحدث.

وكلا السببين مشروع: أحياناً يكون عوامل خارجية وأحياناً غياب للإرادة، لكن في الظروف الحالية غياب الإرادة أمر أريد الحديث عنه.

منذ مائة عام ربما قلنا أن العوامل الخارجية عائق يصعب التغلب عليه: كيف ستعلم كل هؤلاء الناس؟ كيف ستبني البنية التحتية للدولة؟ كيف ستغير المجتمع؟ ما الطريق الصحيح؟

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

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

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

فإن أراد فتح شركة فهناك عشرات الطرق للحصول على تمويل في الوطن العربي.

فإن أراد تطوير التعليم فهناك تجارب ناجحة يمكن دراستها (ذكرت منها الكثير على هذه المدونة).

هذا إن أراد.

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

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

الجمعة، 28 سبتمبر 2012

المستقبل للحوسبة

في كاليفورنيا، تم السماح قانونياً بتسيير السيارة التي تقود نفسها. هل هي سيارة حقاً؟ هي مليئة بأجهزة الرادار، الكاميرات، GPS، والقائد الذي يتعامل مع كل هذه الإشارات، يفسر الصور ويخطط للرحلة ويرسل الأوامر للسيارة، هو في النهاية برامج. هو algorithms. هو حوسبة. ما نسميه سيارة يسميه آخرون كمبيوتر على عجلات. والتحدي الأكبر في صنع السيارة لم يكن الجزء الميكانيكي، بل الـAI, Computer Vision, ...الخ

ماذا عن السيارات "المملة" التي يقودها إنسان؟ مليئة هي الأخرى بالحوسبيات. يقول هذا المقال أن بعض السيارات المرسيدس الحديثة بها حوالي 100 معالج دقيق، ويتحدث بالتفصيل في هذا الموضوع.

فلنترك العملي ونذهب للنظري: نظرية الألوان الأربعة Four color theorem لم يكن من السهل إثباتها بالورقة والقلم مثل النظريات الرياضية التقليدية، بل تم الاستعانة بالكمبيوتر في إثباتها (اختزال كل الحالات إلى بضعة آلاف من الحالات الخاصة، ثم التأكد بالكمبيوتر أن كل من هذه الحالات الخاصة يمكن تلوينها بأربعة ألوان). هنا لم يكن الكمبيوتر يقوم بدور "IT"، بل بدور بحثي علمي صرف.

ماذا عن الروبوتات؟ هذا الروبوت الذي صممته تويوتا، هل تظنه مجرد أجزاء ميكانيكية مترابطة، تم تجميعها بمفك؟ لو كنت مبرمجياً لأتى على بالك كمية البرمجة المطلوبة ليعمل مثل هذا الجهاز مثلما تراه يعمل.

وسوف يكون للروبوتات دور كبير عسكري. هل لعبت ألعاباً استراتيجية مثل Red Alert أو Age of empires؟ الآن تخيل لو كان الذكاء الاصطناعي الخاص بهذه الألعاب قد ارتفع مستواه كثيراً، وصار يتحكم في "وحدات" حقيقية. جيش من بضع عشرات من الآليين يفكرون كأنهم عقل واحد ينفذون خطة مشتركة. من سيبرمج هذا؟

لاحظ أن مصطلح الحوسبية ليس معناه "اخبرني نتيجة 5+12" فحسب. بل إن كل ما يلي جزء من الحوسبة:
  • برنامج يأخذ صورة ويضع دائرة حول كل الوجوه البشرية فيها.
  • برنامج يخطط أفضل مسار للسيارة للوصول إلى شارع معين.
  • برنامج يأخذ وصفاً للوحداث العسكرية المتاحة والبيئة المحيطة ويقدم خطة حربية.
  • برنامج يأخذ بيانات المبيعات للعشر سنين الماضية ويقدم نصائح لخطط تسويقية أفضل.
  • برنامج يأخذ خريطة للموائد في قاعة الاحتفالات، وقائمة للمدعوين والعلاقات بينهم [صداقة، أسرية] ويقدم خطة مثلى لتوزيع المدعوين على الموائد.

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

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

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

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

يا مدارس يا مدارس، لزمتك ايه؟

 يا مدارس يا مدارس، قولي لي إيه لزمتك؟
ليه أروحك كل يوم، واستحملك؟
عملت إيه بالهرولة، والقسمة المطولة،
والجغرافيا والـmental arithmetic؟

لابد لنا كمجتمع أن نناقش الهدف من هذه المؤسسات التي نعتمد عليها -- المدارس والجامعات، قبل أن نفكر في تطويرها أو تقييمها.

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

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

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

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

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

لو فهمت النحو جيداً، قد يفيدك في دخول مجال اللغويات الحوسبية في المستقبل وعمل برنامج للترجمة الآلية.

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

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

هذا من أهم ما تقدمه المدارس والجامعات على الإطلاق. على الإطلاق!

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

اسمعك تقول أنك لم تر في حياتك أحداً تعلم هذه الأشياء. أرد فأقول لك: أليس معنى ذلك أن مقالي هذا مهم للغاية؟ :)

مثال آخر: لغة Prolog في حاسبات..
- سوف أتعلم منها أهمية كتابة برنامج يعبر عن الهدف الذي أريد تحقيقه، وليس وسيلة تنفيذ ذلك الهدف.
- سوف أتعلم منها أن البرمجة لها صور كثيرة غير الصورة المألوفة؛ وربما يدفعني هذا للتفكير في صور جديدة.
- قد أتعلم منها أنه يمكن فصل البرنامج عن وسيلة تنفيذه (أي أن نفس البرنامج يمكن تنفيذه بطرق متعددة).

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

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

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

أو لغة Erlang، وهي تجمع بين نموذج Actor model، نموذج نظري حوسبي، مع أفكار عن الـfault tolerance، وتم عمل أول إصدارة بها بالبرولوج (!)، لتكون أحد اللغات المفيدة التي تستخدمها شركات مثل Ericcson، Facebook، Amazon...شركات كبيرة رابحة.

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

وقتها لا يكفي أن تعرف "اقل ما يمكن لدخول سوق العمل"، بل لابد من أن تدخل في النظري والعملي، القديم والجديد، المعروف والمغمور. لابد أن تتعلم جيداً.

الثلاثاء، 11 سبتمبر 2012

ابتكار وتطوير لا إبداء رأي

حين تدخل في حوار مع الناس: هل تتحدث بنية الابتكار والتطوير أم تتحدث بنيّة إبداء الرأي؟

مجتمع لا يفعل شيئاً

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

لذلك فإنه بالنسبة لهم كل كلمة تقال هي "رأي".

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

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

- ولو كنت تفكر بنية إبداء الرأي، فأنت تفكر هل الشيء الحالي، في صورته الحالية، جيد أم سيء بدون التفكير في الصور الأخرى التي يمكن أن يكون عليها.

وكيف سنتقدم للأمام هكذا؟

هب أنني ذكرت مشكلة ما في تعريب العلوم. مشكلة لأول وهلة تبدو صعبة.

- لو كنت من مدرسة "إبداء الرأي" فسيكون ردك أن كيف أن هذه المشكلة ليست عائقاً حقيقياً، وسوف تتخذ موقفاً دفاعيا.

- لو كنت من مدرسة "الابتكار والتطوير" فستكون سعيداً لأن هذه النقطة قد أثيرت، وتبدأ في أن تفكر: كيف يمكن حلها؟


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

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

حوار سطحي

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

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

والحوار السياسي المصري، إلا بعض الاستثناءات، دائماً في هذه الصورة:
1- اختر شخصية أو فئة من الناس معروفة سياسياً.
2- هاجمها، أو دافع عنها، أو هاجم من يهاجمونها.
فإلى متى؟

وكم من زوج أخذ يسرد عيوب زوجته (أو العكس)، بدلاً من التفكير في أسباب المشاكل بينهما وحلها؟

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

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

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

الخميس، 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. مجرد تغيير طريقة وصف الأرقام غير من تفكيرنا فيها.

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

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

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

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

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

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

الخميس، 23 أغسطس 2012

عن حاسبات ونقابتها نتحدث

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

ماذا عن إنشاء نقابة خاصة بخريجي حاسبات ومعلومات؟

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

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

وماذا عن لقب "مهندس برمجيات"؟

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

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

أنا مقتنع بالأربع سنوات، لكني مستعد للسماع للرأي الآخر بشرط أن يكون رأياً تعليمياً وليس برأي سياسي/اجتماعي متنكر في صورة خوف على المستوى العلمي، وحتى الآن لم أر رأياً كهذا.

نقطة أخرى هامة، أن Computer science هي أمر أكبر من هندسة أصلاً!

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

لماذا نبحث عن الحل السهل ونأخذ لقباً من مجال يشبه مجالنا في بعض جوانبه؟ ألا ينبغي أن نصنع قصص نجاحنا ولقبنا بأنفسنا؟

لماذا لا نبهر المجتمع بالمشاريع والشركات والأبحاث وقصص النجاح حتى يدرك إدراكاً حقيقياً من نكون وماذا نفعل؟

لماذا نتمسك بألقاب من الماضي بينما يمكن أن نكون المستقبل؟

لماذا نحاول إرضاء مجتمع لا يفهمنا بدلاً من أن نغيره؟

لأن لقب المهندس أسهل؟ وهل نختار الحل السهل أم الحل الصحيح؟

وماذا عن منع مزاولة المهنة لغير خريجي حاسبات؟

(إضافة: هذا هو المصدر للمادة المقدمة الخاصة بمزاولة المهنة. صفحة 12، مادة 40).

إن أردت إبطاء معدل النهضة في المجتمع، افعل ذلك.

هل تعلم أن العالم الآن يسير نحو نشر البرمجة للجميع، خريجي علوم حاسب أو لا؟

هل تعلم أنه قد ظهر في الولايات المتحدة كادر جديد اسمه الصحفي/المبرمج، وأن كليات صحفية مثل كلية الصحافة بجامعة ميزوري، أو جامعة كاليفورنيا في بركلي، صاروا يضيفون مكونات برمجية إلى الكورسات؟

هل تعلم أن جامعة ستانفورد بها مركز أبحاث للحوسبة القانونية، لدراسة تأثير التكنولوجياً على النظام القانوني للدولة؟

هل تعلم أنه هناك اطفال في سن العاشرة قد طوروا برامج iPhone؟ وفي سن الثانية عشر أيضاً؟ هل تعلم أنه هناك مصري في الخامسة عشرة من ضمن هؤلاء، وأنه ليس وحده، فهناك مبرمجون كثيرون في سن المراهقة في الوطن العربي، يعرفون PHP, Visual Basic,...الخ؟

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

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

هل نغلق الأبواب بينما غيرنا يفتحها؟

خاتمة
 
هناك تقسيم مزيف للمجتمع أن الناس محصورون بين "حاسباتجي يوافق على قانون النقابة" و "حاقد يرفض القانون". هذا المقال أحد وسائل نفي ذلك: أنا حاسبتاجي وأحب حاسبات حتى النخاع، لكن أرفض القانون الحالي الظالم.

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