Цвет вместо цвета?

Я работаю над игровым движком на C++, и у меня есть такие методы, как setColour и другие вещи, использующие британскую грамматику. Пока я думал, как компиляторы C++ в основном используют английский язык (поправьте меня, если я ошибаюсь) и как большинство API используют американскую грамматику, должен ли я плыть по течению и продолжать неофициальный стандарт в высшем совете программистов грамматики или быть бунтарем ?

Я не уверен, какой.


person Jookia    schedule 15.03.2010    source источник
comment
У меня был тот же вопрос, будучи иностранцем. к сожалению, единого мнения, насколько я могу судить, нет. Например, boost использует как британское, так и американское правописание.   -  person Anycorn    schedule 15.03.2010
comment
Компиляторы не используют английский язык. Компиляторы используют язык компиляции. Бип-буп-зап-бип-бип.   -  person George Johnston    schedule 15.03.2010
comment
@George: я думаю, он имеет в виду, что ключевые слова C ++ основаны на английском языке. Сообщения об ошибках и тому подобное могут быть локализованы. Зед.   -  person Steve Jessop    schedule 15.03.2010
comment
По крайней мере, напишите это правильно, я использую крупную библиотеку, в которой несколько методов были написаны с ошибками (не говорящими по-английски), но они стали слишком распространенными, чтобы их можно было исправить!   -  person Martin Beckett    schedule 15.03.2010
comment
Джордж: Бип-бип-бип-бип. Видите ли, я пытался это сделать, но всякий раз, когда я говорю это компилятору my, он выдает какое-то надоедливое сообщение об ошибке. Я думаю, что мой компилятор должен быть сломан.   -  person itowlson    schedule 15.03.2010
comment
@Martin: не говорящим по-английски, я могу простить. Нет оправдания для Referer в HTTP.   -  person Steve Jessop    schedule 15.03.2010
comment
@Martin - Вы имеете в виду Linux и creat?   -  person Chris Lutz    schedule 15.03.2010
comment
@Chris Lutz - creat предшествует Linux.   -  person asveikau    schedule 15.03.2010
comment
Я не понимаю, как люди могут пропустить букву «е» в имени пользователя. Это что-то вроде l33t говорить?   -  person Tom Hawtin - tackline    schedule 15.03.2010
comment
Если бы мы только могли использовать цвет при определении атрибутов стиля в веб-дизайне... Грустная Панда :(   -  person Ganesh Shankar    schedule 15.03.2010
comment
@asveikau - Я хотел сказать, что это также предшествует применению здравого смысла к разработке программных систем, но вы правы. Linux должен был быть Unix.   -  person Chris Lutz    schedule 15.03.2010
comment
Creat не опечатка, 5 букв было ограничением для предшественника. В руководстве по самбе есть запись, в которой говорится, что запись пишется определенным образом, потому что они австралийцы и говорят на английском языке королевы.   -  person Martin Beckett    schedule 15.03.2010
comment
почему у нас нет обоих? . это просто полусерьезно: вы не можете просто ввести его и сделать всех счастливыми?   -  person João Portela    schedule 01.01.2012
comment
после дальнейших размышлений это было не очень хорошее предложение. Кроме того, это уже было предложено. Кажется, я просто очень хотел использовать этот мем XD   -  person João Portela    schedule 02.01.2012
comment
@ChrisLutz Linux - это не UNIX, и нет абсолютно никаких причин называть его UNIX, если это не UNIX.   -  person Miles Rout    schedule 04.01.2014


Ответы (10)


Вы должны использовать американское написание color. 99% кода использует это, включая большую часть кода, написанного британцами или австралийцами, говорящими на английском языке. Если вы используете что-то другое, вы (или кто-то другой, кто использует ваш код) в какой-то момент просто забудете, что использовать, и совершите ненужную ошибку.

person Tobias Cohen    schedule 15.03.2010
comment
+1 Как новозеландец (мы используем британское написание), я всегда старался придерживаться «правильного» британского пути, пока однажды не понял, насколько это нелепо - просто использовать цвет. В подавляющем большинстве кода он уже используется, он короче, и я не часто отправляю свой код на занятия по английскому языку. - person gacrux; 15.03.2010
comment
+1 Это особенно верно, если вы работаете с чем-то вроде Java API, который уже использует color. Смешивание собственного colour с color API вызывает проблемы. (Я австралиец, кстати.) - person David Johnstone; 15.03.2010
comment
Я согласен, и именно так я работаю, но это все равно меня огорчает... Особенно во время отладки и в конечном итоге нахожу опечатку цвета :( - person Ganesh Shankar; 15.03.2010
comment
+1. Цвет является стандартом де-факто и уже будет использоваться в большинстве API. В целом американский английский является стандартом для всего кода во всем мире по историческим и другим причинам. - person Max E.; 15.03.2010
comment
Теперь, когда мы уже на пути к исправлению правописания «цвета», возможно, мы можем начать отучать вас от метрической системы и чрезмерно красочной валюты (6 оттенков зеленого достаточно для всех). Над «чепчиками», «сапогами» и «фишками» мы поработаем позже. Я обещаю, что вы и дальше будете использовать слово «футбол» неправильно. - person Michael Burr; 15.03.2010
comment
@Michael Хотя цвет является стандартом де-факто в программировании, имейте в виду, что некоторые люди могут быть весьма собственническими в своей грамматике и правописании - это не наша вина, что янки не смогли понять это правильно: p (извините меня, пока я помещаю свое пламя костюм) - person Basic; 15.03.2010
comment
@Michael: Надеюсь, вы знаете, что мы, американцы, неправильно используем футбол, и в каждом регионе США и англоязычного мира есть свой сленг, диалектические вариации и т. д. Кроме того, слово, которое вы ищете, отлучение от груди. - person Seth Johnson; 15.03.2010
comment
Большинство программистов, которые не говорят по-английски, изначально изучают американский английский. - person ; 04.04.2010
comment
@ user216441: Ваше заявление — прекрасный пример того, что прекрасно работает в «Мурике», но больше нигде. - person Mad Physicist; 25.07.2017

Я британец, и я думаю, что правильно будет стиснуть зубы и использовать Color. Обычно я не ожидаю, что немецкоязычный программист будет использовать Farbe в общедоступном API[*], и я не ожидаю, что ему придется предоставлять альтернативные варианты написания, такие как finalize против finalise или localization против localisation.

Компилятор укажет на любые ошибки, поэтому я думаю, что использование альтернативных имен для вещей ошибочно. Если подумать, это может даже помешать некоторым программистам, поскольку автодополнению IDE придется больше пережевывать. Если вы собираетесь использовать одно написание, то «Цвет» — это настолько распространенное слово в API, обычно пишется без буквы «u», что было бы преднамеренной идиосинкразией писать его каким-либо другим способом. Это никому особо не помогает.

Очевидно, что решающего аргумента нет — вы можете называть свои функции method001, method002, если хотите, и код все равно будет работать, так что Colour по сравнению с ним — незначительная причуда. Но есть тонкая грань между «причудливым» и «мизантропическим».

[*] Просто потому, что он находит его более читабельным, чем Color, я имею в виду. Если он совсем не говорит по-английски, у него нет выбора.

person Steve Jessop    schedule 15.03.2010

Будь бунтарем! Иди со своим родным английским.

Если вам хочется бросить подачку американцам, предоставьте функции прикрытия с неправильным написанием (шутливо: но просто убедитесь, что они работают достаточно медленнее, чтобы предпочесть использовать правильное написание).

person Jonathan Leffler    schedule 15.03.2010
comment
+1 за то, что делайте это в обоих направлениях. Это, пожалуй, лучший способ в данном случае. - person Chris Lutz; 15.03.2010
comment
@ Крис: правда? Как насчет localize против localise? (Вариант написания в британском английском, а также британо-американское различие). Вы всегда не забываете делать и эти #define? А как насчет Грея против Грея? Или давайте не будем забывать о гармонизации ЕС: Gris, Grau, Grigio, Šedá (каюсь, последнее, что я искал). Я думаю, что это может быстро выйти из-под контроля. - person Steve Jessop; 15.03.2010
comment
Хм, для C++0x как насчет std::list, std_en::list, std_es::lista, std_de::Liste и так далее ;-) - person Steve Jessop; 15.03.2010
comment
@Steve Jessop: Как интересно было бы увидеть std_ja::リスト - person dreamlax; 15.03.2010
comment
@дремлакс. На самом деле это не самая ужасная идея. В основных IDE есть функция выбора языка просмотра... для перевода с одного на другой для вас. - person Mad Physicist; 25.07.2017

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

person greyfade    schedule 15.03.2010
comment
Это тот случай, когда я не согласен с консенсусом: почему бы оба doStuffColor, и doStuffColour не работали и не давали идентичных результатов? Это можно сделать с помощью простых #define или встроенных функций (или обоих). - person Chris Lutz; 15.03.2010
comment
@Chris: это кажется ненужным. Просто выберите один словарь для использования и будьте последовательны. - person xian; 15.03.2010
comment
@Chris: Это ненужная нагрузка по обслуживанию. Зачем вам две функции, которые делают одно и то же, только с разными именами? Это не нужно. Период. - person greyfade; 15.03.2010
comment
@Chris, почему бы не установить SetColor на немецком и на всех других языках. - person mP.; 15.03.2010
comment
Разве не противоречие в том, что соглашения об именах не важны, а затем говорят, что до тех пор, пока вы последовательны? Просто говорю... - person Michael Burr; 15.03.2010
comment
@Michael Burr: Конечно, ты прав. Я имел в виду, что конкретные соглашения об именах не важны. Я свой пост (2 дня назад ›‹). - person greyfade; 18.03.2010

У меня, как у австралийца, такие же соображения.

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

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

И если это означает придерживаться британского правописания, делайте это с оттенком гордости ;)

person johnc    schedule 15.03.2010

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

  • я здесь работаю
  • Все мои коллеги работают здесь
  • Ну... это английский язык
  • Нам нравится думать, что мы изобрели Интернет
  • Мы все думаем, что у нас все еще есть эта огромная империя, мы правим миром и т. д.
  • Мы не любим янки! >:(

Однако в основном я пишу на C#, HTML, CSS, JS и т. д. Я мог бы остаться упрямым и использовать наше правописание, но все эти языки используют американизированные ключевые слова и имена членов. В итоге я получил чертову кучу дерьма!

В моем С#:

public Color BrightenColour(Color colour); // eew, minging

или в моем CSS:

.greyColoured { color: gray; } /* not semantic? crikey! */

или мой jQuery:

function serialiseForm() {
    return $('input, textarea, select').serialize() // cor' blimey!
}

или мой HTML:

<div align="center">Centre</div> <!-- goodness gracious me! -->

Итак, сегодня я, наконец, сдался и выполнил поиск-замену всех моих старых, традиционных вариантов написания. Хотя мне не нравятся все мои новые кросс-атлантические варианты написания, мой код стал намного чище :D

Талли-хо!

person Connell    schedule 09.07.2013
comment
Англия это остров? И если Шотландия получит независимость, они построят море только потому, что не хотят быть мысом ;-) - person Colin; 05.09.2013
comment
Кто эта «Шотландия», о которой вы говорите? ;) - person Connell; 09.09.2013

На самом деле не имеет значения, что вы выберете, просто убедитесь, что вы остаетесь последовательным.

person Kyle Lutz    schedule 15.03.2010

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

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

РЕДАКТИРОВАТЬ: я считаю, что вопрос, который, как мне кажется, не затрагивается всеми ответами, в которых говорится, что вы должны просто придерживаться американского правописания: во многих случаях (насколько мне известно) само американское правописание не сошлось, например. «параметризовать» и «параметризовать» (обратите внимание, что я использовал «z», так что оба эти написания являются американскими).

person Alexandros Gezerlis    schedule 15.03.2010

Мое правило как канадца — использовать «цвет» в идентификаторах и «цвет» в комментариях. Например:

/// <summary>Return the colour in CIE Lab space.</summary>
public GetLabColor() : double * double * double;
person Don Reba    schedule 15.03.2010

Почему бы не интернационализировать имена ваших методов. Я предлагаю два варианта для этого. * Назовите ваши методы следующим образом 'method1", "method2" и предоставьте разные шпаргалки для разных местных жителей, чтобы у британцев было method1=setColour, а в Америке - method1=setColor.

Другой вариант - использовать что-то вроде ASM для перезаписи файлов классов внутри ваших файлов jar, чтобы для американцев метод был «setColor», а в Британии и остальной части Содружества они видели «setColour». Это устранит необходимость дублирования setColor/setColour, как предложил кто-то другой.

person mP.    schedule 15.03.2010