Pull to refresh

Comments 42

бывает еще и код латиницей в каком-нибудь испанском языке, даже со словарем непросто работать

Можно сократить:
получСообщ();
И наклонения отрезали, и длину уменьшили, а мысл остался понятен.

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

получить?
получатель?
получать?
сообщение?
сообщения?

Стандартный пароль к Cisco (из учебников) — «san jose». Ну, все и читают «сен-джос» :)
Испанский, он такой.
Ну не правда же, получаюСообщение будет receivingMessage
должно быть указание на процесс как незавершенный: I'm receiving message right now. Причем в разговорной речи все несколько может упрощаться.

в данном случае это не глагол, можно перевести как «ваш приход»
А вы состояние и методы не путаете?
mailClient.receiveMessages() — метод
mailClient.receivingMessages — состояние объекта.
А английский по вашему не национальный язык? Для Великобритании — вполне себе национальный, для остального мира — де факто международный. И смешивать парадигму (процедурный подход, функциональный, оо) с разговорным языком — странно.
английский стал латынью для электроники, любое сообщение закодированные в ASCII или английской части UTF-8 будет корректно отображаться практически в любых условиях, а вот с другими языками такого нет. Поэтому он на особом положении, а почему это так я как раз и попытался сформулировать в заметке.

А где связь между UTF-8 и электроникой?

в том как кодируются символы в кодировках, для латиницы в UTF-8 как и доюникодных кодировках используется первый байт поэтому они всегда выглядят хорошо, а национальные при ошибочном указании всегда выглядят корявками

Ну так электроника-то тут при чём?

я мог бы даже написать «для матана» на самом деле, потому что он стал основой для языков программирования (когда «процедура» называется «функцией»), это как обобщение для совокупности околоайтишных сфер

"Околоайтишные сферы" так и называются — "ИТ", а вовсе не "электроника".

вы причину и следствие не путаете?

Во-первых: если для человека, код написанный на национальном языке выглядит «говнецом», независимо от качества кода/ эффективности решения, то проблема может быть в человеке, а не в национальном языке. Потому что завтра этот же человек код написанный на (допустим) java посчитает «говнецом». Всю корпоративную систему переписывать, чтобы ему угодить?

Во-вторых, по поводу кода на нац. языке вообще. Я как 1С-ник, считаю (и книги по DDD со мной косвенно согласны), что как минимум, при использовании национального языка удобно работать, если основной язык общения в команде (а соответственно документация, технические задания и комментарии в коде) национальный. ИМХО, совпадение названий терминов предметной области («доменной логики») и объектов/методов/переменных в коде — это удобно. Явно лучше, чем придумывать или переводить со словарем в обе стороны или писать транслитом. При этом, когда заказчики были из Польши удобнее оказалось использовать английский язык (благо у 1С есть варианты).

Ну и в-третьих. Невозможность использовать нац.языки из-за неполной поддержки utf в конкретных средах разработки, например, это повод исправлять ошибки поддержки utf, а не отказываться от использования нац. языка там, где это удобно.
Я не настоящий сварщик, но была необходимость немного поработать с java ee. И я словил проблемы с настройкой tomcat и glassfish, из-за того что у меня имя учетки в Windows кириллическое (на SO в том числе рекомендовали еще и не использовать пути с пробелами, но с этим пронесло). И вот мне кажется, что проблема в программе, потому что точно такие же проблемы с ней может потом словить и пользователь, который не знал, что нельзя хранить данные в папках с названиями не на английском или не дай бог вносил в корпоративную систему информацию на национальном языке (это ведь «говнецо» с точки зрения разработчика).
ну есть термин «говнокод» и я просто хотел его даже сгладить, пожалуй поправлю.

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

Насчет международного языка. Да, так вышло что английский это международный язык и исторически сложилось, что ЯП тоже на английском. Но вот «удобство» в данном случае это не причина и не следствие. Это «подгонка под ответ», т.е. попытка убедить себя что выбор языка был сделан правильно и поиск для этого аргументов.

Пример утрированный: для ООП с множественным наследованием, вполне хорошо бы подошел немецкий, с их любовью к многокоренным словам. Каждый корень слова — название класса. Написал какое-нибудь «VerkehrsInfrastrukturFinanzierUngSgesellschaft» и сразу разработчику понятна вся иерархия классов.
А вот для реализации паттернов, возможно, было бы удобно иероглифами с помощью «манипулятора типа кисть» пользоваться. Этакая UML + код в одном флаконе. Толщиной кисти варьировать типы связей между классами.
Про эсперанто я вообще молчу. Все те же бонусы что и в английском, а язык проще и никому не «обидно».
ну код это как раз об прекрасном, точнее есть понятие элегантный код и есть противоположные ему. Вот немецкий в вашем примере как раз совсем не подходит под понятие элегантность. Понятно, что практические соображения можно какие-то придумать, но исходить только из удобства это недальновидно когда речь идет о разработке ПО, именно сиюминутное удобство (быстрота решения задачи) часто становится причиной плохо читаемого и также плохо работающего кода, который может еще обрасти костылями и стать пугалом на проекте, даже если тот восновном ничего.
Ну вы же понимаете, что если человек пишет говнокод, то он его будет писать хоть на русском, хоть на английском? Т.е. причина вообще не в языке?
конечно, последнее предложение в заметке как раз об этом, если вы придерживаетесь некоторых рекомендаций к которым относится использование латиницы и английского, то некоторый шанс получить объективно элегантный код есть, а иначе вряд ли
Не так. «Если в команде принято писать код на английском и в определенном стиле — надо писать его на английском и в определенном стиле». Не более.

«Элегантность» и «объективность» в одном предложении ставить нельзя. Это субъективная оценка, все-таки. И уж точно она не зависит только от языка (что английского, что ЯП).
зависит не только, но тем не менее этого не отменишь, например синтаксис джавы многим сторонникам скриптовых языков кажется не таким элегантным, даже учитывая субъективность этого впечатление оно вполне имеет реальные основания, а раньше так и вообще было злободневным

Кстати, с помощью эсперанто на одном из проектов решили проблему конфликта имён/суффиксов/префиксов в доменной области и технической. Технические типа репозитории, сервис, модель, контроллер и т. п. — на английском, а доменные — на эсперанто. Вся команда, включая БА, ПО, ПМ называла их на эсперанто (каждый со своим "акцентом", но понятно в принципе)

Отличный пример, спасибо.
Мне так приходилось на «суржике» общаться с заказчиками из Польши. Не всегда находился однозначный аналог в английском, использовали польские слова.
А еще раньше был ASM и перфокарты. Проблем с национальными языками в принципе не было.
Коллега если вы профессионал, то какая разница, на чем делать ПО?

Да что вы, ведь вместо


mov eax, ebx


должно быть


двиг ра, рб

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

Божественно. Это первый шаг к тому, чтобы считать достойными писать код только представителей англоговорящих стран и лиц к ним примазавшихся, а затем и только коренных носителей языка. Вот почему народ так тянет в расизм, неужели всё настолько плохо в самоутверждении без этого?..

Проблема с использованием русского языка в коде ИМХО таится в нескольких вещах:
  1. С советских времён всё (абсолютно ВСЕ) забили на локализацию терминологии и поэтому всё кажется вымученным и не естественным, поскольку является либо подстрочным переводом либо транслитерацией в кириллицу английских терминов.
  2. Начитавшись литературы и документации на английском языке, народ начинает воспринимать код с точки зрения английского, и этот код кажется пародией и «говнокодом». Начитаться всего этого на родном языке сложно, с переводами у нас всё плохо. Даже документацию легко найти на немецком китайском и японском. Бывает даже польский. С русским всегда какая-то хрень, либо он отсутствует.
  3. Все языки программирования спроектированы под английскую раскладку, и набирать код на русской не удобно.

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

Это должно идти первым пунктом.


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

UFO just landed and posted this here
эсперанто — элегантный язык с ложкой дегтя, т.е. крыжиков в этом он оказался привязан к восточно-европейской культуре создателя (хотя говорят, что есть версии без них), и я не уверен, что эти символы есть в ASCII:)

Пофиг на ASCII, это просто лишний повод перейти на UTF-8.

В английском свои странности:

I
And all your friends
Sends--
I mean all your friend
Send--
(Very awkward this, it keeps
going wrong)
Well, anyhow, we send
Our love
END

© Eeyore
Не вижу странностей — одни ошибки
Правильный вариант «All your (/other/) friends and I send» не упомянут ни разу
«Education!» said Eeyore bitterly,
jumping on his six sticks. «What is Learning?» asked Eeyore as
he kicked his twelve sticks into the air. «A thing Rabbit
knows! Ha!»
Sign up to leave a comment.

Articles