Досье открыто: 29 сентября 2014 года. Статус: не раскрыто
Пролог: Звонок в три часа ночи
Телефон зазвонил в то время, когда звонят только по двум причинам: кто-то умер, или кто-то вот-вот умрет. Голос в трубке был механическим, но в нём слышалась паника:
— Детектив? Её нет. Windows 9 исчезла. Вместо неё объявили Windows 10. Но между восьмёркой и десяткой должна была быть девятка. Где девятка, детектив?
Я затянулся сигаретой (вернее, закрыл вкладку Хэ) и открыл новое дело. "Убийство Windows 9". Жертва: несуществующая. Мотив: неизвестен. Подозреваемые: вся линейка операционных систем Microsoft с 1985 года.
Это был тот случай, когда убийство совершили ещё до рождения жертвы.
Глава первая: Показания свидетелей
Допрос первый: Windows XP (2001-2014)
Старик сидел в кресле, обитом синей тканью с логотипом зелёного холма. На лацкане пиджака — значок "Бессмертный". Тринадцать лет на службе — рекорд, который никто не побил.
— Windows 9? — он усмехнулся. — Детектив, я пережил Vista, я пережил Millennium. Я работал на банкоматах, когда мои младшие братья уже лежали в архиве. Если девятка и существовала, то не в нашей реальности.
— Что вы знаете о причине?
— Знаю, что люди меня любили. Слишком любили. Знаете, каково это — когда тебя не хотят хоронить даже через десять лет после смерти? Microsoft усвоила урок: никогда больше не создавать систему, от которой невозможно избавиться. Может, девятку просто... пропустили, чтобы не рисковать?
XP посмотрел в окно, где всё ещё светил тот самый зелёный холм.
— Я не убивал девятку. Я просто отказывался умирать. Это разные вещи.
Допрос второй: Windows Vista (2007-2017)
Vista появилась в дверях следственной комнаты с опозданием на тридцать минут. Извинилась — сказала, что драйверы не загрузились. Я поверил. С Vista всегда так было.
— Вы подозреваете меня? — она нервно поправила воротник. — Я знаю, что обо мне говорят. "Тормозная". "Несовместимая". "Требовательная". Но я просто опережала время! Я хотела красивый интерфейс, безопасность, Aero Glass...
— И как, получилось?
— Получилось, что меня ненавидели. — В её голосе прозвучала горечь. — Вы думаете, я хотела убить девятку? Я сама едва выжила! Microsoft после меня стала осторожной. Слишком осторожной. Может, девятку убила не злоба, а страх?
Она встала, споткнулась о ножку стула (драйверы шалят), и ушла. На столе остался след — капля пота. Или слеза. С Vista было трудно различить.
Допрос третий: Windows 7 (2009-2020)
Семёрка вошла уверенно. Выправка военного, взгляд профессионала. Она знала себе цену — золотой стандарт, которым до сих пор меряют остальных.
— Девятка? Не было никакой девятки, детектив. Была я, была восьмёрка, что там дальше...Десятка была. От девятки отказались.
— Почему?
— Потому что после меня любая система выглядела бы слабее. Vista провалилась, я исправила её ошибки. Восьмёрка попыталась революцию с плитками — провалилась. Следующей нужно было быть идеальной. А "идеальная девятка" звучало как проклятие... какая-то перевернутая шестерка.
Семёрка достала планшет, но передумала и закрыла его.
— Знаете, что смешно? Я всё ещё работаю на миллионах компьютеров. Через десять лет после релиза. Microsoft не хотела повторения. Девятку убила любовь ко мне. Странная ирония, правда?
Допрос четвёртый: Windows 8 (2012-2016)
Восьмёрка появилась в окружении плиток разного цвета. Она была нервной, дёргалась, не могла найти кнопку "Пуск".
— Я не виновата! — выпалила она сразу. — Я пыталась быть современной! Планшеты, сенсорные экраны, Metro UI! Люди просто не поняли...
— Они поняли. Просто не оценили.
— Да! Не оценили! И после меня Microsoft запаниковала. Вы думаете, случайно перепрыгнули через девятку к десятке? Нет! Они хотели сказать: "Забудьте восьмёрку, вот вам ДЕСЯТКА, совсем другое число, новая эра!"
Восьмёрка стукнула кулаком по столу, но промахнулась — перепутала жест для сенсорного экрана с реальностью.
— Девятку убил мой провал. Если бы я была успешной, девятка бы вышла как положено. Но я не была успешной. Так что да, детектив. Я — убийца. Косвенно.
Она ушла, не попрощавшись. Плитки за ней рассыпались разноцветным конфетти.
Допрос пятый: Windows 10 (2015-2021)
Десятка вошла с улыбкой менеджера по продажам и глазами налогового инспектора. Она всё знала обо мне — мои файлы, историю браузера, привычки. "Телеметрия", — объяснила она. Я не спрашивал.
— Windows 9? Никогда не существовала. Я — то, что должно было быть девяткой. Но маркетинг решил иначе. "Десять" звучит круглее. Финальнее. "Последняя версия Windows" — помните этот слоган?
— Помню. Не сработало же.
— Потому что корпорации врут. Но в 2015-м в это верили. Девятку убрали, чтобы сделать громкое заявление. А я была этим заявлением.
Она подвинула ко мне папку. Внутри — обновления. Сотни обновлений.
— Девятка умерла в PowerPoint-презентации, детектив. На слайде 47 из 200, когда менеджер продукта сказал: "А что если просто назовём это десяткой?" И все кивнули. Вот и всё убийство.
Допрос шестой: windows 11 (2021-по настоящее время)
15:00. Назначенное время.
Пустая комната. На столе — распечатка:
┌─────────────────────────┐
│ УВЕДОМЛЕНИЕ СИСТЕМЫ │
│ Код ошибки: 0x80070643 │
│ Статус: Откат обновления │
│ Время восстановления: неизвестно │
└─────────────────────────┘
Под ней — записка от руки:
Извините, детектив. Обновление не удалось. — W11
Глава вторая: Возвращение к истокам
След остыл. Все показания вели к одному: девятку убил страх. Страх после Vista, страх после восьмёрки, страх перед повторением успеха семёрки. Но что-то не сходилось.Финальный допрос: Windows 95 и Windows 98
Я вернулся к началу. К самым первым свидетелям.
Финальный допрос: Windows 95 и Windows 98
Они сидели вместе в тесной комнате, пахнущей дискетами и надеждами девяностых. Windows 95 — в пиджаке с подплечниками эпохи гранжа. Windows 98 — с компакт-диском в нагрудном кармане. В углу мышь играла с шариком.
— Вы думаете, мы не знаем, зачем пришли, детектив? — усмехнулась 95. — Мы знаем. И знали всегда. Windows 9 не могла существовать из-за нас. Из-за нашего кода.
Я наклонился вперёд. Наконец-то истина.
— Объясните.
Улика номер один
95 вздохнула: — Программы. Тысячи программ. Они проверяли версию просто: "Начинается с 9?"
98 медленно достала из кармана помятую бумажку — пожелтевшую, с оборванными краями. В углу печать "Microsoft Corp." и дата: "15.08.1995".
— Служебная записка, — её голос дрожал. — Мы хранили её тридцать лет.
Я взял бумагу. Почерк программиста был небрежным, но код читался чётко: if (version.startsWith('9')). Под ним мелким шрифтом: "TODO: refactor after Y2K if computers still exist".
— "Если компьютеры ещё будут существовать", — прочитал я вслух. Теперь всё стало ясно. Windows 9 определялась бы как Windows 95 или 98. Старый код ломался бы на новой системе. Microsoft столкнулась с призраком прошлого — кодом, написанным тридцать лет назад.
— Совместимость, — прошептал я.
Философия эпохи
— Но почему так коротко? — я не мог понять. — Почему не полная проверка версии?
95 посмотрела в пространство, словно вспоминая те времена: — Помнишь Y2K? Миллениум. Конец света для компьютеров. Все готовились — запасались водой, газеты кричали, что компьютеры умрут в полночь 2000-го. Программисты в это ВЕРИЛИ. Не верили, что системы переживут 2000-й. Зачем писать код на будущее, которого не будет?
98 добавила с горечью: — 640 килобайт памяти — наше всё! Каждый байт на счету! "Начинается с 9" вместо полной проверки — это оптимизация! Экономия! Мудрость эпохи! Мы думали, что после нас будет Windows 00. Логично? 95, 98, 00! Или Windows 2000 — она и вышла, но это была другая линейка, серверная.
— Кто мог подумать, — 98 стукнула по столу, — что через ТРИДЦАТЬ лет кто-то захочет назвать систему Windows 9?!
95 посмотрела на записку как на приговор: — Они не верили в будущее. А код пережил их веру. И убил то, во что они не верили.
Пророчество
95 посмотрела в пространство, и её голос стал тише: — Знаешь, что самое страшное, детектив? Мы не одни. Где-то там, в недрах систем, сидит код 1970 года. Unix timestamp. 32 бита. Он тикает каждую секунду. И в 2038-м... переполнится.
98 кивнула: — Мы думали, что не переживём 2000-й. Пережили. Убили 2014-й. А он даже не знает, что убьёт 2038-й. Потому что в 1970-м никто не думал о 2038-м, как мы не думали о 2014-м.
95 посмотрела прямо на меня, и её взгляд был тяжёлым, как legacy-код: — И это будет намного хуже. Мы убили одну версию Windows. Он убьёт целые системы. Банки. Больницы. Самолёты. Всё, что работает на Unix-time.
98 произнесла как приговор: — 19 января 2038 года, 03:14:07 UTC. Часы обнулятся. Или вернутся в 1970-й. Или просто сойдут с ума. Мы это видим, детектив. Потому что мы сами такие же — мёртвые, но убивающие.
— Легаси-код, — прошептал я, и слова повисли в воздухе тяжёлые, как прошлое. — Это не баг. Это фича прошлого, убивающая будущее.
Эпилог: Закрытие дела
Windows 9 не существует, потому что в программировании прошлое не уходит. Оно просто накапливается, слой за слоем, как археологические ископаемые. Суть податливая глина будущего, обожженная искрой настоящего, чтобы стать кирпичом прошлого, или как там сказал классик.
Microsoft выбрала путь наименьшего сопротивления: перепрыгнула через девятку к десятке. Никто не спросил. Никто особо не возмутился. Девятка умерла, не родившись, и все сделали вид, что так и должно было быть.
Но я-то знаю правду.
Из архива детектива Бейтса:
"Самые сложные убийства — те, где убийца умер раньше жертвы. Windows 95 и 98 убили Windows 9 в 2014 году, хотя сами перестали существовать в начале двухтысячных. Такова природа программного кода: он живёт дольше, чем его создатели планируют, и умирает медленнее, чем хотелось бы.
Я закрыл папку. Убийство раскрыто, но убийц не посадишь. Как арестовать код, написанный в 1995 году? Как судить архитектурное решение тридцатилетней давности?