Русскоязычному программисту тяжело. Смыслы программирования рождаются на Западе и потом переводятся на другие языки, и этот перевод часто страдает. А вместе с ним страдает русскоязычный программист.
Если на английском языке слова о программе - это просто слова, они более или менее точно передают мысль, то на русском языке - это поиск, судорожные движения понять, угадать, найти, не исказить и всё такое.
Это можно сравнить с картиной, когда хозяин ест за столом, и роняет крошки на пол, а его пёс вскакивает, бросается к крошкам, щёлкает пастью, потом крутится в поисках других крошек, и долго пытается найти ещё, слизывает мусор, а сами крошки либо попадают в пасть, либо оказываются затоптаны, либо вообще ложная тревога - псу показалось. Трогательное и жалкое зрелище.
Так что лучше уж учить господский "ангельский" язык и на нём говорить, думать и писать. Что большинство нашего брата программиста и делает.
Кстати, про ангелов (последнее краткое отступление). Есть частное богословское мнение, что именно человеческий язык стал причиной падения ангелов и появления сатаны. Человеку была дана власть над вселенной, которая выразилась в том, что Человек дал имена всему творению (Божию), чему старший брат человека, ангел Десница, позавидовал и устроил сначала мятеж, а потом подставу с последовавшим изгнанием людей из рая. То есть дело в языке - чей язык важнее. Так что уж действительно: "в начале было слово".
И я хочу разобраться в словах "executable program" или "исполняемая программа" (файл, код). Что они значат?
Начнём с наличного перевода: "исполняемая программа" - это программа, которую исполняет машина. Вместе с устойчивыми выражениями "компьютер выполняет", "компьютер думает" в голове рождается картина, что компьютер - это разумное существо, которое соблаговоляет принять программу и её исполнить. Или нет, если программа с ошибками. Или исполнить, но с ошибками, если куда-нибудь попадёт жучок.
Надо сделать усилие воли, чтобы оторваться от этого образа мудрого старшего брата компьютера и никудышной программы, чтобы вспомнить, что вообще-то компьютер - это просто тупая железяка (или "полупроводняка"), которая строго подчиняется приказам этой самой программы.
Машинный приказ состоит из 3х чисел (вольное изложение ассемблера):
номер узла обработчика (процессора) (примеры узлов: "читатель переменной", указатель приказов, вычитатель),
обрабатываемое число №1 (адрес переменной, сдвиг адреса к другому приказу, уменьшаемое),
обрабатываемое число №2 (адрес регистра, не нужно, вычитаемое).
Такой трех-числовой приказ полностью управляет всеми действиями машины через её главную часть - обработчик (приказов), процессор, "мозг". (Хотя "мозгами" у нас раньше называли ещё и память RAM, почему бы?...)
То есть, на самом деле то, что называется "executable program", она же ".exe" - это буквально "управляющая программа".
А буквально выражение "executable program" означает: "выполнимая программа" (ассемблерный код, а отличии от си-шного или другого расчётного кода). То есть та запись, которую компьютер может выполнить, но с лёгким английским намёком на субъектность компьютера, на его разумность и искусственную интеллектуальность. Наверняка, в английском есть синоним слова executable, который не содержал бы этого намёка, но идея "разумного компьютера" очень мила английскому тьюрингованному сердцу.
Вот за этим смыслом и рванул преданный друг человека русский переводчик, и в итоге вместо точного (с тонким намёком на субъектность) перевода "выполнимый" - "который может быть выполнен процессором" - получился "исполняемый файл". То есть "может быть и не исполнен", как решит компьютер. Вот итог собачьего рвения найти и подобрать все крошки смысла.
В итоге уравновешенный термин "выполнимая" превратился в озадачивающий "исполняемая", хотя по сути - "управляющая".
Я понимаю, что тру-программисты говорят просто: "экзэшник", или просто говорят по-английски. Но если кто-то снизойдёт до краткого объяснения, то как правильно говорить? Традиционное "исполняемый" или как?
P.S. Слова "лучше уж учить господский <английский>" я говорю с горечью, но как единственный предлагаемый русскому программисту выбор (если слово "выбор" тут уместно).