IMHO, вообще, если мы посмотрим на привязки английских слов к английским, а русских к русским, то разницу увидим. Удалять — это не уничтожать, не освобождать, не разрушать. В русском удалять — это удалять, отодвигать далеко. Remove, в принципе, немного соответствует слову удалять. Потому что есть такие термины removable media, или ещё что-то. Но тут нет оттенка: разрушаемый носитель. Он именно удаляемый, вынимаемый всё такое.
Так что, remove и удалить — это нечто вроде 'убрать с глаз долой'. Поэтому, как бы и команда rm в UNIX — это же не стирание файла, а стирание ссылки на него из директории, типа — не хочу тебя видеть.
Delete — это другое. Это некая противоположность к let. И как раз носит смысл: разрушить, то что возникло, или стереть с доски, вычеркнуть из текста. Всё такое.
Опять же find и search они тоже не переводятся, как поиск, если искать смысловые привязки в английском. search — это нечто связанное с изучением, потому что research, или там научный поиск, или поиск решения. Это нечто такое, продолжающееся, не обязательно с нужным результатом. А find (второе значение основать) это нечто такое, связанное с получением результата, с обретением чего-то такого.
Вот. Можете поприменять это к программам. Мой опыт: не использую remove и delete. Использую такие выражения: form и drop. Первое от сформировать, что более соответсвует по смыслу созданию объекта в памяти, a drop — это выбросить, тоже вполне понятно, без всяких там тонкостей, да и смыслу более соответствует. Когда мы избавляемся от объекта в программе, то мы же не стираем его, не разрушаем память, в которой он находится, мы как бы просто забываем о нём, выбрасываем ссылку. Да и писать короче и ровнее: )
formSmth
dropSmth
Ну. И в программах и в своих структурах данных я всегда делаю find в структурах данных, а search — это скорее как существительное, и прилагательное, когда надо назвать нечто поисковое: searchbot или там linesearch (при распознавании образов).