Езыг комментариев (часть 2)

Хотел, во-первых, выразить признательность всем, кто принял участие в опросе, а также немного прокомментировать ответы.
Результаты, в общем-то вполне ожидаемые – английский в каментах, как и ожидалось, рулит, но есть несколько соображений по этому поводу. Что касается ответа про “no comments” – очевидно, что его надо было вставить в опрос, хотя естественно, это провоцировало споры на тему “а писать ли каменты вообще”. Эта тема вообще достойна отдельного многостраничного холивара, который я пока не хочу затевать, поэтому остановлюсь на том, что комментарии все-таки нужны, весь вопрос в языке.

С аргументированными ответами “На английском (так как мой код читают специалисты, не владеющие русским)” согласен полностью – в интернациональной команде пользоваться национальными каментами недопустимо. Но что происходит в других случаях?

Итак, вот у меня есть достаточно сложный фрагмент кода (или например у меня есть правило использования Doxygen / Doc-O-Matic / …), к которому необходимо написать камент. Думаю, никто не будет спорить, что для большинства людей комментарий на родном языке будет более детально объясняющим предмет описания. В ситуации, если вы пишете комментарии для себя самого – то это ИМХО вообще становится непонятной формой мазохизма. Как способ совершенствования английского это еще можно допустить, если вы будете писать достаточно пространно, а комментарии будет читать человек, в совершенстве владеющий английским, который будет корректировать текст при наличии в нем орфографических и грамматических ошибок. Увы, такое, я думаю, встречается еще реже, чем вообще хорошие комментарии в коде.

Что мы получаем в итоге? Есть команда из нескольких (допустим, 10) программистов разной квалификации – от в совершенстве владеющего им лида, до студента 4 курса, который MSDN читает с трудом и предпочитает программировать методом полного перебора. Одни программисты тратят время на то, чтобы написать довольно куцые (по сравнению с родным языком) комментарии с кучей ошибок, а вторые – вчитываются в этот текст, чтобы попытаться понять, что же в итоге имелось в виду? Иногда это получается, иногда – нет. Смысла в таком мазохизме я не вижу никакого.

Итоговое резюме:

  • Если вам надо (ну или просто очень хочется), чтобы ваша команда писала комментарии на английском, подтягивайте его у всех до нужного уровня и фиксируйте ошибки в текстах.
  • Если ваша команда не предполагает интернационализации в ближайшие хотя бы 1-2 года, комментарии на русском могут помочь быстрее и проще разбираться в коде. В крайнем случае, если в будущем возникнет потребность, возьмите переводчика, который за несколько дней переведет написанное вами в английскую раскладку). Впрочем, этот вариант совершенно не запрещает использования английских общеупотребительных вставок, описания типов как HANDLE и т.п. слов.
  • digital_cucumber

    Лично у меня есть такая проблема с комментариями на русском: переключение контекста. Код, по сути, гораздо ближе к английскому – ключевые слова языка и имена классов/переменных/функций пишутся именно на нем.

  • belaz

    > возьмите переводчика, который за несколько дней переведет написанное вами в английскую раскладку

    В нашей деревне найти переводчика со знанием C++ нереально :-)
    Если только раздать наиболее владеющим английским языком программистам…

  • http://www.sdl.ru TSS

    В опросе сам участие не принимал, но лично у меня получается смесь english + russian
    “простые” вещи комментирую на инглише, “сложные” алгоритмы — на русском. А то сам запутаюсь =)

  • http://www.visual3d.net arilou

    У нас интернациональная команда, поэтому все комменты (да и просто коммуникации много) на английском. Помогает начинающим свой английский улучшать.

  • http://simsmen.livejournal.com/ simsmen

    >В опросе сам участие не принимал, но лично у меня получается смесь english + russian
    “простые” вещи комментирую на инглише, “сложные” алгоритмы — на русском.

    Поступаю так же. В опросе голосовал за: “Когда как (или затрудняюсь ответить).”

  • lenik

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

    во-вторых, если не принимать во внимание однодневные поделки (в т.ч. и игры =), у которых жизнь заканчивается с релизом, крупные проекты живут годами, и никогда нельзя сказать, кто будет их сопровождать и поддерживать через несколько лет, может быть индусы в бангалоре, а может быть какие-нить китайцы к тому времени созреют. Поэтому, единственно правильным считается писание комментариев на английском. Тем более, что до уровня пригодного для писания комментариев подтянуть язык можно за 1-2 месяца ежедневных занятий по вечерам (пробовал — знаю).

  • Dront

    Одной только проблемы с кодировками (в основном – они возникают в связке с cvs) уже достаточно, чтобы взять за правило писать комментарии на английском.
    Ну а уж если есть несколько платформ – то там еще и компиляторы странные попадаются, которые не парсят текст с не-латинскими символами даже в комментариях. (Справедливости ради – последний раз такой компилятор я встречал лет 6 назад и не в геймдеве… но осадок остался).

  • Sergei_am

    Если кадр не понимает английского достаточного для написания коментариев, мне очень интересно на какой планете тот кадр жил, как учился/готовился/оттачивал скилл. Особенно если в плане геймдева!
    Короче, писать комантарии на неанглийском – я уже все про ето сказал, в ЖЖ автора :)

  • gryz

    Ну еще на русском можно писать смешные коменты :)