Устаревание — это препятствование использованию чего-либо, созданного человеком, например, термина , функции, дизайна или практики. Обычно что-то устаревает, потому что утверждается, что оно хуже по сравнению с другими доступными вариантами.
Что-то может быть объявлено устаревшим, когда это невозможно контролировать, [ необходимо разъяснение ] , например, термин. Даже когда это можно контролировать, что-то может быть объявлено устаревшим, даже если это может быть полезным — например, для обеспечения совместимости — и может быть удалено или прекращено в какой-то момент после объявления устаревшим. [1]
В общем английском языке глагол "to deprecate" означает "выражать неодобрение (чего-либо)". Он происходит от латинского отложительного глагола deprecari , что означает "отвратить ( катастрофу ) молитвой".
Раннее задокументированное использование слова «deprecate» в этом смысле встречается в сообщениях Usenet в 1984 году, где упоминаются устаревшие функции в 4.2BSD и языке программирования C. [2] Расширенное определение слова «deprecate» было приведено в Jargon File в редакции 1991 года, [3] а похожие определения можно найти в документации к коммерческому программному обеспечению от 2014 [1] и 2023 годов. [4]
Пока устаревшая функция программного обеспечения остается в программном обеспечении, ее использование может вызывать предупреждающие сообщения, рекомендующие альтернативные методы. Статус «Устаревший» может также указывать на то, что функция будет удалена в будущем. Функции устарели, а не удалены немедленно, чтобы обеспечить обратную совместимость и дать программистам время привести затронутый код в соответствие с новым стандартом.
Известные причины прекращения поддержки включают в себя:
Причина | Пример(ы) |
---|---|
Функция была заменена более мощной альтернативной функцией. | Ядро Linux содержит два модуля для связи с сетями Windowssmbfs : и cifs . Последний обеспечивает лучшую безопасность, поддерживает больше функций протокола и лучше интегрируется с остальной частью ядра. С момента включения cifs , smbfs был устарел. [5] |
Функция содержит ошибку проектирования, часто связанную с безопасностью, поэтому ее следует избегать, но существующий код от нее зависит. |
|
Функция считается лишней и будет удалена в запланированной будущей версии. | Ранние версии языка веб- разметки HTML включали FONT элемент, позволяющий дизайнерам страниц указывать шрифт , которым должен отображаться текст. С выпуском каскадных таблиц стилей и HTML 4.0 FONT элемент стал лишним и умалял преимущества отмечания структурной разметки в HTML и графического форматирования в CSS. Таким образом, FONT элемент был устарел в стандарте Transitional HTML 4.0 и исключен в варианте Strict . [8] |
Планируемая будущая версия программного обеспечения внесет существенные структурные изменения, что сделает невозможной или нецелесообразной поддержку старых функций. | Когда Apple Inc. планировала переход с Mac OS 9 на Mac OS X , она создала подмножество API старой системы , которое поддерживало большинство программ с небольшими изменениями: библиотека Carbon (которая с тех пор сама по себе устарела), доступная как в Mac OS 9, так и в Mac OS X. Программисты, которые в то время в основном использовали Mac OS 9, могли гарантировать, что их программы будут работать на Mac OS X изначально, используя только функции API, поддерживаемые в Carbon. Другие функции Mac OS 9 были устарели и никогда не поддерживались изначально в Mac OS X. [9] |
Последовательность в наименованиях. | API может непоследовательно смешивать такие варианты написания, как "color" и "colour", в результате того, что разные разработчики используют разные варианты написания. Для обеспечения согласованности все идентификаторы, использующие одно написание, будут дублироваться для [ необходимо уточнение ] другого варианта написания, а идентификаторы, использующие непредпочтительное написание, будут устарели. |
Функция, которая когда-то была доступна отдельно, объединена с сопутствующей функцией. | В VLC Media Player аббревиатура VLC использовалась для обозначения "VideoLan Client", а отдельный "VideoLan Server" был доступен в качестве его сопутствующей функции. И клиент, и сервер стали доступны в одном пакете, поэтому получение их по отдельности было бы непрактичным. [10] |
Примером строительного кодекса является использование незаземленных («2-контактных») электрических розеток (британский английский: «unearthed»). Со временем эти старые устройства были повсеместно вытеснены в пользу более безопасных заземленных («3-контактных») розеток. Старые, незаземленные розетки все еще были разрешены во многих местах, « дедовскими » для существующей электропроводки , в то же время запрещая их для новых установок. Таким образом, хотя незаземленные розетки все еще могут быть доступны для законной покупки в месте, где они устарели, они, как правило, предназначены только для ремонта существующих старых электроустановок.
В написании и редактировании использование слова может быть запрещено, поскольку оно является двусмысленным, запутанным или оскорбительным для некоторых читателей. Например, слова санкция и воспламеняющийся могут быть неверно истолкованы, поскольку имеют автоантонимичные или противоречивые значения; руководства по стилю письма часто рекомендуют заменять их другими словами, которые понятны и недвусмысленны. Некоторые словоупотребления, которые со временем приобрели другие коннотации, такие как гей или цветной , могут быть запрещены как устаревшие в официальном письме.
В технических стандартах использование определенного пункта может быть нежелательно или заменено новыми пунктами. Например, в стандарте Ethernet IEEE 802.3-2012 пункт 5 (Управление уровнями) «устаревал» пунктом 30 (Управление), за исключением 5.2.4.
Устаревание также может произойти, когда технический термин становится устаревшим , либо через изменение, либо через замену. [ необходимо разъяснение ] Примером из палеонтологии является ранее устаревший термин Brontosaurus : до того, как его снова признали уникальным родом, [11] он считался популярным, но устаревшим, названием для рода Apatosaurus . [12] Некоторые устаревшие термины в медицине - это чахотка ( туберкулез ), грипп ( грипп ) и апоплексия ( инсульт ). В химической номенклатуре международная организация по стандартизации IUPAC (Международный союз теоретической и прикладной химии) устарела термин «метилэтилкетон» и теперь рекомендует использовать вместо него термин « этилметилкетон ». [13]
Устаревшая функция: char * gets (char *s). ... Функция
очень
опасна
, поскольку не обеспечивает защиты от переполнения строки
. Библиотека GNU включает ее только для совместимости. Вместо нее
всегда
следует использовать
или
.
gets
s
fgets
getline
{{cite book}}
: CS1 maint: DOI неактивен по состоянию на июнь 2024 г. ( ссылка )