يسمي المبرمجون الخطأ "bug" (حشرة)، ويسمون تصحيحه "debug". وخلف هاتين الكلمتين قصة محبوبة جدًا: في عام 1947 خرجت عثة حقيقية من داخل حاسوب ضخم في هارفارد. والأكثر من ذلك أن تلك العثة ما زالت موجودة في متحف، ملصقة في دفتر.
القصة صحيحة. لكن فيها تصحيحين صغيرين لا يُذكران كثيرًا على وسائل التواصل. أحدهما يتعلق بمن وجد العثة، والآخر بعمر كلمة "bug". ويمكننا حسمهما بالرجوع إلى المصدر الأولي، أي سجل المتحف الذي توجد فيه العثة اليوم.
العثة داخل المرحّل
الآلة التي وقع فيها الحدث هي Harvard Mark II. وهي آلة حاسبة ضخمة تعمل بمرحّلات كهروميكانيكية بدل الدارات الإلكترونية. بحسب ويكيبيديا كان وزنها نحو 25 طنًا قصيرًا (23 طنًا) وتشغل أكثر من 370 مترًا مربعًا. وكانت عملية الجمع تستغرق 0.125 ثانية والضرب 0.75 ثانية.
كان Mark II أسرع من سلفه Mark I بنحو 2.6 مرة في الجمع وبنحو 8 مرات في الضرب. وكان ثاني آلة تدعم العتاد فيها الأعداد ذات الفاصلة العائمة، وفيها وحدات مدمجة لعمليات مثل الجذر التربيعي واللوغاريتم؛ وكانت كل منها تستغرق من 5 إلى 12 ثانية. وكان من تفاصيل التصميم المثيرة أن الآلة تتكون من حاسوبين فرعيين يعملان معًا أو منفصلين، فيمكن التحقق من النتائج بالمقارنة. وسُلّمت في مارس 1948 إلى ميدان داهلغرين لتجارب البحرية في فرجينيا.
في 9 سبتمبر 1947، نحو الساعة 15:45، لم تعمل الآلة جيدًا، فنظر الفريق في داخلها. وبحسب ما نقلته Computerworld كانت العثة عالقة بين نقاط تماس المرحّل رقم 70 في اللوحة F. أخرج الفريق العثة ولصقها بشريط في دفتر تشغيل الآلة. وبلغة اليوم يمكننا القول إن الفريق "صحّح" الآلة (debug) حرفيًا. وكتبوا إلى جانبها ملاحظة: "First actual case of bug being found." أي "أول حالة فعلية لعثور على حشرة."
التصحيح 1: غريس هوبر لم تجد العثة
تُروى هذه القصة عادةً مع رائدة الحوسبة غريس هوبر. وكانت هوبر في 1947 تعمل فعلًا على Mark II وصارت لاحقًا أميرالًا في البحرية الأمريكية. وبحسب ويكيبيديا عملت مع هاورد أيكن وإدموند بيركلي في بناء الآلة وبرمجتها. لكن بحسب سجل المتحف الوطني للتاريخ الأمريكي في Smithsonian فإن من لصقوا العثة في الدفتر هم المهندسون الذين كانوا يعملون على Mark II، وأن الدفتر "ربما لم يكن لهوبر."
ومساهمة هوبر الحقيقية أنها شهّرت القصة بروايتها سنوات طويلة. ويقول المتحف إن هوبر وفريق Mark II ساعدوا في نشر مصطلحي "computer bug" و"debug".
وهناك التباس صغير في التاريخ أيضًا. فبعض المصادر، ومنها مقال Computerworld، تنقل تاريخ الدفتر على أنه 1945. أما Smithsonian فتؤرخ الدفتر بـ 1947، وقد اكتمل Mark II أصلًا في 1947. لذلك فـ 1947 هو التاريخ الأمتن.
التصحيح 2: كلمة "bug" كانت أقدم بكثير
أعد قراءة الملاحظة: "first actual case of bug being found." النكتة في كلمة "actual". فقد كان المهندسون يسمون الأعطال "bug" أصلًا. وهذه المرة وجدوا أول مرة حشرة حقيقية. أي أن الملاحظة في الواقع مثال صغير لكنه باقٍ على دعابة المهندسين.
وتنقل Computerworld، استنادًا إلى The Yale Book of Quotations، أن توماس إديسون استخدم كلمة "Bugs" في رسالة كتبها إلى ثيودور بوسكاس عام 1878 للدلالة على الأعطال والصعوبات الصغيرة. أي أن العثة لم تخترع الكلمة، بل صارت أجمل دليل عليها.
| 1947 | اليوم |
|---|---|
| Bug: عثة عالقة في مرحّل | Bug: سطر مغفول في الشيفرة |
| التصحيح: إخراج العثة يدويًا | التصحيح: المصحّحات (debugger) والاختبارات |
| سجل الأعطال: دفتر ورقي | سجل الأعطال: أنظمة تتبع الأخطاء |
لماذا تُحب هذه القصة إلى هذا الحد؟
لأنها تجعل شيئًا مجردًا ملموسًا. فـ"خطأ البرمجيات" شيء غير مرئي. أما عثة حقيقية ملصقة بشريط في دفتر فهي صورة يفهمها الجميع. وفوق ذلك بدأت دعابة صغيرة بين المهندسين وتُروى منذ ما يقارب 80 عامًا.
قلّ من يتذكر اليوم المواصفات التقنية لـ Mark II، لكن الجميع يعرف تلك العثة. وأحيانًا في تاريخ التقنية تترك الأشياء الأصغر الأثر الأكبر.
وأنت، حين تبحث عن "bug" في شيفرتك، هل واجهت يومًا خطأ يختبئ كأنه حشرة حقيقية؟