ما الحكمة من أن False أكبر من True ؟

بسم الله الرحمن الرحيم

جربت المقارنة بين قيمة True و قيمة False في لغة VB.NET وكانت النتيجة أن False أكبر من True، على عكس توقعاتي.

ما الحكمة من هذه النتيجة، لماذا False أكبر من True وليس العكس ؟

Dim x As Boolean = False
Dim y As Boolean = True
Dim z As Boolean = x > y

 Console.WriteLine(z)

مع العلم أني جربت المقارنة في Java ولم يقبل أن أقارن بين قيمتين من النوع Boolean


ما الحكمة من سؤال كهذا؟

يعني عمليا نحن لا نقارن أيهما أكبر عندما تكون القيم منطقية، بل نقارن عندما تكون القيم رقمية.

أعتقد ان الأمر مشابه لسؤال أيهما أكبر اللون الاصفر أم اللون الأخضر.

الحكمة أنه عند المقارنة ظهرت لدي نتيجة وأردت أن أعرف سببها

إذا لم يكن هناك تفسير لم يكن المفسر ليعطني قيمة عند المقارنة

تشبيهك خاطئ. أنا أتكلم من وجهة نظر برمجية وليس على الحياة الواقعية.

وفعلا True أكبر منFalse لأنها تحمل القيمة 1 بينما False تحمل القيمة 0 وهذا ما كنت أتوقعه لكن النتيجة ظهرت على عكس ما توقعته وهذا ما ذكرته في بداية الموضوع

وكانت النتيجة أن False أكبر من True، على عكس توقعاتي.

لذلك طرحت السؤال لأعرف السبب

تشبيهك خاطئ. أنا أتكلم من وجهة نظر برمجية وليس على الحياة الواقعية.

محترفو البرمجمة ينظرون إليها على أنها الواقع، ,أعطيك مثال: نحن نعلم كيف تم الوصول إلى طريقة البرمجة الغرضية التوجه، الأمر بدأ بتحويل الواقع إلى أسطر وطريقة في البرمجة ، والجميع يفكر في الأشياء مثل موبايل كومبيوتر تلفزيون حذاء جميعها أغراض لها صفات وتؤدي أعمال، وهو ما أدى إلى وصولنا اليوم إلى البرمجة غرضية التوجه التي يتم تمثيلها بكلاسات لها صفات fields أو variables وتؤدي أعمال methods.

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

أنت تطلب جواب السؤال التالي:

أيهما أكبر (الكرة الأرضية مفلطحة) أم (الرصاصة تلف الكوع)

:-)

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

أيهما أكبر (عبارة صحيحة ) أم (عبارة خاطئة) وبالتالي نتج

أيهما أكبر صح أم خطأ

منطقيا لايوجد منطق في هذه المقارنة.

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

إذا لم يكن هناك تفسير لم يكن المفسر ليعطني قيمة عند المقارنة

جملة ليست دقيقة.

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

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

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

الحكمة هو تعلم أسلوب البرمجة والتفكير البرمجي، وإلا سنشاهد سؤال معكوس ما الحكمة من أن True أكبر من False في لغة أخرى .