الثلاثاء، 21 أكتوبر 2025

السنن الكونية (2): كل شيء حسابات

( هذا المقال يعتبر "الرأي المقابل" أو "الوجه الآخر للعملة" لمقال سابق هو "النهضة بين التصوير والمنطق".)

 يسير الكون بعمليات حسابية.

  • المعطيات او "البيانات" هي حالة الكون؛ مكان وسرعة وخصائص كل الكترون وكل فوتون وكل جزيء.
  • الإجابة المطلوب حسابها هي حالة الكون في اللحظة التالية.
  • والقانون هو قوانين الطبيعة مثل الجاذبية، قوانين ماكسويل للكهرومغناطيسية، الخ، وكلها في صورة معادلات رياضية. 

 ونحن حين نفكّر نحاول أن نسبق الكون في حساباته على أمل أن نتحكم أو نؤثر في النتيجة النهائية. لو حاولت ان ترمي الكرة نحو السلّة، فإنك تحاول ان تحسب "ماذا ستفعل قوانين الطبيعة بالكرة؟" قبل ان يحدث هذا فعلا.. وآلة الحساب هي تدريب الرمي الذي تدربته قبل ذلك -- هذا التدريب قد ترك ارقاما في جهازك العصبي وهذه الارقام تقوم بعمل simulation للرمية قبل ان تحدث، 

وبهذا الsimulation يقوم جهازك العصبي بعمل حسابات عكسية ايضاً: تبدأ بالنتيجة المطلوبة ،وهي أن تسقط الكرة في السلة، وتنتهي بالرمية الصحيحة التي تؤدي لهذه النتيجة، أي أنك تستطيع تفعيل قوانين الطبيعة بالعكس في حساباتك!

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

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

 وكل شيء يمكن تسميته تفكيراً يمكن في رأيي تسميته حسابات. وسوف أظهر لك هذا بأمثلة كثيرة:

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

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

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

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

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

(ربما لهذا أنا شخص قليل الكاريزما؛ لأن 'المعادلات' التي احسب بها مختلفة عن معظم الناس، وبالتالي حساباتي خاطئة فأقول شيئا احسبه سيسرّهم لكن يضايقهم)

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

وكثير من التفكير لا يبدو كحسابات لأننا نقوم به تلقائيا أو فطرياً، فأنت حين تتحدث مع خالك فإنك لا تمسك بورقة وقلم وتحسب بل أنك..تتحدث! هنا يأتي دور علم الـcomputer science، وهو في رأيي علم كل خطوة له يحول التفكير الفطري إلى حسابات رياضية.
 
  حساب مرتبات الموظفين » لعب الشطرنج »» الرسم »» التعرف على الوجوه »» حركات الروبوت »» التخاطب البشري
 
في كل خطوة من هؤلاء تحول شيء كنا نظنه "تفكيراً" فإذا هو..حسابات رياضية
 
أما البرمجة فجزء كبير منها هو فكرة "الحسابات العكسية" أو "التفكير بالعكس"، تبدأ بتخيل البرنامج النهائي كيف تريده أن يعمل، وتنتهي بالكود التي تجعله يعمل كما تخيلت، وقوانين الطبيعة هنا هي قواعد لغة البرمجة التي تستخدمها...لكن تنبٌه! الكمبيوتر ساينس يحول كل أنواع التفكير إلى حسابات، وبالتالي قواعد لغة البرمجة هذه تصلح لأن تحاكي 'قوانين الطبيعة' أو 'المعادلات' في أي مجال آخر
 
وأي مجال لم تصل له الكمبيوتر ساينس (أي أنه مازال "حسابات تلقائية أو فطرية") أرى أنه يمكن ان يتحول إلى حسابات حقيقية في وقت ما، وأن الإنسانية ستستفيد حين يحدث هذا، ويتحول العلم من شيء غامض نفعله تلقائيا بدون أن نفهمه تماماً إلى معادلات يمكن ان نطبق عليها كل ما نعرفه عن الحوسبة، وتصير الكمبيوتر ساينس هي "علم التفكير" او "علم التفكير كحسابات" الذي يربط بين كل العلوم الأخرى 
 
أو بمعنىً آخر..علّموا الأطفال البرمجة 

الاثنين، 15 سبتمبر 2025

السنن الكونية (1): عن التحدي الإنساني الصعب والهروب للحل السهل

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

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

 1- الإنسان أو المجموعة لديهم هدف كبير، أو هم في خطر ما لابد أن يتصدوا له

2- لكن الأمر صعب جداً، سوف تحتاج أن تبذل مجهودا كبيرا، مع احتمالات نجاح ضعيفة جدا

3- في هذه اللحظة يأتي شيطان (حقيقي أو مجازي) ويعرض عليك حلا سهلاً ومضموناً. هذا الحل ليس بحقيقيّ، إنه انهزام مزيّن بمكياج وليس انتصاراً، لكنه سهل ومضمون

4- ماذا يفعل الإنسان هنا؟ يمكنه أن يقول "سوف استمر في الحل الصعب، حتى لو كان احتمال نجاحه ضئيلا"، لكن تبدو له هذه الفكرة، نفسياً، غبية. هذا هو دور الحل السهل: ان ينفّرك من الحل الحقيقي

5- الكفاح البشري الفردي، وكفاح الأمم، ملخصه هو "ماذا سيفعل الإنسان إزاء هذا الاختيار؟"

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

- هناك دول تعيش على الديون والمنح والمعونات لأن قادتها ليسوا مؤمنين بقدرتهم على بناء اقتصاد حقيقي ويسمونه أمراً مستحيلاً. (احيانا ينفون اللوم عن أنفسهم ويقولون أن الشعب هو الذي يفتقد هذه القدرة، لكننا جميعاً نعرف الحقيقة)

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

- حين يخطيء الإنسان في حق شخص، هل سيعتذر ويتحمل الغصّة التي تأتي مع الاعتراف بالخطأ، أم سيتظاهر للأبد أنه لم يخطيء؟

 - هناك جماعة من الناس مُنعوا أن يعيشوا في دولة أو حتى دُويلة، بل مجبرون أن يعيشوا في شظية من دولة، لكنهم يخوضون حرباً عسكرية ضد عدو يخيف كل الدول التي تحيط به، التي هي اختارت الحل السهل

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

- حين يتصل بك صديقك ويسألك لماذا تأخرت، هل ستقول "أنا في السيارة عند ناصية الشارع الذي سنتقابل فيه" أم ستقول "أنا أمام باب المنزل وسأركب السيارة الآن"؟

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

- هل نصنّع سيارة/الكترونيات/ai محلياً، أم نأتي بمنتج أجنبي، نقوم بتجميعه ووضعه في كرتونة محلية، ونقدمه على أنه من إنتاجنا؟

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

 - ماذا افعل اللحظة القادمة؟ هل اقوم بذلك العمل المقرف المتأخر عليّ، أم أفتح السوشال ميديا؟

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

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

الأحد، 24 أغسطس 2025

نتفلسف عشان احنا فاضيين وكدة

توجد فزورة شهيرة كالتالي:

What happens when the unstoppable force meets the immovable object?

ماذا يحدث حين تتقابل القوة التي لا توقَف مع الجسم الذي لا يُحرَّك؟

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

فلنطرح إجابات اخرى ممكنة (بعض هذه الإجابات حصلت عليها من الحوار مع الAI)

1- سوف يمرّ احدهما خلال الآخر، وبالتالي يمرّ الأمر بسلام بدون أن تتوقف القوة او يتحرك الجسم

2- من المستحيل أن يوجد عالم يجمع بين هذين الشيئين لأن وجودهما في نفس العالم يؤدي لتناقض منطقي

3- من الممكن ان يجتمعا في نفس العالم، لكن من المستحيل ان يلتقيا لأن لقائهما سيؤدي لتناقض

 

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

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

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

 

s = initialState()
while(true) {
    s = nextState(s)
}

لكن من قال ان الكون لديه حالة تالية واحدة ينتقل إليها؟ ألا تقول نظرية الكوانتم انه هناك حالات عديدة ممكنة؟ في تلك الحالة (؟!) تكون الكود كالآتي

s = initialState()
while(true) {
    ss = possibleNextStates(s)
    s = selectOneFrom(ss)
}

  كيف يتصرف هذا البرنامج مع الفزورة التي نناقشها؟ فلنفترض أن أحد الاشقياء قام بتوجيه القوة التي لا توقف تجاه الجسم الذي لا يُحرَك..واخذا يتقاربان حتى أوشكا أن يتدافعا..المشكلة ان تدافعهما سيؤدي لحالة مستحيلة منطقيا، وبالتالي لن يمكن للكون ان يدخل في هذه الحالة. أي ان المتغير ss سيكون عبارة عن مصفوفة فارغة! لقد وصل الكون إلى وضع لا يمكن الانتقال منه إلى حالة (state) تالية! ماذا سيحدث بعدها؟ يتوقف هذا على طبيعة الerror handling في البرنامج

- ربما يظل الكون في نفس الحالة للأبد: الـشيئان أوشكا أن يتصادما، لكن الزمن توقف وكل شيء توقف فلن يتصادما أبداً، لقد هربنا من التناقض المنطقي لكن انتهى مرور الزمن.

- او ربما هناك شيء مثل transaction unroll، بمعنى أن البرنامج/الكون لديه سجل من الحالات السابقة (مثلا آخر ن من الحالات السابقة)، ويمكنه أن يتراجع إلى آخر state سليمة لا تؤدي بالضرورة إلى مسار التناقض، ثم يختار مساراً مختلفا عما حدث المرة السابقة.

- او ربما يحدث شيء مثل unhandled exception leading to process restart، أن يصل الكون إلى وضع يؤدي لاستحالة منطقية، فينتهي كل شيء ويبدأ الكون منذ البداية. ستكون خسارة اننا سنفقد كل ما حدث من قبل لكن على الأقل لن يتوقف الزمن مطلقا (هذا هو الفرق بين hanging و crashing في الحوسبة)

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

 الم أقل لكم أننا سنتفلسف؟ 

 إعلان: لغة كلمات لديها الآن قناة على يوتيوب تجدوها هنا: https://youtube.com/@KalimatLang 

الثلاثاء، 25 مارس 2025

ما الجديد في كلمات، إصدارة فبراير 2025؟

 رسومات بطريقة Double buffering

 كانت الاطياف sprites هي الوسيلة الوحيدة للحركة والالعاب في كلمات، لكن الآن اضفنا وسيلة اخرى شبيهة بمكتبات الالعاب المعروفة عن طريق روتينات جهز.الرسم،() ابدأ.الرسم()،  انه.الرسم() ، ويستخدمون كالآتي:

جهز.الرسم()
كرر :
    ت = ابدأ.الرسم()
    -- ارسم ما تريد هنا على شاشة خاوية
    -- ت هو الوقت من الكادر السابق (time since past frame/ delta_t)

    انه.الرسم()
تابع 

هناك مثال لهذا الاسلوب مرفق مع كلمات هو cat chasing mouse


 

ألطف على الCPU

  جاءني قديما شكاوى من المستخدمين ان تنفيذ برامج كلمات يرفع جدا من صوت مروحة الCPU في اجهزتهم، وقد احتجت لتفتيش الكود الخاصة بالvirtual machine سطرا سطرا حتى عرفت سبب المشكلة (وقمت بحله).

 أمر ارسم.نص

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

ارسم.نص النص في (س، ص)، اللون، الحجم، الخط

مثلاً

ارسم.نص "مرحبا" في (100، 100)، 7، 12،  "Tahoma"

 

كالعادة اللون والحجم والخط اختياريون 

 


(غالبا) اخطاء جديدة
 
لم انشر اصدارات لهذا المشروع منذ 2013 (عشر سنوات متوقفة عن النشر ولاتزال لا مثيل لها!)، لذلك اتوقع bugs يمينا ويساراً. سوف يسعدني قراءة تقارير بالأخطاء من المستخدمين لو كان هناك من لا يزال يقرأ هذه المدونة.
 
هل هذا كل شيء؟ أليس هذا بقليل؟

انا فقط انفض التراب عن هذا المشروع، لم أبدأ التطوير الحقيقي بعد. 
 
ولكي أكون صريحا معكم، المشاكل التي جعلتني اوقف مشاريعي لم تحل بعد، وقد تجدوني بعد اسبوع مثلا عدت للانغلاق من جديد.
 
لو فعلت هذا سيكون بالرغم مني. انا احب النهضة :(
 
هذا هو موقع اللغة: https://kalimat-lang.com