Влияет ли родной разговорный язык на качество кода?


9

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

Работая с различными международными командами разработчиков, я ясно вижу ментальную культуру (если хотите) в базе кода. Помимо языка программирования, немецкое кодирование сильно отличается от моих коллег в Индии. Кроме того, код заметно отличается в Средней Америке, как и в Прибрежной Америке (фактически, IBM заметила это несколько лет назад).

Вы замечаете со своими международными коллегами (из ЛЮБОЙ страны), что стиль кодирования и решения проблем соответствуют родным языкам?


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

Как вы узнаете, вызваны ли различия родным языком или культурным прошлым?
Mouviciel

@mouviciel, оба они в основном неразделимы, однако я не случайно вижу, что синтаксис разговорного языка определяет семантику языка программирования; Пример Германии ниже в моих комментариях только один. Я вполне отчетливо вижу разницу в стиле кодирования даже между регионами США, несмотря на в значительной степени похожий язык, который (как вы заявили) должен в большей степени относиться к культурным различиям.
Jé Queue

Ответы:


5

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


1
Понимаете, я считаю, что перевод родного разговорного языка (и мыслительного процесса) на другой язык программирования имеет разные материальные результаты. Не хорошо или плохо в любом случае, просто совсем другое. Я отмечаю большое количество объявлений кучи / глобальной переменной и подготовку данных, а затем наборы процедурных вызовов немцами против американцев, которые стремятся встроить или анонимно использовать переменные / функции по мере необходимости. Конечные результаты = одинаковые, просто разные подходы.
Jé Queue

+1 для умного резюме Окончательные результаты = то же самое, только разные подходы
Zerotoinfinity

3

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


6
Я тоже, отсутствие орфографических ошибок является сильной подсказкой. :)
biziclop

3

Вы замечаете со своими международными коллегами (из ЛЮБОЙ страны), что стиль кодирования и решения проблем соответствуют родным языкам?

Абсолютно. Это сложный факт. Цепочка причинно-следственных связей, однако, сложнее.

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

Культура и религия оказали влияние на формирование и развитие местного языка (языков).

Культура и язык оставили свой след в модели общества для этой конкретной этнической группы.

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

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


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

  1. Планирование всего заранее и на длительный срок - это образ жизни. Вечерние встречи с друзьями могут быть запланированы за недели и месяцы. Молодые люди уже заботятся о своем выходе на пенсию (страхование и т. Д.). Качели настроения, импровизация, готовность и способность приспосабливаться к ходу очень низки. Естественно это переносится на способ работы. Планирование и порядок играют большую роль. Быть проворным считается исключительной характеристикой современного человека / команды с прогрессивным мышлением. Однако большинство гибких процессов, которые я наблюдал в немецких командах, больше похоже на машинное выполнение предопределенных шагов (даже если люди действительно стремятся быть гибкими), но не как дух гибкости как таковой.

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

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

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

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

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

  7. «Спасение лица» кажется очень важным, чтобы казаться успешным, чтобы не показывать признаки слабости или неудачи кому-либо еще (если у вас есть, это почти наверняка будет использовано против вас). В трудовой практике признать неудачу достаточно сложно, люди делают все, чтобы не «потерять лицо». Брать критику тоже сложно. Критика кого-либо (по уважительной причине или нет) - верный способ сделать врага. Сказать, что у вас на уме, не практикуется, что затрудняет понимание того, кто и где стоит.

Суть в том, хорошие исполнители, планирование и вершина графика, точность хороша. Инновации и креативность, однако, не ожидаются.


Второй пример касается русской культуры, к которой я принадлежу. Это совсем другое.

  1. График и планирование не имеют особой ценности. Незначительные отклонения не касаются людей, если только / пока это не станет угрожать большему результату. Людям не нравится жить по плану, они предпочитают психическую свободу, делают все, что им нравится, и когда им хочется. В программировании они могут игнорировать «несущественное», например, написание документации и бумажную работу. Людям намного легче приходить и уходить, если им скучно от проекта, не нравится атмосфера и так далее. Долгосрочные обязательства на всю жизнь не ожидаются, люди не хотят быть связанными, не ожидают, что они придут однажды и останутся до пенсии. Это хорошо видно на рынке мобильных телефонов. В то время как в Европе / США повсеместно иметь двухлетние контракты, в России это не практикуется. Люди не

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

  3. Затраты не так важны. Людям нравится получать что-то более новое, более прохладное, более интересное и более современное без каких-либо бизнес-обоснований. Если это обеспечивает удовлетворение, они обычно не будут обеспокоены дополнительными затратами.

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

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

  6. Рецепт и правила часто игнорируются и даже презираются, люди могут сделать что-то совершенно другое, если они будут убеждены, что это будет лучше (или круче - не сможет противостоять этому). Многие решения сверху будут подвергнуты сомнению и обсуждению. И да, у всех есть твердое мнение обо всем.

  7. Предсказуемость жизни довольно низка, поэтому люди всегда планируют любые непредвиденные обстоятельства. То же самое часто отражается в коде, скорее в пессимистическом отношении, с двойными проверками и запасными планами. Архитектура может отражать готовность к возможным будущим изменениям, но не астронавтоподобная сверхархитектура. Agile - это не современная методология, а образ жизни. Также люди привыкли к изменениям и не пытаются контролировать каждый аспект своей жизни. Когда случается что-то неожиданное, люди просто кивают, говорят: «В следующий раз будет лучше» и продолжают двигаться, не сходя с ума, не начинают пить, принимать наркотики и т. Д. Провал проекта не приводит к самоубийствам, его легко воспринимать.

  8. Политкорректность низка, поэтому люди могут просто сказать, что они думают заранее, когда вы этого не ожидаете. Будь готов.

Другой итог: ожидайте неожиданного, чего-то необычного и творческого, но не ожидайте точности машины, графика и следования правилам.


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


1
Спасибо за неофициальные комментарии. Я вижу, стиль сильно повлиял, и интересно читать ваши комментарии.
Jé Queue

Несмотря на то, что в ваших наблюдениях за немцами есть доля правды, мне пришлось ее -1, потому что вы упомянули обширные чрезмерные обобщения (Не все немцы такие, какими вы их описали - я полагаю, то же самое для русских).
Яс

Черт возьми, это звучит как воплощение концепций «Классика» и «Романтика» из книги «Дзен и искусство обслуживания мотоциклов» для двух целых групп населения! Удивительно.

2

Я не уверен в качестве кода, но уверен, что каждый программист выполняет свою работу по-своему.

Говорят, что естественные языки влияли на наше мышление (поэтому я предполагаю, что это повлияет на программирование), эта школа мысли привела к разработке искусственных языков с различными парадигмами в попытке доказать это: например, Логлан . Я не знаю, получилось ли многое из этого.

Однако я уверен в том, что образование (в котором язык играет роль, но другие вещи тоже играют роль) определенно влияет на точку зрения человека на конкретную проблему.

У меня есть коллеги, которые ходили в «технические» школы, и изучали весь C / C ++, будучи в школе, и у них, как правило, был технический подход к решению проблем, в то время как у меня была склонность сидеть сложа руки, думать об этом (иногда в течение хорошего времени) прежде чем я почувствую, что у меня достаточно глубокое понимание, чтобы добраться до него ... и все же мы выросли в одной стране (в основном), говорим на одном языке и более или менее придерживаемся той же культуры (просто различное образование).

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

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


+1 за указание на то, что индивидуальность гораздо важнее национальности.
Яс

1

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

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

Было бы лучше, если бы вы могли собрать некоторые другие атрибуты авторов: возраст, образование, промышленность и т. Д.


Я не уверен, что смысл некоторых ваших утверждений. Ты хочешь сказать, что НЕ веришь, что родной разговорный язык влияет на подходы к решению проблем в программировании?
Jé Queue

1
Да, я не верю, что язык влияет. Я думаю, что «национальный характер» имеет большее значение. И я думаю, что этот «национальный характер» не является хорошим названием, «культурное влияние» должно быть лучше (и, по крайней мере, меньше кажется / расистским). Подумайте только о мегаполисе с деревней, мы - кошмар коммунизма, которому не хватает 40 лет, - против демократии на 200 лет.
ern0

Он сказал, что вы должны воспринимать ВСЕ, а не только семантику языка, исключая все остальное. Поднимите голос человека, чтобы хотя бы противодействовать невежеству некоторых людей.
Филипп Дупанович

+1. Я живу в Австрии, мы здесь говорим по-немецки, но типичный стиль кодирования моих немецких коллег радикально отличается от стиля моих австрийских коллег.
user281377

0

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

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


0

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

Так что, если есть языковой эффект (в чем я лично сомневаюсь, исходя из моего опыта), он омрачен стилем обучения.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.