GB английский или американский английский?

97

Если у вас есть API, и вы являетесь разработчиком из Великобритании с очень международной аудиторией, должен ли ваш API

setColour()

или

setColor()

(Возьмем одно слово в качестве простого примера.)

Инженеры из Великобритании часто защищают свое «правильное» написание, но можно возразить, что орфография в США является более «стандартной» на международном рынке.

Думаю, вопрос в том, какое это имеет значение? Испытывают ли разработчики в других регионах проблемы с орфографией GB или обычно совершенно очевидно, что это означает?

Все ли должно быть на американском английском?

изб
источник
1
включить оба из них. это не повредит тебе.
Amarghosh
В нашей системе образования всегда преподается en-gb, поэтому я привык писать en-gb в коде. (Иногда я был ленив и вставлял какой-нибудь китайский идентификатор при разработке кода для китайского клиента, и позже они были изменены на английский)
Майкл Цанг

Ответы:

79

Я бы предпочел использовать английский (США), так как это стало нормой для других API. Как английский программист, у меня, например, нет проблем с использованием «цвета».

Крис
источник
6
Стандартизация - хорошая цель, и ваш API будет легче принят международной аудиторией, чем при использовании версии GB.
Maitus 01
55

Я не носитель языка. В письменной форме всегда стараюсь использовать en-gb. Однако в программировании я всегда использую en-usвместо британского английского почти по той же причине, по которой я не использую немецкий или французский для своих идентификаторов.

Конрад Рудольф
источник
16

Как правило, я был бы приверженцем орфографии GB, но я думаю, что код читается намного лучше, если он согласован, и я обнаружил:

Color lineColor = Color.Red;

выглядеть намного лучше, чем:

Color lineColour = Color.Red;

Я думаю, что в конечном итоге это не имеет значения.

Карл
источник
9
Еще хуже, если у вас есть свойство public Color Color {get;}
Бенджол 01
15

Зависит от того, где вы видите большинство своих клиентов. Лично я предпочитаю использовать English-GB (например, Color) в моем частном коде, но я выбираю Color для опубликованных извне приложений / API / кода!


источник
7
Внутреннее использование GB и внешнее использование US чревато конфликтом семантических переменных - аналогично тому, что происходит с «color» и «co1or». Ваш мозг обрабатывает слово, а не его написание, и это может привести к путанице
Крис Кадмор,
1
Я бы сделал то же самое, но будьте осторожны с тем, что упоминает Крис - если вы используете одно написание в API, вам, вероятно, следует использовать то же самое в другом месте проекта.
Марк Бейкер,
10

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

Филип Мортон
источник
5

Предполагая, что это Java или C # API, это, вероятно, не имеет значения, учитывая распространенность функции автозаполнения в IDE. Если это для динамического языка или того, где современные IDE не являются нормой, я бы выбрал американское написание. Конечно, я американец и поэтому явно предвзято, но похоже, что большая часть кода, который я вижу от разработчиков, которые не являются носителями английского языка, использует американское написание для своих имен переменных и т.

Майк Палуба
источник
3
В руководящих принципах разработки .NET Framework для единообразия рекомендуется английский (США)
Марк Сидаде,
@MarkCidade: У вас есть ссылка на указанную рекомендацию? Я обыскал его вдоль и поперек, но безуспешно.
Dio F
1
@DioF Об этом упоминается в книге Кшиштофа Квалины и Брэда Абрамса «Рекомендации по проектированию фреймворков: условные обозначения, идиомы и шаблоны для многоразовых библиотек .NET»
Марк Сидаде,
5

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

Росс Андерсон
источник
4

Я бы пошел с текущими стандартами и выбрал правописание американского английского. HTML и CSS являются общепризнанными стандартами с написанием «цвет». Во-вторых, если вы работаете с такой платформой, как .NET, то, скорее всего, у вас уже есть цвет в разных пространствах имен.

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

Label myLabel.color = setColour();
Мауро
источник
3

У меня проблемы с API, которые не на английском (США). Просто из-за разницы в написании. Я знаю, что означают эти слова, но меня сбивает с толку разное написание.

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

эпохаволк
источник
3

Большая часть документации для разработчиков (как и MSDN) написана на американском английском.

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

Ринат Абдуллин
источник
2

У меня есть еще один образец: Serialise и Serialize. :)

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

Jop
источник
Я уверен, что мой учитель английского сказал мне, что окончание "ize" действительны в GB English? Оба окончания ise и ize приемлемы для английского языка GB, так что я подбираю свое, чтобы соответствовать септикам. ( cockneyrhymingslang.co.uk/slang/sceptic_tank )
Скотт Лэнгхэм
2

Как канадец, я постоянно сталкиваюсь с этим. Мне очень сложно набирать «цвет», поскольку моя мышечная память постоянно тянется к «u».

Однако я предпочитаю использовать язык библиотек. В Java есть класс Color, поэтому я использую цвет.

Крис Кадмор
источник
1
"c", "o", "l", Ctrl + Space, "."
Tom
1

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

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

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

JeeBee
источник
2
Я не согласен с использованием переднего плана / фона вместо цвета / или цвета). Например, перед / фон также может означать узор. Если вы хотите установить / получить colo (u) r, вы должны назвать это так. Отсутствие / добавление «u» менее запутанно, чем свойство с неверным названием.
Treb
Придирание к примеру, не принципиальное, но достаточно справедливое.
JeeBee 01
2
Кстати. написание -ize - это не американизм!
Джулс
@ Джулс да, это так.
igorcadelima
@igorcadelima Это может быть британское в общем употреблении, но учтите: en.wikipedia.org/wiki/Oxford_spelling
Джулс
1

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

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

Тем не менее, различие здесь в двух разных диалектах английского языка, что не так сильно, как два совершенно разных языка в одном файле исходного кода. Поэтому я бы сказал, сохраняйте API на английском языке (США), но ваши комментарии на английском языке GB, если он вам больше подходит.

Ник Рейман
источник
1

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

Разработчики языка программирования и его встроенных API сделали выбор, и независимо от того, являются ли пользователи международными или нет, они привыкли видеть правописание, соответствующее этому выбору. Вы ориентируетесь не на говорящих на другом языке, а на пользователей языка программирования. Скорее всего, они выучили довольно много слов на иностранном языке из встроенных API-интерфейсов и могут не знать о различиях между американским английским и британским английским. Не путайте их, меняя стороны пруда.

В первую очередь я использую языки .NET, а .NET Framework использует написание английского языка (США). На этой платформе я бы придерживался американского английского. Я не знаю ни одного языка, стандартизированного для GB English, но если ваш сделал это, то во что бы то ни стало оставайтесь совместимыми с языком.

OwenP
источник
1

Я согласен с труппой "go for American". Я лично предпочитаю en-GB при написании электронных писем и тому подобного, но американский английский в значительной степени является стандартом во всех кругах программирования.

Дгуаралья
источник
1

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

user24199
источник
1

Определенно американский английский.

Шива
источник
1

Во-первых, я в США. В моем текущем проекте это всегда «цвет», однако слово, которое мы не можем выбрать для написания, это «серый» против «серого».

Это на самом деле стало довольно раздражающим.

Брайан Постоу
источник
1

Выбор языка для имен идентификаторов не имеет ничего общего с аудиторией, а все связано с исходным языком, на котором был разработан фреймворк или API.

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

ИМХО, слишком велика опасность внесения тонких ошибок из-за разного написания.

Переопределение функции может легко стать псевдоперегрузкой.

Конфигурационный файл может стать недействительным из-за разницы в написании.

Может возникнуть ситуация, когда один и тот же концептуальный объект был определен с использованием нескольких классов с использованием как en-US, так и en-GB.

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

Умар Фарук Хаваджа
источник
Меня волнует только согласованность в нашем API. Например, если наш пакет нацелен на Великобританию, можно использовать только en-gb, абсолютно без написания, такого как «цвет».
Майкл Цанг
Полагаю, вы также пишете свои собственные библиотеки базовых классов, Майкл?
Умар Фарук Хаваджа
0

Если все ваши программисты британцы, используйте en-gb. Если ваш код увидят программисты за пределами Великобритании, лучшим выбором будет en-us.

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

Джим С
источник
0

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

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

Некоторые вещи пересекают границы, но разница в написании редко является проблемой. Фактически это может вызвать интересный диалог, когда американцы не знают разных вариантов написания кандианского и британского английского. Иногда они согласны с этим, иногда они настаивают на изменении его написания на «правильное». Это также влияет на форматы даты (дд / мм / гггг в Канаде и мм / дд / гггг в США).

Когда заходит в тупик, мы обычно выбираем орфографию в США, поскольку жители Канады знакомы с обоими вариантами.


источник
0

Основная причина, по которой я выбрал американский английский, а не британский, заключается в том, что британская аудитория, столкнувшись с американской орфографией, понимает, что это приложение для США (или предполагает, что это так), тогда как американская аудитория, столкнувшаяся с британской орфографией, думает: «... эй, это неправильно .. это цвет, а не цвет '

Но, как говорили другие, стандартизируйте. Выбирайте и придерживайтесь этого.


источник
0

Для меня естественно работать на британском английском, даже не задумываясь об этом. Однако, если вы разрабатываете внутренние процедуры, это не имеет большого значения. Если вы создаете API, которые будут использоваться публично, а ваша аудитория является международной, почему бы не реализовать оба?

BlackWasp
источник
0

Я предпочитаю американский английский.

васке
источник
0

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

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

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

Jimoc
источник
7
Это плохая идея. API будет завален избыточными методами.
McDowell
6
Это действительно плохое решение. Вы, вероятно, запутаете многих людей, которые пытаются понять разницу между setColour и setColor. Кроме того, это может создать много беспорядка в API, если у вас есть много методов с цветом слова в них.
Кибби 01
Мои мысли точно. Вам ничего не стоит указать оба варианта написания и просто задокументировать их как идентичные. Что касается возражения против избыточности, удобство использования важнее ортогональности.
Дэйв Шерохман,
0

Если вы оглянетесь на несколько сотен лет назад, то обнаружите, что это изменение не имеет ничего общего с США, как многие думают. Изменения происходят из-за европейского влияния, особенно французского. До этого английское слово «цвет» на самом деле произносилось как «цвет».

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

Если вы думаете, что язык - это проблема, вам следует подумать о тайваньском кг, который весит 600 г. Мне еще предстоит выяснить, как им это удалось, но я надеюсь, что они никогда не будут использоваться в качестве заправщиков самолетов!

Стив Кинан
источник
0

Я всегда использую en-GB для всех своих программ. Думаю, это из-за сильного влияния британских романов.

Однако может быть невозможно иметь два разных набора API (один для en-US, один для en-GB), которые внутренне вызывают одну и ту же функцию? Это может привести к раздуванию файлов заголовков, так что, возможно, в зависимости от определения препроцессора, условная компиляция? Если вы используете C ++, вы можете сделать что-то вроде ниже ...

#ifdef ENGB
     typedef struct Colour
     {
      //blahblahblah
     };
     void SetColour(Colour c);
#else
    typedef struct Color
    {
      //blahblahblah
    };
    void SetColor(Color c);
#endif

В зависимости от того, определяет ли клиентский программист ENGB или нет, как показано ниже

#define ENGB

он мог бы использовать API в той культуре, которую предпочитает. Может быть, излишество для такой тривиальной цели, но эй, если это кажется важным, почему бы и нет! :)

Бхарат Маллапур
источник
2
Лучше следовать американскому написанию, так как ему следуют почти все стандартные API. Компиляторы строго требуют точного написания, поэтому обслуживать два разных API для двух языков - плохая идея. Документация может обслуживать два разных языка, но API должен быть согласованным. Обычно ожидается, что даже если один и тот же API используется в разных регионах, говорящих на разных языках, таких как немецкий, французский, испанский и т. Д., Хотя в документации могут быть объяснения на местных языках, все методы, переменные и т. Д. Будут соответствовать исходному языку API. (скорее всего US Eng).
ADTC