А потом мы удивляемся, почему с программистами так тяжело общаться...
Действительно, почему?
Да потому! Потому что в самом начале одному человеку было влом напрячь мозги, и перевести с английского на русский именно по смыслу и по духу. Напрягать мозги - это тяжело! Гораздо проще и привычнее использовать шаблонное действие типа "взяли словарь, нашли там нужное слово - и подставили буквальный перевод".
За первым таким человеком нашёлся второй, третий и так далее (неудивительно, правда?). Процесс пошёл, и возвратом процесса стало ... Стоп, что-то как-то не по-русски получилось у меня, а? Не колет ли глаз, не режет ли ухо это "возвратом процесса"?
Эх, придётся напрячь мозги и вспомнить, что есть русские слова "выход, итог"...
Итак, процесс пошёл, и на выходе процесса есть два разных смысловых наполнения для слов "возврат, возвращать". Одно из них правильное - "вернул именно то, что взял". Ему учат с детства. Мама говорит:
- "Леночка, верни Маше игрушку!
И Леночка должна отдать назад Маше именно куклу, и именно ту, которую она получила. Не волчок, не старого пупса без глаз и одной ноги - а именно эту новую куклу, которая так нравится Маше. Потому что сказали "верни/возврати", а не "дай".
И возникает второе смысловое наполнение, "программистское". Когда "возвратить" - это Леночка взяла красивую куклу, а назад протянула руку с плюшевым медведем или вообще послалатут_поработала_цензураnull в ответ.
Можно понять самых первых авторов языков программирования, которые решили использовать return как ключевое слово. Они говорили и ДУМАЛИ на английском языке. Можно было описать функцию как аналогию работы цеха или производства, с комплектующими/материалами на входе и продукцией - на выходе. Это бы точнее описывало суть.
Но англичане - нация торговцев. У них даже язык подстроился в процессе своей эволюции, чтобы торговать было удобнее. Что уж тут удивляться, когда им показалось удобным представить функцию как аналогию сделки "ты мне, я - тебе". И вотитог работы функции - это return, а не output или product.
Довольно грустно, что единожды неверно принятая терминология не только не была пересмотрена/исправлена, а наоборот - укрепилась. Уже на курсах людям в головы закладывается. И вместо "функции с выводом значений", или "функции с итоговыми значениями" или даже "функции со значениями на выходе" - тема называется "функции с возвратом значений".
Нам ведь приходится постоянно общаться с разными людьми, в том числе с теми, кто "будет принимать решения в отношении нас". И вот ведь незадача - такие люди не "ботают по программистской фене".
Так зачем культивировать жаргон там, где можно прекрасно обойтись без него?