Что означает соответствие требованиям 2000 года?
Я читал основы языка программирования Perl и наткнулся на следующее утверждение
Perl is Y2K compliant.
Не совсем понял, что это значит, даже после некоторого поиска в Google. Это какой-то стандарт, установленный. если да, то кем? Любая информация ценится.
2 ответа
Для тех, кто программировал в конце 1990-х годов, 2000 год имел решающее значение. В прямом смысле: Y2K
знак равно Year 2000
,
Программное обеспечение, которое не соответствовало требованиям 2000 года, включало в себя, по всей видимости, программное обеспечение, которое хранило номера года в виде двух цифр (часто для экономии места на диске) и, следовательно, приравнивало бы 2000 год к 1900 году. Однако некоторые программные продукты по другим причинам, не были совместимы с Y2K, потому что они сделали неправильные вычисления даты для дат в 21-м и последующих столетиях.
В последней категории у меня был один продукт, который я поддерживал в то время, когда мне приходилось исправлять, потому что 2000 год не был високосным. Поскольку это программное обеспечение запускало систему автоматического управления на заводе-изготовителе, оно могло повредить некоторые дорогие компоненты, если бы оно не было исправлено до конца февраля 2000 года.
Существовали некоторые апокалиптические прогнозы о том, что 1 января 2000 года произойдут очень плохие вещи из-за сбоев программного обеспечения из-за несоблюдения требований 2000 года, и по этой причине многие люди "затаили дыхание" в полночь 31 декабря 1999 года. После этого многие утверждали, что прогнозы были преувеличены. На мой взгляд, проблем было мало, потому что многие программисты работали очень усердно и много часов в конце 1990-х годов специально для того, чтобы справиться с угрозой проблем 2000 года, и они бы этого не сделали, если бы не было законных опасений по поводу потенциально очень плохие результаты.
Статья в Википедии о проблеме 2000 года, 2000 год, объясняет это довольно хорошо:
В 1997 году Британский институт стандартов (BSI) разработал стандарт DISC PD2000-1, который определяет "требования соответствия 2000 года" как четыре правила:
- Отсутствие действительной даты приведет к прерыванию работы.
- Расчет длительностей между парами дат или их последовательности будет правильным, независимо от того, относятся ли даты к разным столетиям.
- Во всех интерфейсах и во всех хранилищах столетие должно быть однозначным, заданным или вычисляемым по алгоритму
- 2000 год должен быть признан високосным
Perl, совместимый с Y2k, означает, что встроенная обработка даты соответствует этим правилам.