Чи впливає рідна розмовна мова на якість коду?


9

У лінгвістиці існує школа думки, що розв’язування задач дуже пов'язане з синтаксисом, семантикою, граматикою та гнучкістю власної рідної розмовної мови.

Працюючи з різними міжнародними командами з розвитку, я чітко бачу ментальну культуру (якщо ви хочете) в кодовій базі. Якщо програмувати мову вбік, німецьке кодування сильно відрізняється від моїх колег в Індії. Крім того, код помітно відрізняється в Середній Америці, як і в Прибережній Америці (насправді IBM це помітив років тому).

Чи помічаєте ви разом зі своїми міжнародними колегами (з будь-якої країни), що стиль кодування та вирішення проблем узгоджуються з рідними мовами?


Можливо, є деякі відмінності, але те, що я знаю, - це погані програмісти з кожної країни.
ozz

Як ви знаєте, чи різниці викликані рідною мовою чи культурним походженням?
mouviciel

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

Відповіді:


5

До цього мого досвіду я помітив, що мій рідний товариш по роботі робив ту саму роботу порівняно з немісцевою. Питання виникає, коли вони намагалися пояснити поняття чи вимогу. Інакше я вважаю, що ім'я синтаксису не грає великої ролі, поки ви не прочитаєте, що вони роблять з нетерпінням. Після того, як програміст набуває знань синтаксису, він не рахує, яке саме значення має слово, яке використовується для синтаксису.


1
Дивіться, я вважаю, що переклад рідної розмовної мови (і процесу мислення) на іншу мову програмування має різні матеріальні результати. Не добре, чи погано, або зовсім інше. Я зазначаю, що багато декларацій купи / глобальних змінних та підготовки даних, а потім набори процедурних викликів німців проти американців, які прагнуть вбудовуватись або анонімно використовувати змінні / функції в міру виникнення потреби. Кінцеві результати = те саме, просто різні підходи.
Черга Jé

+1 за розумний підсумок Кінцеві результати = те саме, просто різні підходи
Zerotoinfinity

3

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


6
У мене теж відсутність орфографічних помилок - сильна підказка. :)
biziclop

3

Чи помічаєте ви разом зі своїми міжнародними колегами (з будь-якої країни), що стиль кодування та вирішення проблем узгоджуються з рідними мовами?

Абсолютно. Це важкий факт. Однак причинно-наслідковий ланцюг є складнішим.

Регіон, його екосистема, погодні умови, рослинні та тварини вплинули на розвиток місцевої культурологічної релігії, що є її частиною.

Культура та релігія вплинули на формування та розвиток місцевої мови.

Культура та мова залишили свій слід на моделі суспільства для даного конкретного етносу.

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

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


Якщо говорити про приклади, я можу дати вам два. Якщо ми візьмемо Німеччину там, де я зараз проживаю, я спостерігаю певні закономірності.

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

  2. Передбачуваність всього - норма життя. Люди звикли знати, що буде, де і коли. Це тягнеться від повсякденного життя над робочим стилем до особистих стосунків. Це можна побачити, наприклад, коли люди переходять дорогу. Вони чекають зеленого світла і починають рухатись, не дивлячись, чи машини насправді зупинилися - тому що вони очікують їх. Люди пишаються тим, що змогли контролювати кожен аспект свого життя. Однак, коли життя повертається з чимось несподіваним, коли речі виходять з-під контролю, люди начебто вироджуються. Якщо я перейшов до програмування, я бачив, що кодування робиться досить оптимістично, ніякої одержимостіз перевіркою введення, сторонніми ключами для перевірки цілісності даних тощо. Крім того, немає додаткової інженерії, яка б зберігала код до певної міри, стійкого до відмов і адаптована до певних майбутніх змін, просто щоб задовольнити сьогоднішні очікування (які, напевно, не вірять).

  3. Економія грошей та оптимізація їх витрат є надзвичайно важливими для культури. Це відображено на артефактах роботи. Характеристики та якість відповідають плануванню, але не раптом їх перевищують (щоб зробити його крутішим чи просто «на всякий випадок»). Інша сторона гри - небажання вкладати гроші в сучасне обладнання та програмне забезпечення, перевлаштовувати робочий код, переробляти його, робити речі кращими лише для того, щоб відповідати поточному стану речей, готуватися до майбутнього. Оскільки негайного виграшу немає і ніхто не платить за зміни, ніхто фактично не збирається рухатися.

  4. Підприємництво та творчість досить низькі в культурі. Небажання ризикувати за власний рахунок високий. Результати роботи рідко несуть відбитки незвичайного, несподіваного, креативного. Люди, як правило, йдуть затоптаним шляхом, мало експериментують або незвично налаштовуються "з цікавості". Людям не подобається брати ініціативу в свої руки, особливо коли вони поєднуються з відповідальністю. Я також чув, що німці, які висаджуються в Нідерландах, іноді мають труднощі, оскільки люди там звикли працювати самостійно без чітких рекомендацій. Для програмування це означає, що мало експериментувати з новими мовами, інструментами чи бібліотеками, нові версії не приймаються з-за страху зміни. Люди беруть дизайнерські зразки і сліпо застосовують їх, оскільки їх так вчили в університеті і не ставлять під сумнів їхню застосовність.

  5. Функція над модою. Це спостерігається в повсякденному житті. Поширений міський стиль, дизайн будинків, прикраса вулиць, все зводиться до мінімуму, необхідного для його функціонування, але зазвичай нічого не тільки для стилю, краси. Програмуючи в розумі, це спостерігається у відсутності прекрасного дизайну інтерфейсу. Більшість корпоративних та особистих сайтів є досить старовинними та нудними. Ви також не можете переконати начальника та колег зробити якісь полірування, оскільки вони не бачать відчутних переваг.

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

  7. "Збереження обличчя" здається дуже важливим, здаватися успішним, не виявляти ознак слабкості або невдачі нікому іншому (якщо у вас це майже напевно буде застосовано проти вас). У трудовій практиці визнання невдачі приходить досить важко, люди роблять все, щоб не «втратити обличчя». Приймати критику теж важко. Критикувати когось (з доброю причиною чи ні) - вірний спосіб зробити ворога. Говорити про те, що людина має на увазі, не практикується, що ускладнює розуміння того, хто стоїть де.

Підсумок є, хороші виконавці, планування та графік зверху, точність хороша. Інновацій та творчості, однак, не слід очікувати.


Другий приклад стосується російської культури, до якої я належу. Зовсім інакше.

  1. Графік і планування не здаються особливою цінністю. Незначні відхилення не стосуються людей, якщо / поки це не загрожує більшим результатом. Люди не люблять жити за планом, віддають перевагу душевній свободі, роблять все, що їм подобається, і коли їм здається, що роблять їх. Програмуючи з розуму, вони можуть ігнорувати "неістотне", як написання документації та ведення паперових робіт. Людям набагато легше приїжджати та їхати, якщо їм нудно проект, не подобається атмосфера тощо. Довготривалих зобов'язань у житті не слід очікувати, люди не хочуть бути прив’язаними, не очікують, що вони прийдуть один раз і залишаться до виходу на пенсію. Це добре видно на ринку мобільних телефонів. У той час як в Європі та США всюди є контракти на 2 роки, в Росії це не практикується. Люди не '

  2. Люди не люблять бюрократію і воліють неформальні стосунки. Практично без паперової роботи, як можна менше дискусій та зустрічей, просто виконайте роботу. Складність коду не подобається, переважні прості рішення та прямі способи. Нудна рутина не прихильна. Деякі "несуттєві" завдання, такі як коментування та документація, можуть ігноруватися. Люди можуть відкласти певні нудні речі, а натомість робити більше цікавих речей або робити нудну частину несподіваним чином, що зробить їх мотивованими.

  3. Витрати не так важливі. Людям подобається отримати щось нове, крутіше, цікавіше і сучасніше просто так, без ділового випадку. Якщо це забезпечує задоволення, вони, як правило, не вирішать додаткових витрат.

  4. Люди дуже в захваті від усього. Їжа, музика, одяг, артефакти та ідеї з різних країн та культур потрапляють через відкриті двері. Люди, які програмують, експериментували з новою мовою, інструментом чи бібліотекою просто так, з цікавості, з діловим випадком чи без нього. Різні філософії та методології, все із задоволенням береться, торкається, кусається, експериментує та змішується разом у прикольній формі.

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

  6. Рецепти та правила часто нехтують і навіть зневажають, люди можуть зробити щось зовсім інше, якщо вони переконають, що це буде краще (або крутіше - не може протистояти цьому). Багато рішень згори будуть поставлені під сумнів і сперечаються. І так, у всіх є рішуча думка майже про все.

  7. Передбачуваність життя досить низька, тому люди завжди планують будь-які надзвичайні ситуації. Те саме часто відображається в коді, скоріше песимістичне ставлення, з подвійними перевірками та резервними планами. Архітектура може відображати готовність до майбутніх можливих змін, але не астронавт, як надпрофільне навчання. Agile - це не сучасна методологія, а спосіб життя. Також люди звикли до змін і не намагаються контролювати кожен аспект свого життя. Коли трапляється щось несподіване, люди просто кивають головою, говорять, що «наступного разу стане кращим» і продовжують, не роздумуючи, починаючи пити, наркотики тощо. Невдача проекту не призводить до самогубств, приймається легко.

  8. Політична коректність низька, тому люди можуть просто сказати, що вони думають наперед, коли ви цього не очікуєте. Будь готовий.

Інший підсумок - очікуйте несподіваного, щось незвичне та креативне, але не сподівайтесь на машинну точність, графік та дотримання правил.


Хто краще, не можна легко відповісти. Один вид роботи краще охоплюється однією категорією працівників, а інший - іншою. Погано, якщо люди ставлять неправильні завдання для свого менталітету. Я вважаю, що визнання цієї проблеми для менеджера міжнародної команди є викликом. Я не впевнений, що це коли-небудь обговорювалося із застосуванням до ІТ-індустрії.


1
Дякуємо за анекдотичні коментарі. Я бачу, що стиль дуже вплинув, і цікаво читати ваші коментарі.
Черга Jé

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

Боже, це звучить як примірник "класичної" та "романтичної" концепцій з книги "Дзен та мистецтво технічного обслуговування мотоциклів" у двох цілих групах населення! Дивовижний.

2

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

Кажуть, що природні мови впливали на наше мислення (тому, я думаю, це вплине на програмування), ця школа думок призвела до розвитку штучних мов з різними парадигмами, намагаючись довести це: наприклад, Логлан . Я не знаю, чи багато з цього вийшло.

Я впевнений, однак, це те, що освіта (в якій мова відіграє певну роль, але й інші речі), безумовно, впливає на точку зору на певну проблему.

У мене є колеги, які ходили до "технічних" шкіл і вчилися кишці C / C ++ в школі, і вони, як правило, мають технічний підхід до проблем, в той час як у мене є тенденція сидіти, думати про це (іноді на добрий час), перш ніж я відчуваю, що я досить глибоко розумію, щоб дістатись до нього ... і все ж ми були вирощені в одній країні (здебільшого), розмовляємо тією ж мовою і маємо більш-менш таку ж культуру (просто різний рівень освіти).

Мій єдиний досвід роботи з "іноземними" колегами - це іспанець (два роки тому) та італієць (по сьогоднішній день), і вони обидва працюють більш-менш, як і решта команди (французька). Можливо, якби я зіткнувся десь із нелатинського походження, я міг би помітити різницю.

Як такий, я не впевнений, що мова є основною причиною відмінностей у стилі. Я думаю, що освіта та характер можуть мати хоча б такий же вплив.


+1 за вказівку, що індивідуальність набагато важливіша, ніж національність.
Яс

1

Це не мова, а якийсь культурний фон, "національний характер". Що, здається, працює в цілому (наприклад, англійці круті, німці точні і т. Д.), Але це не вдається для окремих людей.

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

Було б краще, якби ви могли зібрати деякі інші атрибути авторів: вік, освіта, галузь тощо.


Я не впевнений у суті деяких ваших тверджень. Ви говорите, що НЕ вірите, що рідна розмовна мова впливає на підходи до вирішення проблем у програмуванні?
Черга Jé

1
Так, я не вірю, що мова впливає. Я думаю, що "національний характер" налічує більше. І я думаю, що цей "національний характер" не є гарним ім'ям, "культурні впливи" повинні бути кращими (і, принаймні, менше здаються / є расистськими). Подумайте лише про сільський мегаполіс VS, що ми - просто 40-річний комунізм - кошмар проти демократії проти 200 років.
ern0

Він сказав, що ви повинні приймати ВСЕ, а не лише мовну семантику, виключаючи все інше. Прихильте чоловіка хоча б до протидії незнанню деяких людей.
Філіп Дупанович

+1. Я живу в Австрії, ми тут розмовляємо німецькою мовою, але типовий стиль кодування моїх німецьких колег кардинально відрізняється, ніж у моїх австрійських колег.
користувач281377

0

Рідна мова людини не впливає на те, як кодувати. Але вміти розуміти англійську, однак, є досить важливим, оскільки більшість книг з програмування, блогів, сайтів якості, таких як SO тощо., Як правило, англійською

Однак культурні відмінності можуть бути фактором. Університети різних країн можуть викладати з різних точок зору. Деякі країни можуть мати сильніший рухливий рух, ніж інші. Наприклад, японські фабрики відомі своїм худорлявим виготовленням, яке багато хто намагається копіювати, але не вдається, оскільки їм не вистачає розуміння основних цінностей.


0

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

Тож якщо є мовний ефект (у якому я особисто сумніваюся, виходячи зі свого досвіду), це затьмарюється стилем навчання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.