Должны ли имена неанглоязычных участников быть изменены на английский?
Ситуация: автоматически сгенерированные члены, такие как элементы MenuStrip, имеют (автоматически сгенерированные) имена на основе текста, введенного при создании элемента. Моя самая распространенная ситуация - создание полосы меню и добавление пунктов меню путем ввода их текста (с помощью графического дизайнера).
Поскольку мой графический интерфейс написан на иврите, у всех этих участников есть имя, которое содержит строку на иврите. Что-то вроде "(иврит-текст)ToolStripItem". Когда я создаю обработчики событий, обработчики событий "наследуют" текст на иврите: "(текст на иврите)ToolStripMenuItem_Click".
Это на самом деле хорошо работает, IntelliSense не имеет проблем с текстом на иврите, как и компилятор.
Вопрос заключается в следующем: я должен изменить эти имена (или предотвратить их создание в первую очередь)? Каковы возможные последствия сохранения этих имен?
РЕДАКТИРОВАТЬ: Чтобы уточнить, когда я говорю текст на иврите, я не имею в виду слова на иврите, написанные на английском языке, я имею в виду настоящие ивритские символы.
5 ответов
Всегда программируйте на английском языке. Все успешные команды разработчиков, с которыми я имел опыт работы в нескольких странах ЕС, делают это. Это делает намного проще, если (скажем) голландская команда хочет продать код (скажем) испанской.
Для меня английский язык является языком разработки программного обеспечения. С одной стороны, это широко распространенный язык среди не носителей языка, что особенно актуально для разработчиков. И английский - очень простой язык для изучения, по крайней мере, до уровня, достаточного для выражения проблем с программным обеспечением. Я лично ожидаю, что каждый разработчик (по крайней мере, из Европы) будет иметь этот уровень языка. Те, кто этого не делают, изолированы от остального мира, не имея доступа ко многим важным ресурсам.
Кроме того, поскольку подавляющее большинство всех разработчиков используют английский язык, существует более менее устоявшаяся терминология для вопросов, связанных с программным обеспечением на английском языке, что значительно помогает уменьшить двусмысленность.
Лично я, как пользователь, стараюсь заполучить программное обеспечение на английском языке (хотя некоторые компании просто не понимают, что не помогают мне, предлагая только немецкую версию). Локализация часто - дерьмо, и трудно получить помощь, потому что очень хорошо сделанный перевод не позволяет вам узнать, как функция, с которой у вас возникают проблемы, может быть вызвана на английском языке, в то же время, немецкая помощь не доступен.:-D
Любой разработчик, для которого это имеет значение, независимо от того, пишет ли он свой код на английском языке или нет, должен повысить свой уровень языка, например, путем кодирования на английском языке. Если этого не произойдет, нет никаких причин, почему он не должен использовать английский, но есть множество причин, почему он должен.
Английский позволяет разработчикам со всего мира формировать большое сообщество, обмениваться знаниями и опытом, а командам из разных стран работать вместе без языковых барьеров. Лично я хотел бы, чтобы все в мире выучили английский, но я не могу этого ожидать. Однако я думаю, что могу ожидать этого от кого-то, кто владеет множеством языков программирования, имеет достаточные знания математики и обучил его абстрактному и логическому мышлению.
Кодирование на английском языке похоже на использование правильного форматирования или наличие согласованных соглашений об именах и использование выразительных имен идентификаторов. Все это самые фундаментальные передовые практики программирования (на самом деле это даже не "программирование", а просто "написание кода"). Это не требует дополнительных усилий, если вы к этому привыкли. Не делать это тоже работает просто отлично. До тех пор, пока однажды вы не пересечете границы того, что "работает просто отлично", и тогда все становится уродливым, потому что чем дольше вы воздерживаетесь от использования лучших практик, тем сложнее что-то менять.
Так что да, вы должны изменить свои имена членов. И вы должны просто взять привычку создавать их на английском языке в первую очередь.
Greetz
back2dos
Наверное. Я за мультикультурализм, но это очень расстраивает (особенно для открытого кода), когда основная документация на английском языке, а код - нет. Вы получаете такие вещи, как T_PAAMAYIM_NEKUDOTAYIM (обратите внимание, что большинство (все?) Из других операторов PHP просто символы или английский). Для дополнительной иронии, страница, которая документирует это, даже не переведена на иврит. Вещи могут непреднамеренно просочиться в пользовательский интерфейс, что затрудняет интернационализацию.
Я видел эту проблему довольно много раз в моей нынешней работе. Я индийский программист, который занимается кодом, написанным на немецком языке. Все названия функций, переменных, комментариев написаны на немецком языке... Я очень плохо читал код, пока не использовал инструмент рефакторинга и не переименовал все переменные в описания на английском языке. На более ранней работе мне приходилось иметь дело с руководствами по API, написанными только на японском языке. Комментарии на японском! Чрезвычайно раздражающий и сложный в обслуживании такой код, поскольку иногда переводы заставляют задуматься о том, что имел в виду оригинальный программист.
Мое предложение: вы не знаете, кто будет поддерживать ваш код. Лучше всего, если вы напишите это полностью на английском...
На самом деле это просто вопрос сопровождения. Если все ваши разработчики знают иврит, то у вас все хорошо, если вы когда-нибудь будете передавать части проекта на аутсорсинг, делать его с открытым исходным кодом или нанимать иностранных разработчиков, то английский язык в значительной степени универсальный язык.