Главная страница Visual 2000 · Общий список статей

Проблема Y2K — мифы и реалии

Андрей Колесов

© 1998, Андрей Колесов
Авторский вариант. Статья была опубликована c некоторыми сокращениями и незначительной литературной правкой в PC Week/RE № 39/98, с.29. см. PC Week/RE Online.

Чем ближе момент наступления нового тысячелетия...
Windows 98 — решение проблемы Y2K
Взгляд из Америки


Чем ближе момент наступления нового тысячелетия...

Чем ближе момент наступления нового тысячелетия, тем настойчивее звучит тема возможных сбоев вычислительных средств в 2000-м году (она часто обозначается как Y2K). Степень угрозы такой ситуации — вопрос весьма спорный. Однако всем профессионалам в компьютерной области понятно, что наряду с объективной основой сути проблемы имеется большое влияние субъективных факторов, направленных на создание ажиотажа вокруг в общем-то заурядных технических вопросов, которые решаются в рамкам обычного круга по сопровождению и развитию информационных систем.

Общую оценку актуальности проблемы очень четко и красочно описал в своем интервью член-корреспондент РАН В.П.Иванников (см. PC Week/RE, № 29/98, с.42). Здесь стоит также добавить, что весьма характерным моментом является то, что ни в одной публикации на тему Y2K не приводится ни одного конкретного примера, где именно использование даты нового века привело бы к сбоям в программе. (Имея в виду, что вопрос обеспечения надежной работы программ и так весьма сложен). Таинственные ссылки на закрытые военные системы, работающие в реальном масштабе времени, могут произвести впечатление только на тех людей, кто никогда не имел дела с очень жесткими требованиям в этой сфере.

Честно признаемся — в спекуляциях на тему 2YK объективно заинтересована вся компьютерная индустрия, которая получает дополнительный инструмент давления на пользователя с целью проведения очередной модернизации техники и ПО. И это при том, что стилем разработок последних лет (особенно в программной сфере) стало откровенно-искусственное строго дозированное увеличение функциональности или повышение эффективности продуктов от версии к версии. К сожалению, превратилось в норму всеобщее умиление по поводу появления в новых версиях некоторых расширений, вместо уместного вопроса: почему это не было сделано еще две версии назад?

Более того, опираясь на принцип продажи "как есть" — юридическая защита разработчиков программных продуктов от претензий к работоспособности программ — создаются опасные прецеденты, когда в случаях даже явных ошибок производитель ПО предлагает пользователям вместо их немедленного устранения подождать выхода новых версий (за дополнительные деньги, конечно же).

В начало статьи

Windows 98 — решение проблемы Y2K

В качестве примера "мягкого" давления на рынок можно привести историю с выходом Windows 98. Комментарий Microsoft о том, что в новой системе полностью решены вопросы Y2K, был довольно быстро проинтерпретирован не очень сведущими людьми (в том числе и в СМИ) в том плане, что в предыдущих версиях OC проблемы с этим были. Однако здесь Microsoft уже стала хранить деликатное молчание, не возражая против такого дополнительного довода в пользу обновления операционных систем. Так как же дело обстоит в реальности?

На самом деле полноформатное хранение даты, в том числе и в качестве атрибутов файлов, было заложено в самые первые версии MS DOS. Точнее, там предусмотрено хранение года в диапазоне 1980-2099 (база отсчета — 1980, максимальный интервал — 119, хотя, вроде бы, должен быть 127, так как зарезервировано 7 двоичных разрядов). Все проблемы с переходом даты были окончательно решены в версии MS DOS 2.1, появившейся в начале 80-х годов. Ошибки там были связаны не со счетчиком года, а с определением дня недели.

Так что не надо путать внутренние форматы данных и их внешнее представление при выводе в виде, удобном для пользователям. В качестве примера можно привести одну из первых версий Norton Commander 1988 г., продукта тогда еще независимой компании Peter Norton Computing. Действительно, в ней используется двухсимвольное обозначение года при выводе атрибутов даты на панель экрана. Но сортировка списка выполняется по полному значению года, а не по его последним цифрам!

Совершенно другой вопрос, что до версии Windows 95 включительно при вводе даты с использованием сокращенного формата даты (это хорошо видно при работе в режиме командной строки сессии MS DOS) к двум цифрам года автоматически прибавлялось "19". В результате при вводе, например 31.12.03, система думала, что речь идет о 1903 годе и выдавала сообщение о недействительном значении даты. Тем не менее, трудно даже предположить, кто из пользователей не смог бы догадаться так решить проблему — ввести дату в виде 31.12.2003.

Радикальные изменения в Windows 98 относительно Y2K заключается в том, что теперь разработчики системы вдруг поняли, что когда вводится значение года меньше 80, речь идет, скорее всего, о 21-м веке. Почему они об этом не догадывались раньше (вставив при этом непростой механизм автоматического контроля за переводом часов при смене летне-зимнего времени) — остается загадкой. Возможно, это было сделано с целью защиты от ошибок ввода, когда пользователь вместо "93" вводил "03". Но в данном случае было бы проще реализовать дополнительный запрос на подтверждение ввода.

Так или иначе, но теперь в новой ОС пользователь при работе с датами нового века может вводить не четыре символа, а два. Пустячок, а приятно.

В начало статьи

Взгляд из Америки

Некоторое время назад я задал вопрос о Y2K знакомому российскому программисту, которые уже полтора года работает в США в компании MCI (той самой — одной из ведущих телекоммуникационных фирм). Вот какое письмо он прислал мне в ответ:

"Один из проектов, которые я веду, посвящен именно Y2K. В целом дела этой заварушки на 80% связаны не с техническими вопросами обеспечения надежной работы программ, а с подготовкой к возможным юридическим проблемам.

Как ты понимаешь, различные конфликты между поставщиком услуг и продуктов (в данном случае MCI) и его клиентами — дело обычное. Поставщики уже сегодня готовятся к вполне вероятному шквалу разнообразных претензий к 2000 году со стороны пользователей, которые будут вешать на нас всех собак со ссылками на неработоспособность компьютеров, нашу халатность и пр. Поэтому мы сейчас занимаемся не столько тестированием и модернизацией программ, сколько разработкой надежного научно-технического обоснования того, что у нас таких проблем нет.

Можешь представить сложность такой задачи: тест может обнаружить ошибки, но никакое тестирование не гарантирует 100-процентного их отсутствия. Конечно, клиентам будет также сложно доказать наличие гипотетических ошибок, но на их стороне будет стоять общественное мнение, которое сегодня активно формируется в нужном направлении.

Короче говоря, впереди нас ждут горячие юридические процессы. Клиенты обрушатся на нас с претензиями, в ответ они получат вагоны бумаг с обоснованием нашей правоты. И все будут довольны, особенно адвокаты обеих сторон, которые уже размещают заказы на 2001 г. на новые "Феррари", рассчитывая на резкий приток гонораров...

Алекс"

Из письма видно — обозначился еще один любопытный поворот темы.

В начало статьи