Как называют переменные в разных странах
Сегодня коллега, который проводит дохрена технический собесов поделился инсайдом. Мол кандидаты из Южной Америки часто называют временные переменные aux
, а вот кандидаты из Восточной Европы - temp
. Такая вот этнография.
Прикольно. Для меня aux
это дырка в которую можно что-то вставить.
А в чем дело-то?
Причины могут быть в языке и в традициях обучения.
Южная Америка и «aux»
Во многих странах Латинской Америки (а также в Испании и Португалии) обучение программированию ведётся на родном языке. Слово auxiliar
(испанское) или auxiliar/auxiliaridade
(португальское) переводится как «вспомогательный».
Поэтому сокращение aux
— это естественный выбор для временной переменной. Многие учебники и преподаватели прямо используют aux
в примерах.
Восточная Европа и «temp»
В странах Восточной Европы (Россия, Польша и др.) учебные материалы часто брались с английских источников или напрямую переводились, но при этом терминология частично сохранялась.
В англоязычных книгах традиционное имя временной переменной — temp
(от temporary
). В итоге это закрепилось как привычка.
Ещё один фактор — русскоязычные (и в целом восточноевропейские) программисты исторически чаще учились по книгам на английском, чем по локализованным методичкам. Хотя и методичек особо таких и не было.
То есть это, по сути, отражение того, на каком языке преподавали первые курсы информатики и какие примеры попадались студентам.
Такие мелочи могут «маркировать» культурный бэкграунд разработчика не хуже акцента в речи.
Давай разберем другие страны
Китай
- В учебниках и коде часто встречается
tmp
(это короче чемtemp
). arr
почти всегда вместоarray
.- Булевые переменные часто называются
flag
. - Комментарии «中英混合» — смесь китайских и английских терминов:
// 计算 sum
total = total + arr[i];
- В олимпиадном коде часто встречается
ans
иvis
(visited).
Западная Европа / США
- Стандартные учебные названия:
temp
,foo
,bar
,baz
. - В учебниках на джава и питоне для временных значений часто используют
value
илиval
. - В научном и численном коде — переменные
x
,y
,z
,dx
,dy
(от физики и математики).
Восточная Европа / Россия
- temp как временная переменная (от англ. temporary).
- buf вместо buffer (сильно закрепилось ещё с ассемблеров и C-шных примеров).
- cnt для счётчиков (counter) — иногда даже вместо i/j/k.
Переменные res (result) и ans (answer) очень популярны в олимпиадном программировании.
Комментарии часто начинаются с // !!! или // FIXME: на смеси русского и английского.
Ближний Восток
- В арабоязычных странах иногда встречается
mosa3ed
(مساعد = помощник), но чаще используют англоязычныеtemp/aux
. - Комментарии миксуют латиницу и арабицу, например:
// calculate المجموع
// check if الشرط
// temp متغير
Индия
- temp тоже стандарт, но часто встречается flag для булевых переменных (очень широко).
- В комментариях любят писать // logic или // main logic, даже если код очевиден.
Названия переменных иногда из «хинди-английского микса» в учебных проектах: num1, chotu (маленький), bada (большой).
В целом получаем:
- Испаноязычные/португалоязычные —
aux
. - Восточная Европа —
temp/buf/cnt/res
. - Англоязычные —
temp/foo/bar
. - Китай/Индия —
tmp/flag/arr/ans
.
Короче вся это тема — маленькие «акценты» кода. Про 1Сников писать уж не буду, сами все знаете как они переменные называют.
Не смею больше отвлекать, хороших тебе выходных!