Главная » Хабрахабр » [Перевод] Заблуждения программистов об именах — с примерами

[Перевод] Заблуждения программистов об именах — с примерами

В 2010 году Патрик Маккензи написал знаменитую статью «Заблуждения программистов об именах», перечислив 40 фактоидов, которые не всегда верны в отношении человеческих имён.

К сожалению, не совсем. Думаете, программисты сели, подумали и изменили обработку имён в компьютерных системах? Эти системы по-прежнему предполагают, что наши имена всегда можно записать символами алфавита, зачастую только ASCII.
Подозреваю, что статья Патрика оказала недостаточное влияние на индустрию в том числе потому, что в ней отсутствовали примеры каждого заблуждения. Нас по-прежнему повсеместно просят заполнить онлайн-формы, которые предполагают обязательное наличие имени и фамилии (причём именно в таком порядке). Но как бывший сотрудник проекта IBM Global Name Management могу вас заверить, что всё всё сказанное в ней — правда.

В этом статье я перечислю все 40 заблуждений, приведя пример (или два) из моего опыта работы в этой области. Не верите? Поехали! Готовы?

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

У каждого человека есть одно полное имя, которое он использует.
Хорошо известный писатель-фантаст Джон Уиндем (автор «Дня Триффидов») рождён с именем Джон Уиндем Паркс Лукас Бейнон Харрис, а публиковал книги под именами Джон Бейнон и Лукас Паркс, а также Джон Уиндем. 2.

В данный момент времени у каждого человека есть одно каноническое полное имя.
У актёра может быть сценический псевдоним, полностью отличающийся от имени в свидетельстве о рождении, у него может быть даже паспорт на сценический псевдоним. 3.

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

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

Имена вмещаются в определённое количество символов.
У известного художника, которого обычно зовут просто Пикассо, полное имя было Пабло Диего Хосе Франсиско де Паула Хуан Непомусено Мария де лос Ремедиос Сиприано де ла Сантисима Тринидад Мартир Патрисио Руис и Пикассо. 6. Попробуйте вместить это в форму на 30 символов…

Имена не меняются.
Мы уже упоминали о девушках, которые меняют имя при вступлении в брак, так что это явно неверно. 7. Также человек часто добавляет имя или полностью меняет его при переходе в другую религию — вспомните, как после обращения в ислам Кэт Стивенс стал Юсуфом Исламом, а Кассиус Клей превратился в Мохаммеда Али. Кроме того, католики могут принять второе имя в момент конфирмации.

Имена меняются, но только в определённых ограниченных случаях.
Для некоторых тайцев обычное дело сменить имя, чтобы отогнать неудачу. 8. Иногда человек меняет имя, когда кто-то другой с таким же именем стал известным или печально известным: примечательный пример, когда множество людей отказалось от фамилии Гитлер. Это может произойти без особого повода.

Имена записаны в ASCII.
Явное заблуждение хотя бы потому, что ASCII не содержит акцентированные символы из французских, португальских имён. 9. Есть письменности вроде деванагари для индийских имен, китайские иероглифы (ханзи), японские иероглифы (кандзи), и многое другое. Этот набор символов не включает греческий алфавит, используемый в греческих именах, кириллические символы для русских имен.

Имена записаны в какой-нибудь одной кодировке.
В некоторых именах смешаны кодировки. 10. Во многих случаях это происходит потому что у человека есть «западное имя» в угоду тем, кто не может произнести его имя на его родном языке. Например, кандзи с латинскими символами или ханзи с латинскими символами, или корейский хангыль с латинскими символами.

Все имена соответствуют кодовым точкам Юникода.
Разработчики Юникода продолжают добавлять в стандарт кодовые точки для всё более редких символов. 11. Даже если исключить подобные курьёзы, несколько письменностей ещё не вошли в Юникод. Подавляющее большинство имён уже соответствует им, но всё еще есть исключения, такие как символ «артист, ранее известный как Принс». Менее реалистичные примеры — клингонский язык или символы, изобретённые Толкиеном для Средиземья. Возможно, самым реалистичным примером является аймара, письменность для языка, на котором говорят более миллиона человек в Южной Америке. Кроме того, Юникод включает лишь часть китайских и японских иероглифов, а некоторые из пропущенных символов используются в именах.

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

Имена чувствительны к смене регистра.
Многие наборы символов не чувствительны к регистру: например, китайский и японский. 12. Для них идея прописных и строчных букв просто не применима.

Имена не чувствительны к смене регистра.
Некоторые письменности чувствительны к регистру: например, латиница. 13. Что ещё более важно, в некоторых языках символы можно написать в нижнем регистре, но не в верхнем, поэтому невозможно перевести их из одного регистра в другой.

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

Кроме того, правильный регистр важен для таких фамилий, как Ван Гог, дю Барри, да Коста, О'Брайен и Д'Агостино, и имён, таких как Жан-Пьер.

Иногда в именах встречаются префиксы или суффиксы, но вы можете безопасно их игнорировать.
Ничто не может быть дальше от истины. 14. Голландское имя Питер ван дер Меер не то же самое, что Питер Меер, хотя «ван дер» является префиксом.

Можете считать «младший» суффиксом в имени Роберт Дауни-младший, но если опустить его, вы назовёте его отца, а не его.

Итальянское имя Ди Стефано не то же самое, что Стефано. В арабских именах суффикс аль-Дин означает «веры» или «религии» — такие имена, как Тадж аль-Дин («корона веры») или Саиф аль-Дин («меч религии») не останутся теми же, если пустить суффикс.

Отсутствие префиксов изменяет значение имени. Испанская женщина с фамилией «виуда де де ла Круз» — это вдова мужчины с патронимом де ла Круз.

Имена не содержат цифр.
Даже если игнорировать династии (например, Тюрстон Хауэлл III), в некоторых случаях номер становится частью чьего-то юридического имени. 15. Например, Дженнифер 8 Ли выбрала второе имя 8, потому что 8 связано с удачей.

Имена не могут быть записаны ЦЕЛИКОМ ПРОПИСНЫМИ буквами.
В некоторых странах (особенно франкоязычных) принято писать фамилию человека заглавными буквами, чтобы было ясно, какая часть является фамилией. 16. Эта конвенция закрепилась до такой степени, что написание фамилии строчными буквами может считаться невежливым.

Имена не могут быть записаны целиком строчными буквами.
Поэт э. 17. каммингс предпочитал, чтобы его имя писали строчными буквами. э. lang. Как и певица k.d. Вежливо следовать написанию, которое предпочитает владелец имени.

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

В именах есть порядок. 18. Невозможно принять единую систему имён, которая приведёт к общепринятому порядку. Выбор одной их схем упорядочивания записи автоматически приведёт к постоянному порядку среди всех систем, если все они используют ту же схему упорядочивания.
В Нидерландах имя Винсента Ван Гога проиндексируют и отсортируют по букве Г как Гог; в Бельгии то же имя проиндексируют по В для Ван Гога. Во многих библиотеках система основана на месте рождения человека (я бы не хотел, чтобы такое правило применяли в программном обеспечении).

Имя и фамилия обязательно отличаются.
Австралийский бизнесмен и политик Бенджамин Бенджамин умер в 1905 году. 19. Джером — английский писатель, известный произведением «Трое в лодке, не считая собаки». Джером К. И даже не будем трогать атлетов и актёров, которые приняли такие псевдонимы. Оуэн Оуэн — валлиец, который основал компанию Owen Owen Ltd, управляющую сетью универмагов.

У людей есть фамилия или что-то подобное, общее для родственников.
На Яве было принято давать человеку только имя без фамилии. 20. Например, у президентов Индонезии Сухарто и Сукарно не было фамилии.

Имя человека уникально.
Скажите это любому по имени Джон Смит! 21. У меня несколько менее распространённое имя, но я обнаружил человека с тем же именем и фамилией, работающего в той же отрасли в той же стране (Австралия).

Имя человека почти уникально.
Даже с учётом нестандартного написания обычно легко найти людей с тем же полным именем: попробуйте загуглить собственное. 22.

Ладно, ладно, но имена достаточно редки, так что нет миллиона человек с тем же именем и фамилией.
Китайское имя Чжан Вэй, как сообщается, носят более четверти миллиона человек. 23.

Около 10% населения Северного Китая носит фамилию Ван, а более 10% населения Южного Китая носит фамилию Чэнь. Если ограничиться фамилиями, то около 20% населения Южной Кореи имеют фамилию Ким. И около 40% вьетнамцев носят фамилию Нгуен. На втором месте и там, и там фамилия Ли, что делает её самой популярной в стране.

Имена тоже далеко не уникальны.

Моя система никогда не будет иметь дело с именами из Китая.
Миграция распространила имена каждой культуры до (почти) каждой страны. 24. Нереально ожидать полного отсутствия имён из других стран, хотя вы можете увидеть их в транслитерированном виде. Почти прошли те дни, когда при въезде в страну иммигрантам давали новые имена (хотя, например, Вьетнам по-прежнему требует, чтобы заявитель на гражданство принял вьетнамское имя).

Так, китайское имя вроде 周潤發 в вашей системе может появиться как Чоу Юнь-фат, или Чоу Юнь Фат, или даже Юнь Фат Чоу (Чоу — это фамилия).

Или Японии.
см. 25. выше.

Или Кореи.
см. 26. выше.

Или Ирландии, Великобритании, США, Испании, Мексики, Бразилии, Перу, Швеции, Ботсваны, ЮАР, Тринидада, Гаити, Франции, Клингонской Империи — во всех перечисленных используются «странные» схемы для имён.
см. 27. выше.

Клингонская Империя была шуткой, правда?
Трудно найти примеры людей, официально использующих клингонские имена, но почему нет? 28. Если мы внедрим систему с поддержкой других культур (например, встроенный апостроф для О'Брайена), то сможем поддерживать и клингонские имена без дополнительной работы.

К чёрту культурный релятивизм! 29. Люди в моём обществе, по крайней мере, имеют одинаковое представление об общепризнанном стандарте для имён.
А ваше программное обеспечение будет работать только с людьми, которые получили имена в вашем обществе?

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

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

Имена людям даются при рождении.
Роды регистрируются в большинстве стран, однако эффективность этой системы неодинакова. 32.

Допустимая просрочка варьируется от трёх недель (Шотландия) до двух месяцев (Австралия), но есть и больше. Точные правила различаются в зависимости от юрисдикции, но всегда допускается некоторая задержка в регистрации рождения.

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

OK, может не при рождении, но довольно скоро после него. 33.

Ладно, ладно, в течение года или около того. 34.

Пять лет? 35.

Ты шутишь, верно?
Есть культуры, в которых взрослое имя человеку не дают до полового созревания. 36. До этого у ребенка может быть «молочное» или временное имя.

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

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

Два различных оператора ввода данных, если им дать имя человека, обязательно впишут один и тот же набор символов, если система хорошо спроектирована.
Представьте, что происходит, когда человек вводит имя, которое слышит по телефону. 38. Например, Томсон и Томпсон; или Джонсон, Джонстон, Джонстоун и Джонссон.

Люди, чьи имена ломают мою систему, — странные чужаки. 39. У них должны быть нормальные, приемлемые имена, вроде 田中太郎.
Нет, ваша система плохо спроектирована.

Были и реальные люди с таким именем. В частности, вышепомянутое имя часто встречается как имя иностранца в аниме (и манге).

У людей есть имена.
Для этого случая, пожалуй, труднее всего привести убедительные примеры. 40. Существовала изолированная культура, в которой никто не имёл имен: они называли друг друга относительными терминами, такими как «старшая сестра моей матери».

Итак, мы сделали это: нашли примеры (почти) для всех сорока пунктов из статьи Патрика Маккензи «Заблуждения программистов об именах». Если вы чувствуете некоторый переизбыток информации, то подведём краткий итог. Вот самое главное при разработке системы, которая обрабатывает имена:

  • Не используйте такие термины, как «первое имя» или «христианское имя»: просто «имя» (given name) является наиболее распространённым термином.
  • Имейте в виду, что половина мира сначала указывает фамилию.
  • Во многих культурах используется иная система, чем одна фамилия, общая для всех членов семьи. Некоторые используют патроним или матроним (иногда не один); а у других вообще нет фамилии.
  • Пунктуация может быть жизненно важной частью имени: ирландская фамилия О'Хара не совпадает с японской фамилией Охара. Имя Жан-Пьер не совпадает ни с именем Жанпьер, ни с именем Жан Пьер, и Жан-Пьер — это одно имя, а Жан Пьер — два отдельных имени.
  • Пробелы не обязательно разделяют части имени и фамилии: де ла Круз — одна фамилия, а не три отдельных; китайские имена в ханзи пишутся без пробелов между именем и фамилией.
  • Использование прописных букв не так очевидно: фамилия ван дер Меер может писаться с прописной буквы при использовании без имени, но со строчной после имени.
  • Используйте имя целиком, а не разбивайте его на части. Например, не пытайтесь обратиться к человеку как «господин последнее-слово-в-имени»: тут возможны ошибки в разных случаях:
    • Если фамилия пишется перед именем (например, китайская).
    • Если корректно использовать патроним, а он не последний.
    • Если фамилия состоит из более чем одного слова, например, испанская фамилия де ла Торре
    • Если имя содержит суффикс, например, «младший».

Наконец, я настоятельно рекомендую ознакомиться с небольшим руководством по именам в статье от W3C.


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

[Из песочницы] Создание домашнего медиацентра. Пролог

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

Дайджест интересных материалов для мобильного разработчика #279 (10 — 16 декабря)

В новом дайджесте у нас шикарное расследование про геолокацию и то, как приложения делятся данными с рекламодателями, Metal и SceneKit для разработчиков, история приложения на $500,000, лучшие SDK, рост и реклама 2018. SceneKit — высокоуровневый фреймворк трехмерной графики в iOS, ...