Перейти к основному содержимому

1.06. Сленг

Всем

Раздел в разработке

Проблема сленга

Эта глава - важная необходимость, которая связана с особой специфичностью сферы. Вам придётся сталкиваться с множеством спорных решений по использованию слов, поэтому привыкайте к тому, что я буду бросаться в вас всевозможными терминами, сокращениями, аббревиатурами, англицизмами, жаргонными и сленговыми выражениями. Постараемся разобраться абсолютно во всём, но я хотел бы сначала рассказать о своём личном мнении на этот счёт.

В IT есть проблема, связанная с изложением информации, она включает в себя три основные составляющие - это англицизмы, жаргон и перегруженность ненужными терминами.


Что такое термин? Это слово или словосочетание, точно обозначающее специальное понятие в какой-либо области знаний, науки, техники, профессии. Используется в профессиональной или научной среде, имеет чёткое, узкое значение, часто не понятно непосвящённым без контекста. Порой термины заимствуют из других языков или культур. К примеру, это алгоритм, транзакция, индекс, хеш, рекурсия, интерфейс, стек, кэш (или кеш). Они необходимы для точной передачи сложных идей, и без них невозможно обсуждать технические детали. Но проблема возникает, когда термины становятся самоцелью, и используются там, где можно обойтись простыми словами.

Сокращение - это общее понятие, в основном любое укороченное написание слова или словосочетания.

Аббревиатура - вид сокращения, при котором берутся начальные буквы слов и образуется новое слово. Они бывают акронимами и инициальными аббревиатурами.

Акронимы произносятся как слова - «лазер» (Light Amplification by Stimulated Emission of Radiation), ЮНЕСКО и так далее.

Инициальные аббревиатуры произносятся по буквам - США, ЦРУ, IDE, API, SQL.


В IT встречаются и те и другие. Аббревиатуры экономят время и место, но требуют предварительного знания. Если вы используете DDL, DML, TCL, то вы должны быть уверены, что собеседник знает, что это значит. Проблема возникает тогда, когда придумывают новые аббревиатуры, которые совпадают с реальными. К примеру, ГК это Гражданский Кодекс или Группа Компаний? КК это кредитная карта, кредитный конвейер или что-то ещё? БП это бизнес правило или бизнес процесс? ТД это техническая документация или трудовой договор?

Проблема в том, что когда каждый день обсуждается что-то определённое, все понимают, что речь именно о чём-то конкретном, но об этом не знает новичок! Сейчас уже абсолютно каждая документация имеет глоссарий или раздел с терминами и сокращениями. Но согласитесь, если бы мы сами себе не усложняли речь и излагаемый материал, то и разделы эти значительно сократились бы. Всё это превращается в сленг с жаргоном.


Сленг - это неформальный, разговорный язык, характерный для определённой социальной группы, часто с упрощённой, ироничной или эмоциональной окраской. Он не является частью литературного языка, часто временный, быстро устаревает. Программисты, геймеры, студенты - они и «генерят» такие словечки - «задеплоил», «баганулось», «залил», «костыль», «фича» и тот же «баг». Сленг сближает людей внутри группы и характеризуется атмосферой неформальности, которая будет непонятной для внешних людей. Сленг неприемлем в официальной документации или обучении.

Жаргон - особая лексика, используемая в профессиональной, социальной или возрастной группе, часто с целью выделения «своих» от «чужих». Он более устойчив, чем сленг, часто связан с профессиональной деятельностью, включает как раз таки термины, сокращения, а также различные метафоры и сленг. Вне группы не всегда понятен, к примеру «задача ушла в бэклог», «PR не прошел ревью», «нужно поднять тикет». Это язык профессионального сообщества, который в теории своей помогает общаться внутри команды, но только до тех пор, пока он не вытесняет общий язык, иначе может стать инструментом отчуждения для новичков, менеджеров и клиентов.

Псевдонаучный жаргон - это использование научно звучащих терминов, сложных конструкций и заумных формулировок для описания простых или очевидных вещей с целью создать иллюзию глубины, сложности или профессионализма. Часто не несёт новой смысловой нагрузки, используется для впечатления, а не объяснения. Содержит лишние термины, англицизмы, аббревиатуры. Может быть намеренным (чтобы выглядеть умнее) или даже бессознательным (привычка среды). Это главный враг ясности, мешающий пониманию, отпугивающий новичков и создающий ложное впечатление сложности. Маскировка под профессионализм.

Знаете, когда использовать псевдонаучный жаргон выгодно? Когда нужно простую задачу преподнести под соусом «о-о-ой, это очень сложно». Можете поэкспериментировать с нейросетями и усложнять текст снова и снова. Если вы учились в вузах, то наверняка сталкивались с системой «антиплагиат» и каким-то бредовым подходом с генерацией воды, когда от простой темы, которую можно изложить в двух-трёх абзацах, требуется 30-90 страниц. Воды становится как в океане, и люди используют это в профессиональной деятельности.


Англицизм - это заимствованное из английского языка слово, выражение или грамматическая конструкция, используемая в другом языке (в нашем случае, в русском). Они бывают лексические, грамматические и суффиксальные.

Лексический англицизм - это заимствованные слова - юзер, баг, фича, дедлайн, митинг, офис.

Грамматический - кальки с английского «я сенднул файл», «они деплоят билд».

Суффиксальные - слова с английскими суффиксами - «авторизейшен», «оптимизейшен». Часто грамматически неправильны в русском.

Представим себе ситуацию. Вы успешно прошли вполне адекватные технические собеседования на русском языке, показали хороший уровень знаний, устроились в новую компанию и приходите на первую встречу. Коллеги поприветствовали вас, и начинают обсуждать «Коллеги, всем привет! Он ласт вик у нас бипи упал на пятнадцать процентов мом, надо срочно подтянуть эсэлэй по элтиви. Пэ-эм и эр-о согласовали скоуп, юикс-юай сделает редизайн ситиэй, эф-е - рефакторинг легаси, бэ-е - оптимизация эндпоинтов, ку-а - регресс на стейджинг, девопс - деплой через си-ай-си-ди пайплайн. Срок - и-о-ди пятницы. Синхрон на дейли мит в десять по ютиси плюс три, блокеры в джире, аппрув через пиар в мейн, ревью минимум два элджитиэм. Не забываем про кипиай, о-ка-эр и ретров в фрайдей. Вопросы?»

Мне кажется, вы наверное, читая это, получили порцию боли. Это смешно и грустно одновременно, потому что все слова - реальные, и используются в компаниях ежедневно. Новичок не поймёт ни слова, хотя речь идёт о простых вещах, вроде «надо сделать лучше, быстрее». Никто не говорит по-человечески, потому что «так принято», «так быстрее», «так профессионально», что создаёт барьер для понимания, обучения и эффективной коммуникации. А представьте так работать? Это лишь самая база, рассказывающая общие вещи, как для начала проекта, в реальности будут обсуждать более глубокие вопросы, но псевдонаучный язык никуда не пропадёт!

На самом деле, сообщение было о том, как на прошлой неделе продажи упали на 15% по сравнению с прошлым месяцем, и нужно срочно улучшить качество сервиса, чтобы пользователи дольше оставались с нами. Менеджер продукта и владелец продукта договорились, что нужно сделать: дизайнеры переработают кнопки и интерфейс, чтобы их было легче заметить, фронтенд-разработчики перепишут старый код, бэкенд-разработчики ускорят работу серверных методов, тестировщики проверят всё на тестовом сервере, DevOps-инженеры развернут обновление через автоматизированную систему сборки и доставки. И сделать всё нужно к концу рабочего дня в пятницу. Каждое утро в 10:00 будем собираться на короткую встречу, и если что-то мешает работе - писать в систему задач, чтобы внести изменения в основной код - нужно отправить запрос на слияние и получить одобрение минимум от двух коллег. В пятницу будет встреча, где обсудим, что получилось, а что нет.

И что, неужели так сложно общаться обычным, человечески дружелюбным русским языком, или нужно показывать, какие мы «сложные» в IT и не просто так получаем зарплату? Вот это и есть проблема. Если вы не можете объяснить задачу без единого англицизма и сокращения - вы застряли в жаргоне. Речь звучит как шифр, хотя шифрование здесь вообще не к месту, не нужно. Фразы напоминают странный технический код, и это не шутка, ведь мы так забываем об основном предназначении речи - донесение информации простым и быстрым методом.

Не ругайтесь, конечно на коллег, и тем более не осуждайте руководителей, просто будьте готовы к такой работе. Можете начать с себя и относиться более внимательно к своему формату изложения информации. Мы живём в эпоху, когда простые идеи обёрнуты в сложную терминологию, а обычные действия называют «инновациями». Можно превратить любую простую фразу в невероятный массив терминов и сокращений.

У такого подхода есть своя история. Если к началу XX века лишь 10-15 процентов населения могло читать, и речь была очень простой и минималистичной, то сейчас почти каждый человек не испытывает проблем с чтением, информация очень доступна, и даже используется для определённых. В первой половине XX века основной задачей была пропаганда соответствующих ценностей, с целью омрачить идеологию соперников, и возвысить свою. Во второй половине военных конфликтов стало меньше, и начал развиваться бизнес, и в основном в англоязычных краях - США и Великобритания. Благодаря этому, в мире доминирует английский язык. В страны СНГ всё это пришло с опозданием, с конца 1980-х, и стремление «подражать» Западу стало своего рода модой, из-за чего и распространились англицизмы.

Поэтому да, англицизмы это не нужда, а мода, это не просто заимствования, а инфильтрация английского языка в русский, часто с нарушением грамматики, логики и здравого смысла. Почему я считаю, что это плохо?


Русский язык богаче английского по семантике, словарному запасу, возможностям. У нас есть отдельные слова для разных значений, а у англичан одно слово может означать несколько вещей. Далеко ходить не нужно - «red» будет и «красный», и «рыжий», «case» и «случай», и «корпус», и «дело», и даже «вариант». Но нельзя использовать одно и то же слово для всех случаев. Англицизмы звучат нелепо - «я сенднул тебе месседж», «дропнул твой инвайт». Мы что, не можем сказать «отправил сообщение» или «отклонил приглашение»? Это создаёт иллюзию профессионализма, но на деле заглушает смысл. Порой англицизмы вовсе ужасные - хак, краш, экземпл, бикоз, вин, поинт, форсинг. Часто встречаю такую ситуацию, когда человек использует кучу подобных слов, но не знает английский на уровне, чтобы их правильно использовать. Просто повторяют то, что слышали или видели.

Особый ужас - «эйшен», «жн». «Авторизация» как «авторизэйшен», не только нелепо, но и грамматически неправильно. Русский язык не допускает таких окончаний, и такие формы нарушают фонетику и вызывают смех у тех, кто знает язык.

Часто технические подходы переходят в речь. К примеру, менеджер может сказать «расскажи верхнеуровнево». Это означает «Объясни кратко, без деталей, покажи общую картину, суть, структуру или логику, не вдаваясь в технические нюансы». Антоним - нижнеуровнево, то есть с детализацией, пошагово, с указанием конкретных технологий, алгоритмов, кода и т.п. Корни термина — в компьютерной науке и инженерии, где часто используется понятие «уровень абстракции» (abstraction level).

В информатике всё строится иерархически:

  • Верхний уровень (high-level) - бизнес логика, опыт, архитектура;
  • Средний уровень (middle) - модули, компоненты;
  • Нижний уровень (low-level) - код, байт-код, память, процессорные инструкции.

Описание архитектуры микросервисов будет верхнеуровневой схемой, а разбор бинарного протокола - нижнеуровневым анализом. Со временем эти термины перекочевали из технической сферы в повседневную коммуникацию среди IT-специалистов.

Абстрагирование встречается в информатике, программной инженерии, системном анализе, и даже когнитивной психологии, ведь люди тоже мыслят иерархически (цель - шаги - действия). Поэтому, если вам сказали «На встрече с менеджерами говори верхнеуровнево — они не знают про Kafka», это будет намёк не углубляться в подробности.

Это лишь один пример, который показывает, как речь становится технической. Разумеется, в каждой компании могут быть свои подходы и стили.


Терминология

Англицизмы лишь первая проблема.

Вторая проблема - лишние термины. Люди часто придумывают сложные названия для простых вещей, чтобы показать, что они «в теме», и это не знание, а демонстрация, словом, показуха. Это опасно - путает новичков, замедляет обучение и создаёт иллюзию глубины. Молодой разработчик, читающий документацию, сталкивается с терминами типа «инвариантность», «делегат», «селектор», и ему становится сильно сложнее. Вместо того, чтобы объяснять, что такое «выделение памяти», говорят «аллокация», и человек должен запоминать новое слово, хотя это просто синоним. Порой слишком глубоко - допустим, «SWOT-анализ» это не сложный научный метод, а просто оценка плюсов и минусов.

Некоторые термины можно было бы и не придумывать.

AJAX - асинхронные запросы, и почему бы их так и не называть? Профилирование - вообще не связано со словом «профиль», оно подразумевает измерение производительности кода.

Code First / Database First / Model First, подходы к проектированию БД, которые можно было бы просто сказать, что «начинаем с кода / базы / модели», зачем отдельный термин для обозначения порядка действий?

Миграция, нормализация, денормализация - термины в контексте БД, которые фактически и так являются структурированием или оптимизацией. Придумано в академической среде, но практического значения не имеет.

Или кортежи, например, это просто группа значений. Очередное лишнее слово, которое звучит слишком математически. Подобных терминов сотни, какие-то спорные, какие-то нужные, но некорректно составлены. Всё это не сказать, что делает мир лучше. Почему так происходит?

Люди используют сленг, термины и сокращения, чтобы показать, что они «в курсе», что «им не зря платят». Это такая социальная игра, выдавать себя за эксперта. IT - это мировая сфера, и английский является языком технической документации. Но в Россиийской Федерации мы не обязаны говорить на английском - ребята, вы же общаетесь с русскоязычными коллегами, для чего все эти понты?

Open-source, или открытые сообщества любят придумывать новые термины, чтобы показать «новизну», «инновационность» и конечно назвать своё творение, чтобы закрепиться в истории. Это культура, но не необходимость. Как следствие, многие учебники и курсы научили людей говорить на сленге, а не на языке, и студенты сейчас учатся запоминать термины, а не понимать суть. Лично у меня были постоянные такие ситуации в начале карьеры в IT. К примеру, меня спрашивали, что такое кортежи, а я их уже много лет использовал. Или «что такое констрейны?» - я на тот момент уже много лет работал профессионально с БД, но, зараза, использовал именно слово «ограничения», а не какие-то «констрейны». Итог - минус вопрос, и ложное впечатление, что я не разбираюсь в вопросе, что довольно забавно.

Поэтому готовьтесь к подобной боли, но сами не играйте по этим правилам. Используйте язык, понятный вашей аудитории, если говорите с русскоязычными - говорите на русском. Не используйте англицизмы, если это возможно, и не вводите термины, если они не несут смысловой нагрузки. Учитесь отличать полезные термины от бесполезных. Есть полезные, широко принятые и не вызывающие путаницы, например, FTP, HTTP, IDE, БД, СУБД, 2FA, XSD. А есть и бесполезные, вроде CRUD, SWOT, паттерн, аллокация или кодогенерация. Это просто замены слов, мешающие пониманию.

Будьте честны с собой - если вы не знаете, что значит термин, не используйте его. Если вы используете термин, чтобы показать себя умным - перестаньте. Лучше почитайте книги. Если можете объяснить идею простыми словами - делайте это, а если не можете - возможно, сами не понимаете суть?

Но изучим мы всё, ведь наша задача узнать как можно больше.


Краткость и лаконичность в технологиях

Обычный пользователь привык, что перед ним есть интерфейс, где есть удобные названия, кнопки, а текст всегда полный. Пример - Windows с её «Панель управления», «Проводник», «Диспетчер задач» и так далее. Но у разработчиков всё превращается в непонятные три-четыре буквы. Это определённый принцип - краткость и лаконичность. Почему разработчики так любят сокращения?

Всё началось с эпохи ранних компьютеров, когда ресурсы (память, процессорное время) были крайне ограничены. Программисты стремились минимизировать количество символов, чтобы уменьшить размер программ, ускорить ввод команд, и сэкономить место на экране терминала. Пример - вместо полноценного слова list - ls, вместо copy - cp.

Unix-подобные системы (Linux, macOS) следуют принципам:

  1. Каждая программа должна делать что-то одно, но делать это хорошо.

  2. Программы должны взаимодействовать через текстовые потоки.

Эти принципы привели к созданию множества маленьких утилит с короткими именами, которые легко комбинировать.

Для опытных разработчиков сокращения удобны - быстрее вводить команды, легче запоминать короткие имена и меньше шансов допустить опечатку. К примеру, вместо того чтобы писать Advanced Package Tool, проще написать apt, или вместо Python Package Installer - pip.

Изначально, в 1960-1970-х годах компьютеры не имели графического интерфейса. Все операции выполнялись через командную строку. И очевидно - нужно упростить работу и быстрее набирать команду на клавиатуре.

Так появились языки программирования, которые стали использовать сокращения, к примеру int вместо «integer», str вместо «string», def вместо «define». Это стало стандартом, потому что все хотят сэкономить время.

Современные технологии продолжают эту традицию, и сокращения стали частью культуры разработки - их использование теперь воспринимается как профессиональный стандарт. Да, неподготовленному пользователю эти сокращения будут непонятны, а порой и имеется полное отсутствие очевидности, когда сокращение не отражает полное значение команды (например pip), а также имеется риск ошибок.

Поэтому важно использовать справочники и шпаргалки, практиковаться и регулярно читать документацию, и вдвойне важно для тех, кто работает с Linux, Git и Docker.

Среди подобных интересных явлений, можно ещё выделить магические элементы кода. Ладно если кратко и лаконично всё оформлено, но когда непонятно, хотя синтаксис соблюдён - то это уже сложно.

Магическое число (magic number) — это литерал (например, число 42, строка "admin"), которое появляется в коде без объяснения , и его смысл неочевиден. К примеру, указано «role = 3». Что означает 3? Это админ? Суперюзер? Или просто тестовый аккаунт?

Другой разработчик не поймёт (а вдруг это будем мы через полгода сами?) и непонятно, что за 3. Если значение нужно изменить, придётся искать все места использования. А при копировании числа легко ошибиться. Нужно говорить в названиях переменных, о чём речь.

В программировании термин «магический» может относиться к конструкциям, которые работают неочевидным образом, имеют особое значение для интерпретатора или компилятора, часто начинаются и заканчиваются на двойное подчёркивание. Это могут быть магические функции, методы, строки. В некоторых языках она часть стандарта, например init в Python. Так что здесь всё не так просто и очевидно, как кажется на первый взгляд, главное использовать это осознанно, и документировать.