dwim



Предыдущая | Следующая

dwim /dwim/[no первым буквам от «Do What I Mean» (делай, что я подразумеваю)] 1. прил. Способный предугадать (иногда даже правильно) последствия некорректного ввода 2. сущ.; устар. Функция BBNLISP/INTERLISP, которая пыталась довести это качество до совершенства, исправляя большую часть распространенных ошибок ввода. См. hairy 3. Восклицание, произносится программистом в адрес компьютера, который вдруг начинает артачиться и перестает понимать вполне законные (см. legalese) требования.Сначала Уоррен Тейтельман написал программу DWIM для исправления собственных опечаток и орфографических (и стилистических) ошибок. Когда его программа начинала работать с вводом пользователей, стиль которых не совпадал с Уорреновским, возникали досадные ошибки, и несчастные жертвы программы прозвали ее «Damn Warren's Infernal Machine» (адская машина проклятого Уоррена). Однажды Уоррен подключил свой DWIM к командному интерпретатору, который использовался в Xerox PARC. Как-то раз одному хакеру захотелось почистить диск. Он вызвал команду delete *$ (редактор в той системе помечал старые версии файлов добавлением символа $ к названию файла, так что хакер собирался просто удалить все старые версии, оставшиеся от предыдущих сеансов редактирования). Так случилось, что в этот день на диске не оказалось ни одного старого файла; DWIM решил, что в команде возникла опечатка, а подразумевалась команда delete *, Конечно, он тут же принялся уничтожать все файлы подряд, и незадачливый хакер смог его остановить [с помощью игры на нервах Вулкана (см. Vulcan nerve pinch)] только после того, как тот успел уничтожить несколько файлов. Как рассказывал этот хакер, весь день он боролся с искушением пойти в комнату Уоррена, привязать его к креслу напротив рабочего места и сладострастно дважды (!) набрать на его рабочей станции команду delete *$. Иногда про DWIM в шутку говорят, что это качество, желательное для любой сложной программы, иногда – что это единственная инструкция, которую должен иметь идеальный компьютер. В те времена, когда было модно доказывать корректность работы программы, успехом пользовались команды DWIMC (Do What I Mean, Correctly -- делай, что я подразумеваю, но только правильно) и DTRT (Do The Right Thing – делай Правильное Дело); см. Right Thing.