Ошибка в миллиард долларов

sir_tony_hoare_img_5125

Сэр Чарльз Энтони Ричард Хоар изобрёл null указатели в программировании. В своей речи на конференции в 2008 году он попросил прощения за это:

— Я назвал это моей ошибкой, ценой в миллиард долларов. Изобретение ссылки null в 1965 году. В то время я разрабатывал первую всеобъемлющую систему типов для ссылок в объектно ориентированном программировании (ALGOL W). Моей целью было — гарантировать, что все ссылки абсолютно безопасны, благодаря проверкам, проводимым компилятором автоматически. Но я не устоял перед соблазном добавить null, просто потому, что это легко реализовать. Это повлекло за собой неисчислимое море ошибок, уязвимостей, системных сбоев, которые наверняка принесли ущерба в миллиарды долларов в последующие сорок лет.

via

Следует отметить, что новейшие языки программирования пытаются лучше защищаться от такого рода проблем:

Objective C: синоним null в нём является nil. Одним из самых замечательных свойств nil в Objective-C является возможность посылать ему совершенно любые сообщения (или «вызывать методы»), ответом на которые неизменно будет всё тот же nil. Можно не писать некоторые проверки:

/* Далеко, далеко за пределами нашей галактики… */
if (foo != nil && [foo testValue: 0x90]) { … }

/* Программисты же из Млечного Пути могут писать просто */
if ([foo testValue: 0x90]) { … }

Swift и Kotlin добавляют к описаниям типов данных «опциональные типы». Применяются в тех случаях, когда значение может отсутствовать. Опциональный тип подразумевает, что возможны два варианта: или значение есть, и его можно извлечь из опционала, либо его вообще нет.

Опубликовано в рубрике Android