https://www.mql5.com/ru/docs/basis/syntax/identifiers
Идентификаторы
Идентификаторы используются в качестве имен для переменных и функций. Длина идентификатора не может превышать 63 знака.
Допустимые символы при написании идентификатора: цифры 0-9, латинские прописные и строчные буквы а-z и А-Z, распознаваемые как разные символы, символ подчеркивания (_). Первый символ не может быть цифрой.
Идентификатор не должен совпадать с зарезервированным словом.
- www.mql5.com
Опрос связан вот с чем. Коллега пишет большой проект на MQL5, возможно, части проекта будут написаны на C#, C++.
Я немного посмотрел код, все идентификаторы на русском, например
class c_УправлениеОрдерами
{
};
Я всегда использую только английские названия, благо проблем с техническим инглишем нет:
class COrderManager
{
};
Читаю справку, там четко написано "Идентификаторы используются в качестве имен для переменных и функций. Длина идентификатора не может превышать 63 знака. Допустимые символы при написании идентификатора: цифры 0-9, латинские прописные и строчные буквы а-z и А-Z, распознаваемые как разные символы, символ подчеркивания (_). Первый символ не может быть цифрой. Идентификатор не должен совпадать с зарезервированным словом."
То есть то, что компилятор русские имена компилирует, это undefined behavior (неопределенное поведение) и Метаквоты в любой версии могут это прикрыть.
Я хорошо помню, как один чел еще до появления нового MQL4 build 600 в начале 2013 г. любил в названиях переменных использовать точки, например:
double orders.count.for.close = 0;
Я ему говорил, что напорешься, 100% MQ введут в язык хотя бы структуры и все программы придется переписывать. Так и оказалось. Я, как в прошлом профессиональный программист, стараюсь не поьзовать никакими недокументированными возможностями.
Будет интересно узнать ваше мнение, уважаемые колеги!
Будет интересно узнать ваше мнение, уважаемые колеги!
бред, отсебятина, отвратительный стиль... лень материться...
вот переписал первое что попалось:
double OnTester() { #define BADTEST() { srand((int)TimeCurrent()); return (-(rand() % 1000)); } if(EA_STOP) BADTEST(); if(TesterStatistics(STAT_TRADES) < EA_MIN_TRADEES) return(-1500.0); if(TesterStatistics(STAT_PROFIT) <= 0) return(TesterStatistics(STAT_PROFIT)); if(SAVE_CONFIG) EA.SaveInputParamToFile(); return(AccountInfoDouble(ACCOUNT_BALANCE) * ((2.0 * (double)TesterStatistics(STAT_TRADES)) / EA_MIN_TRADEES)); #undef BADTEST }
и на русском:
double OnTester() { #define ПЛОХОЙТЕСТ() { srand((int)TimeCurrent()); return (-(rand() % 1000)); } if(ЭКСП_СТОП) ПЛОХОЙТЕСТ(); if(TesterStatistics(STAT_TRADES) < ЭКСП_МИН_СДЕЛОК) return(-1500.0); if(TesterStatistics(STAT_PROFIT) <= 0) return(TesterStatistics(STAT_PROFIT)); if(СОХР_КОНФИГУРАЦИЮ) ЭКСП.СохрПарамВводаВФайл(); return(AccountInfoDouble(ACCOUNT_BALANCE) * ((2.0 * (double)TesterStatistics(STAT_TRADES)) / ЭКСП_МИН_СДЕЛОК)); #undef ПЛОХОЙТЕСТ }
имхо, второй вариант абракадабра ... дальше следует непереводимая игра слов с использованием местных идиоматических выражений (с)
невозможно в голове сложить англ. имена встроенных функций и операторов и перемежать это русскими литералами... как говорится слишком многа букаф ))
Ты быстрый, как ветер! Опередил меня, я тоже привел текст из справки. В дополнение скажу, что С# поддерживает русские имена, к моему удивлению!
using System; namespace CharpDll { public class SharpDll { public double КоличествоОрдеров; } }
Проверил на C++, к моему еще большему удивлению, и там русские имена проходят! Хотя я проверял на VS 2017, думаю, другие компиляторы С++ могут заругаться.
бред, отсебятина, отвратительный стиль... лень материться...
вот переписал первое что попалось:
и на русском:
имхо, второй вариант абракадабра ... дальше следует непереводимая игра слов с использованием местных идиоматических выражений (с)
невозможно в голове сложить англ. имена встроенных функций и операторов и перемежать это русскими литералами... как говорится слишком многа букаф ))
Да, я об этом не подумал, действительно тяжело переключаться, скорость восприятия текста падает.
Да, я об этом не подумал, действительно тяжело переключаться, скорость восприятия текста падает.
я тож не думал, что кириллица так критична при чтении чужого кода, но в прошлом году попросили на каком то форуме какую то мелочь с ЕА сеткой передать, или магик прикрутить или разнести закрытие профит/лоссы или..
мелочь в общем, знаю, что делаю такие вещи от 15 до 30 минут
код был ЕА в целом неплох, процедурный стиль с объявлением всех переменных на глобальном уровне видимости
НО! все переменные были исключительно на русском!
я 5 раз в течении трех часов подходил к этому коду... и реально просто не смог ничего сделать из за кириллицы! - ну вообще никак не получается код такой читать!
Не буду прерывать самозабвенное самоунижение в очередной раз. Это такая русская забава - высмеивать и поносить самих себя. Да, речь именно о русском языке в программировании. Посмотрите, что вы благодаря неуважению к себе и недостатку элементарного человеческого самоутверждения профукали: https://www.youtube.com/watch?v=oQ7G9Dp9y_w
И еще это: https://www.youtube.com/watch?v=UqUPK8cZ-lo
Даже мне вы проигрываете в графике - ваша gui-библиотека значительно слабее моего языка разметки, который написан на русском коде (с англ.индетификаторами).
Так что, ребята, самоунижайтесь дальше, а я буду двигаться вперед и смеятся оглядываясь на вас.)))))
- 2019.10.02
- www.youtube.com
Не буду прерывать самозабвенное самоунижение в очередной раз. Это такая русская забава - высмеивать и поносить самих себя. Да, речь именно о русском языке в программировании. Посмотрите, что вы благодаря неуважению к себе и недостатку элементарного человеческого самоутверждения профукали: https://www.youtube.com/watch?v=oQ7G9Dp9y_w
И еще это: https://www.youtube.com/watch?v=UqUPK8cZ-lo
Даже мне вы проигрываете в графике - ваша gui-библиотека значительно слабее моего языка разметки, который написан на русском коде (с англ.индетификаторами).
Так что, ребята, самоунижайтесь дальше, а я буду двигаться вперед и смеятся оглядываясь на вас.)))))
:)
Вы меняете местами коня и телегу.
Сначала должна быть свобода слова, творчества, экономики.... а уж потом свой код.
и, кстати, ваш язык был бы во много раз востребованней на инглише, и возможно, что на нем уже бы писали сотни людей.
Не забывай, что большие проекты пишут ни разу не в одиночку, а такой стиль не оставляет возможности привлечения к проекту тех, кто не хочет или не может пользоваться великим и могучим.
ну с MQL проектами это не грозит, в 99% случаев ведет проект один программист и один заказчик
кажется на хабре читал когда то статью про "что нужно учитывать разработчику моб.приложения при выходе на рынок Китая" - оказалось, что основная проблема при переводе это компактность всех надписей, т.е. даже если изначальный проект был на англ. то при надписях на иероглифах будет очень много пустого места во всех интерфейсах
а с кириллицей мало того, что есть еще падежи, так и сокращения на кириллице часто будут плохо читаемы, ну и в целом больше стучать по клавиатуре придется - идентификаторы на англ. все равно компактнее
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования