Двійковий код має свої переваги та свої недоліки
Пам’ятаєте 1999 рік, коли побоювання було в тому, що коли рік перейде у 2000 рік, комп’ютери не зрозуміють, що століття змінилося. Дату було б скинуто до 1900 року, а комп’ютерно-залежні системи по всьому світу вийшли б із ладу та згоріли, пише IFLScience. Втім, завдяки широким та узгодженим зусиллям IT-вців по всьому світу все пройшло гладко. Однак, схоже, to be continued...
19 січня 2038 року: день закінчення часу. Отже, найвища позначка часу, яку можуть обробляти сучасні комп'ютерні системи, становить 2147483647, що відповідає 19 січня 2038 року о 03:14:07 UTC.
Це число не є випадковим - яким би довільним не здавалося. Для 32-розрядної системи це просто забагато цифр, тому лічильник може збитися. Позначка часу стане від’ємним числом, що призведе до того, що дата й час будуть неправильними. Так, 20 січня 2038 року може стати 13 грудня 1901 року. Це і є можлива помилка всіх комп'ютерів 2038 року.
Про помилку 2038 відомо принаймні з 2006 року, коли подібна проблема вразила програмне забезпечення, що підтримує вебсервер AOL. Звичайно, 32 роки - це більш ніж достатньо часу, щоб знайти рішення.
Рішення полягає в переході на 64-розрядну підтримку часу. З 64 бітами є більш ніж достатньо місця для зберігання значень часу далеко за межами осяжного майбутнього, навіть якщо використовуються значення часу з високою роздільною здатністю - на основі наносекунд.
Проте перехід здійснили не всі бази даних. Пристрої під керуванням Windows, Linux, Android або iOS можуть опинитися під загрозою, а також:
Загалом, це має потенціал бути надзвичайно руйнівним. Тому новим системам сьогодні надається 64-бітне ціле число як стандарт. Але більша проблема пов’язана з системами, що вже існують. Проте, їхній перехід - не такий простий. Перехід від 32-бітних до 64-бітних позначок часу призведе до того, що купа вже існуючих програм буде намагатися зрозуміти нову систему. А це, м'яко кажучи, дуже непросто.
І це лише початок. Окрім цього, існує проблема 2106 року, 2262 і навіть проблема 2446 років. Усі вони пов’язані з припущеннями минулих програмістів щодо того, як довго ми продовжуватимемо використовувати протоколи, винайдені в середині XX століття.
Та в нас було - і все ще є - багато часу, щоб підготуватися до проблеми 2038 року, і коли вона виникне, усі поточні комп’ютерні системи будуть оновлені задовго до цього часу. Проте побічні ефекти все ж можуть виникнути. Проте, будьмо оптимістами й про всяк випадок схрестимо пальці!