В некоторых областях, особенно в вычислительной технике , устаревание — это прекращение использования некоторой терминологии, функции, конструкции или практики, обычно потому, что они были заменены или больше не считаются эффективными или безопасными, без полного их удаления или запрета на их использование. Как правило, устаревшие материалы не удаляются полностью, чтобы обеспечить совместимость с устаревшими версиями или обеспечить резервную практику на случай, если новые методы не будут работать в странном сценарии.
Это также может означать, что функция, дизайн или практика будут удалены или полностью прекращены в будущем. [1]
В общем английском языке инфинитив «to deprecate» означает «выражать неодобрение (чего-либо)». Оно происходит от латинского глагола deprecari , означающего «отвратить ( катастрофу ) молитвой».
Раннее задокументированное использование слова «deprecate» в этом смысле встречается в сообщениях Usenet в 1984 году, относящихся к устаревшим функциям 4.2BSD и языка программирования C. [2] Расширенное определение слова «устарело» было процитировано в жаргонном файле в редакции 1991 года, [3] и аналогичные определения можно найти в документации по коммерческому программному обеспечению за 2014 год [1] и 2023 год . [4]
Хотя устаревшая функция программного обеспечения остается в программном обеспечении, ее использование может привести к появлению предупреждающих сообщений, рекомендующих альтернативные методы. Статус «Устарело» также может указывать на то, что функция будет удалена в будущем. Функции устарели, а не были немедленно удалены, чтобы обеспечить обратную совместимость и дать программистам время привести затронутый код в соответствие с новым стандартом.
Среди наиболее частых причин девальвации можно назвать:
smbfs
: и cifs
. Последний обеспечивает лучшую безопасность, поддерживает больше функций протокола и лучше интегрируется с остальной частью ядра. С момента включения cifs
, smbfs
устарел. [5]gets()
является примером, поскольку использование этой функции может вызвать переполнение буфера в программе, которая ее использует. [6] Методы Java APIThread.stop
и .suspend
дополнительные .resume
примеры. [7]FONT
элемент, позволяющий дизайнерам страниц указывать шрифт , которым должен отображаться текст. С выпуском каскадных таблиц стилей и HTML 4.0 этот FONT
элемент стал посторонним и лишился преимуществ структурной разметки в HTML и графического форматирования в CSS. Таким образом, этот FONT
элемент был признан устаревшим в стандарте Transitional HTML 4.0 и исключен в строгом варианте. [8]Примером строительных норм является использование незаземленных («двухконтактных») электрических розеток . Со временем эти старые устройства стали широко устаревшими в пользу более безопасных заземленных («трехконтактных») розеток. Использование старых, незаземленных розеток по-прежнему разрешалось во многих местах, « вставляя » их в существующую электропроводку , но запрещая их установку в новых установках. Таким образом, хотя незаземленные розетки все еще могут быть доступны для законной покупки в местах, где они устарели, они, как правило, предназначены только для ремонта существующих старых электроустановок.
При написании и редактировании использование того или иного слова может быть недопустимо, поскольку оно двусмысленно, сбивает с толку или оскорбительно для некоторых читателей. Например, слова «санкция» и «воспламеняющийся» могут быть неправильно истолкованы, поскольку они имеют автоантонимичные или противоречивые значения; Руководства по стилю письма часто рекомендуют заменять другие слова, которые четко понятны и недвусмысленны. Некоторые словоупотребления, которые со временем приобрели разные коннотации, например, «гей » или «цветной », в официальной письменной форме могут быть признаны устаревшими как устаревшие.
В технических стандартах использование определенного пункта может не поощряться или заменяться новыми пунктами. Например, в стандарте Ethernet IEEE 802.3-2012 пункт 5 (Управление уровнями) «устарел» в соответствии с пунктом 30 (Управление), за исключением пункта 5.2.4.
Устаревание может также произойти, когда технический термин устаревает в результате изменения или замены. Примером из палеонтологии является ранее устаревший термин Бронтозавр ; до того, как его повторно признали уникальным родом, [11] оно считалось популярным, но устаревшим названием рода Apatosaurus . [12] Некоторые примеры устаревших медицинских терминов включают чахотку ( туберкулез ), грипп ( грипп ) и апоплексию ( инсульт ). В химической номенклатуре международная организация по стандартизации IUPAC (Международный союз теоретической и прикладной химии) отказалась от использования термина «метилэтилкетон» и теперь рекомендует использовать вместо него термин « этилметилкетон ». [13]
Устаревшая функция: char * get (char *s).
...
Функция
очень опасна
, поскольку не обеспечивает защиты от переполнения строки
.
Библиотека GNU включает его только для совместимости.
Вместо этого всегда
следует
использовать
или
.
gets
s
fgets
getline