ماجرای باگ Y2K چه بود؟ | از پیشبینی فاجعه تا واقعیت

سال 2000 (Y2K) برای بسیاری یادآور ترس و نگرانی بود. در حالی که عدهای برای جشن گرفتن آماده میشدند، گروهی دیگر پیشبینی فاجعهای بزرگ را میکردند. این نگرانی از کجا نشأت میگرفت؟ از یک فرض برنامهنویسی قدیمی که تصور میشد با تغییر تاریخ از 31 دسامبر 1999 به 1 ژانویه 2000، سیستمهای کامپیوتری از کار خواهند افتاد.
عصر وحشت تکنولوژیک
تصور غالب این بود که سیستمهای الکترونیکی به دلیل استفاده از برنامهنویسیهای قدیمی و کوتهفکرانه، قادر به پردازش تاریخهایی که با "19" شروع نمیشوند نخواهند بود. این ترس وجود داشت که کامپیوترها دچار سردرگمی شده و به طور کامل از کار بیفتند، که منجر به هرج و مرج و اختلالات گسترده خواهد شد.
با توجه به وابستگی شدید زندگی روزمره به کامپیوترها در سال 1999، انتظار میرفت که سال نو میلادی عواقب جدی و کامپیوتری به دنبال داشته باشد. مردم نگران سیستمهای بانکی، چراغهای راهنمایی، شبکههای برق، فرودگاهها، مایکروویوها و تلویزیونها بودند، زیرا همه اینها توسط کامپیوترها کنترل میشدند.
پیشگویان بدبین حتی پیشبینی کردند که فرآیندهای مکانیکی ساده مانند سیفون توالت نیز تحت تأثیر باگ Y2K قرار خواهند گرفت. برخی بر این باور بودند که Y2K تمدن را به شکلی که میشناسیم پایان خواهد داد. در حالی که برنامهنویسان به سختی در تلاش برای بهروزرسانی سیستمهای کامپیوتری بودند، بسیاری از مردم عادی با ذخیره پول نقد و مواد غذایی اضافی خود را برای بدترین سناریوها آماده میکردند.
آمادهسازی برای مقابله با باگ
از سال 1997، یعنی چند سال قبل از فراگیر شدن وحشت از مشکل هزاره، دانشمندان کامپیوتر در حال کار بر روی راه حل بودند. موسسه استانداردهای بریتانیا (BSI) استانداردهای جدیدی را برای انطباق کامپیوترها با سال 2000 توسعه داد. این استاندارد که با نام DISC PD2000-1 شناخته میشد، چهار قانون را مشخص میکرد:
- هیچ مقدار برای تاریخ فعلی نباید باعث ایجاد اختلال در عملکرد شود.
- عملکرد مبتنی بر تاریخ باید به طور مداوم برای تاریخهای قبل، حین و بعد از سال 2000 رفتار کند.
- در تمام رابطها و ذخیرهسازی دادهها، قرن در هر تاریخ باید به صراحت یا با قوانین و الگوریتمهای استنتاجی غیرمبهم مشخص شود.
- سال 2000 باید به عنوان سال کبیسه شناخته شود.
در اصل، این استاندارد درک کرده بود که باگ به دو مسئله کلیدی تکیه دارد:
- نمایش دو رقمی موجود در پردازش تاریخ مشکلساز بود.
- سوء تفاهم در محاسبات سالهای کبیسه در تقویم میلادی باعث شد که سال 2000 به عنوان یک سال کبیسه برنامهریزی نشود.
مشکل اول با ایجاد برنامهنویسی جدید برای وارد کردن تاریخ به صورت اعداد چهار رقمی (1997، 1998، 1999 و غیره) حل شد، در حالی که قبلاً فقط با دو رقم (97، 98 و 99) نشان داده میشدند. راه حل دوم اصلاح الگوریتم محاسبه سالهای کبیسه به "هر مقدار سالی که بر 100 تقسیم شود، سال کبیسه نیست" با افزودن "به استثنای سالهایی که بر 400 بخشپذیر هستند" بود.
در 1 ژانویه چه اتفاقی افتاد؟
با این همه آمادهسازی و برنامهنویسی بهروزرسانی شده قبل از تغییر تاریخ، فاجعه تا حد زیادی دفع شد. وقتی تاریخ موعود فرا رسید و ساعتهای کامپیوتر در سراسر جهان به 1 ژانویه 2000 بهروز شدند، اتفاق غیرعادی بسیار کمی رخ داد. تنها چند مشکل نسبتاً جزئی ناشی از باگ هزاره رخ داد و حتی تعداد کمتری از آنها گزارش شد.