Ответ воображаемому филологу

Oct 27, 2023 22:15

Дорогая Наталья Викторовна!
Ваша статья «О современном языке российских программистов» (вышла в №6 нашего журнала за 2021 год - прим. ред.) - очень интересная и важная работа, необходимость в которой мы, программисты, испытывали уже давно, хотя мало кто из нас в этом признавался. Тем не менее, мне есть что добавить к этой статье, и с чем в ней не согласиться. Вы вплотную подошли к описанию актуальных проблем языка, на котором говорят программисты - но на самом деле они несколько другие.
В своей работе Вы обсуждаете статью «Валидационный фреймворк EDIAKAR: первая проба» с сайта ***.ru и утверждаете, что исследовали язык российских программистов на её примере. Безусловно, это вполне типичная статья, написанная на  образцовом программистском жаргоне - но Вы не только изучили её язык, Вы также поставили интересный эксперимент над собой, прочитав статью и поделившись её пониманием с нами. Иной мог бы сказать, что подслушивать чужие разговоры неприлично, а предъявлять претензии, что ничего не поняли, ещё и глупо - но это всё-таки не наш с Вами случай, мне Ваше мнение интересно. Языки программирования далеки от русского и иных естественных языков, но работа программиста, как ни странно, намного ближе к литературной. Во-первых, мы должны писать так, чтобы было понятно не только компьютерам, но и нашим коллегам - как программный код, так и подобные тексты; во-вторых, по замечанию Фила Карлтона, «в компьютерных науках есть только две сложные проблемы - аннулирование кэша и придумывание названий» - а второе есть работа почти литературная.
Итак, Вы оцениваете лексику программистов как довольно сумбурную и замусоренную лишними словами и в особенности иноязычными заимствованиями. Я не буду повторять известных аргументов в защиту заимствований  - в последнее время их было немало опубликовано - но приведу один новый. Вы возмутились следующим предложением: «Дерево обходится рекурсивно, и для каждого его узла валидатор по его типу (если тип является классом) ищется в кэше». Вы пишете, что смогли представить только крайне безумную картину: «почему на дереве вместо листьев узлы? Зачем обходить его снова и снова? Причём тут наличные деньги? Зачем искать среди них валидатор - оплатить проезд карточкой?...» (Я не буду вспоминать старую шутку про воображение поэта и математика) Однако, в этом предложении достаточно и исконно русских слов (как дерево и узел), и заимствованных давно и привычных нам (тип и класс), можно сказать, что они уже не ведут себя как заимствования. Теперь представим, что мы взяли никому не известный язык племени с далёкого архипелага и заменили все нужные нам термины заимствованиями оттуда. Получится что-то вроде «Дэдэ охохонится рэрэшно, и для каждого угуга по его тютюку (если тютюк является салаком) ищется вадава в шукше». Мы решили Вашу первую проблему - никакой безумной картины нет, потому что непонятно вообще всё. Но от этого не легче. Когда мы придумываем названия, переиспользуя старые слова для новых вещей, мы помогаем нашему воображению представить их, но рано или поздно обнаруживаем, что новые вещи ведут себя по-другому, и тогда высказывания о них из старых слов выглядят если не безумно, то забавно. Нормально ли это? В целом, ничего страшного нет - мы понимаем, что вещи другие.
А вещи действительно другие. Вы возмущаетесь: «как это - тип является классом? А может не являться? Разве тип и класс не одно и то же?» В контексте той статьи, в специфике применимых к ней языков программирования - нет. Вы же не скажете биологу, что тип и класс одно и то же - каждый знает из школьного курса биологии, что это таксоны двух разных уровней; вы не скажете физику, что сила, мощность и энергия одно и то же - это термины для трёх разных понятий, хотя на бытовом уровне эти слова почти взаимозаменяемы, и тут неважно, употребляется ли научный термин метафорически, или наука взяла несколько похожих бытовых слов и разделила их строгими определениями. Я не скажу Вам, что звук и фонема одно и то же, или сюжет и фабула, или что-то ещё. Можно не знать терминологии чужой сферы деятельности (пусть это и не наука), но всё-таки должно быть понятно, что в незнакомых областях может быть вот так. И так может оказаться для очень многих, казалось бы, простых вещей: даже «митинг» в гибких методологиях разработки это не совсем «встреча» или «совещание», это совещание, проводимое в определённом режиме по определённым правилам - и для этого термина лучше заимствовать слово, чем использовать русское. Вы пишете, что вместо «фреймворка» можно использовать такие слова, как «каркас», «основа», «рама» - но, во-первых, слово давно прижилось, во-вторых, мне кажется, вы не совсем представляете, как в среду (и язык) программистов проникают новые слова. Нет такого, что один программист первым видит слово в иноязычном тексте, и мог бы не полениться заглянуть в словарь и найти его перевод. Общение между программистами (в том числе путём написания статей на ***.ru) происходит по-другому: как правило, несколько программистов, которые сами прочитали англоязычные тексты в оригинале, даже не переводя их в уме, говорят о знакомом им по оригиналам понятии, и им проще использовать термин оттуда без перевода, чтобы понять, что говорят об одном.
Здесь мы переходим к первой проблеме, которую Вы не очень заметили - проблеме с источниками знаний. Вы пишете, что стиль той статьи ненаучен, легковесен, развязен и фамильярен, а цитаты и шутки совершенно неуместны. С одной стороны, это и не научный журнал или книга, и можно сказать, что требования научного стиля к статье не относятся. С другой, статья как раз выполняет научную функцию - сохранение и передачу опыта, и огромную часть знаний (помимо оригинальных инструкций к инструментам) программист получает из подобных статей. Увы, за всё время работы коллеги ни разу для пополнения моих программистских знаний не протянули мне экземпляр российского научного журнала - хотя такие выходят, но эту функцию они не выполняют. Тема конкретно этой статьи, по-моему, скорее ненаучна, но в журналах можно найти и менее научные тексты, представляющие собой отчёты о программистской работе, интересные только её заказчику. Но в любом случае, если бы редакциям научных журналов было интересно печатать статьи такого содержания, мы увидели бы обсуждаемую Вами совсем в другом стиле, и я уверен, автору бы это удалось. Каким бы ни был его стиль, за ним проглядывает умение ясно излагать свои мысли, соблюдать баланс между подробностью и краткостью, структурировать текст. Автор написал статью, исходя из своих представлений, не без желания быть нескучным, понравиться читателю, местами развлечь его - конечно, я бы написал статью по-другому, вместо цитат из Михаила Елизарова и Бранимира вспомнил бы других авторов, убрал бы слишком грубую шутку про «не суки, а девопсы», и статья удалась бы лучше - но это только моё субъективное мнение.
Вторая проблема как раз связана с передачей умения хорошо писать, и здесь я обращаюсь напрямую к Вам и Вашим коллегам. Мы, программисты, в большинстве своём не писатели, и да, многие из нас так себе пишут по-русски. Но учили ли нас решать наши языковые задачи, хорошо писать нужные нам тексты? В школе сочинения пишут на такие темы, что как будто готовят литературоведов и иногда мемуаристов, а ведь программистов должно выходить намного больше. У меня есть учебник «Русский язык и культура речи для технических вузов» (удивительно, что на мехмате МГУ такого не было, как и самого предмета - учебник потом подарили друзья), он хороший, но ответов на многие вопросы не даёт. Например, основной вывод главы о заимствованиях состоит в том, что их следует вводить, руководствуясь вкусом и чувством меры - но это очевидно и без учебника, а я не считаю свой вкус безупречным и меру оптимальной, мне нужны более конкретные советы. Вы, филологи, неравнодушны к языку, которым говорим я и мои коллеги, и вы могли бы нам помочь, однако, и прескриптивизм, строго следящий за исполнением однажды установленных правил, и дескриптивизм, бесстрастно наблюдающий за естественно меняющимся языком, одинаково трогательны заботой о ценности языка и научной честности соответственно, но, увы, одинаково бесполезны.
Что нам, программистам, нужно? Наверное, это можно назвать «эргономика языка» или «дизайн языка». Мне тоже не совсем нравится, наверное,  ужасно звучит, но может, вы, филологи, поможете подобрать более удачный термин. Да, нам надо в каком-то смысле менять язык, но язык и так меняется - каждый введённый термин дополняет лексику сначала языка узкой компании, потом, возможно, всего русского языка. Нужны новые правила - мы не будем обещать всегда соблюдать их, но мы знаем, что они нам помогут. (У нас есть свои правила писать программный код в хорошем стиле, и они для нас не то, что запрещает работать как хотим - это полезные инструменты для наших целей). Как строить терминологии и классификации? Как подбирать слова, чтобы они легко запоминались и различались на слух? Как выбирать между длинными, но содержательными названиями («Министерство по изготовлению, хранению, транспортировке, проверке…») и краткими, но условными («Третье отделение»)? Как не смущать своими статьями филологов? Эти вопросы ещё не собраны у программистов и не все сформулированы ими, но ответы на них составят очень нужную нам науку. Возможно, такая наука уже есть, но я совершенно не представляю, как её найти - и новому поколению для этого понадобится новый учебник.
А пока мы пишем по-русски кое-как, по наитию, копируя как можем понравившиеся нам образцы. Но я надеюсь, что неизвестные мне пока стилистические знания помогут не только программистам, но всем, кто занимается какими-то серьёзными делами, и пишет и говорит об этом по-русски.

вопросы, преподавание, маюсь

Previous post
Up