Будут ли конструкторы с параметрами - страница 3

 
Renat:

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

Без более полного соответствия C++ языку уж очень неудобно существующий код переносить в MQL5.

ждем и приятно видеть логичность разработок нового языка - если не ошибаюсь, то даже "домохозяйка" с высшим образованием способна за 3-4 недели написать свой первый код на МТ4, думаю с МТ5 будет аналогичная ситуация. Вот бы еще по больше примеров или некий универсальный шаблон/визард для создания индикаторов .....
MetaDriver:

Нужен (управляемый программистом) механизм возвращения неудачи конструктора

да! но думаю GetLastError() достаточно что бы контролировать ситуацию и не усложнять язык исключениями
 
IgorM:
  .....
  но думаю GetLastError() достаточно что бы контролировать ситуацию и не усложнять язык исключениями

Уважаемый ИгорьМ!

Существующая система обработки ошибок должна остаться, с этим никто не спорит!

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

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

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

Сейчас же везде приходится расставлять if(), и не факт, что вы в каждом таком месте сможете учесть все возможные ошибки. А раз не смог учесть ВСЕ ВОЗМОЖНЫЕ ОШИБКИ, то рано или поздно твоя программа вывалится, и, что самое интересное, ты не поймешь, почему!

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

Ну, вы же явно активно используете функции при программировании? Если вам, к примеру, нужно несколько раз в программе получить значение некоего расчета, вы же, наверное, создадите функцию, которая возвращает значение этого расчета и потом будете вызывать ее, когда нужно?

Теперь представьте, уважаемый Ренат напишет - Функции это зло!

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

Абсурдность этого, в случае функций, понятна.

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

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

Миллионы программеров используют их почти во всех современных языках программирования!!!

 
falkov:

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

...уважаемый Ренат сказал, что исключения - это зло, понять не могу.

На тему же исключений есть своя ветка  Уважаемые разработчики! Планируете ли Вы добавить в MQL5 обработку исключений? Там есть и ответы, и допссылки на материалы.

 
Yedelkin:

На тему же исключений есть своя ветка  Уважаемые разработчики! Планируете ли Вы добавить в MQL5 обработку исключений? Там есть и ответы, и допссылки на материалы.

ага, если учесть,что сам falkov именно эту тему и поднимал :))
 
MetaDriver:

Нужен (управляемый программистом) механизм возвращения неудачи конструктора. 

А смысл? Имхо, если объект не создался, значит все очень плохо -- это ведь не самостоятельный код. Тупо завершается выполнение и все, имхо.
 
TheXpert:
А смысл? Имхо, если объект не создался, значит все очень плохо -- это ведь не самостоятельный код. Тупо завершается выполнение и все, имхо.

Думается мне что некое подобие исключений нужно. Но тут есть одна деталька - на текущий момент среда в которой будет выполняться код (терминал) и язык не "готовы" к такому.

Тем более к такому пока не готовы как минимум половина из тех кто будет кодировать на MQL5.

 
Interesting:

Думается мне что некое подобие исключений нужно. Но тут есть одна деталька - на текущий момент среда в которой будет выполняться код (терминал) и язык не "готовы" к такому.

Тем более к такому пока не готовы как минимум половина из тех кто будет кодировать на MQL5.

Да ладно! ООП внедрили (за что разработчикам ОГРОМНОЕ спасибо!), а обработку исключений никак не получится?! Это чистый С++, подмножеством которого можно считать и MQL5 (это Вам ответ на то, что С++ и MQL это разные вещи, никак не связанные)

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

Вот же терминал написан на С++. И я не поверю, что при написании МТ5 разработчики не использовали исключения!!

ПОТОМУ ЧТО БЕЗ ИСКЛЮЧЕНИЙ НЕЛЬЗЯ НАПИСАТЬ ДЕЙСТВИТЕЛЬНО РОБАСТНЫЕ (НАДЕЖНЫЕ) ПРИЛОЖЕНИЯ!

 
falkov:

Да ладно! ООП внедрили (за что разработчикам ОГРОМНОЕ спасибо!), а обработку исключений никак не получится?! Это чистый С++, подмножеством которого можно считать и MQL5 (это Вам ответ на то, что С++ и MQL это разные вещи, никак не связанные)

1. Да ладно! ООП и на половину не реализован от возможностей любого нормального языка. При этом до уровня о котором мы мечтаем ему еще расти и расти.

Где и кто утверждал что MQL даже в будущем получит функционал C++? О, извиняюсь, перефразирую - "..половину из функционала C++?".

Да и насколько нужна такая совместимость с C++ тоже вопрос хороший. Будут ли игра свечей стоить?

2. Поговорим о том зачем по сути нужны исключения в языке подобном MQL. Неужели с помощью MQL5 будем ракеты в космос запускать и управлять самолетами?

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

Да и серьезных аргументов я пока не видел. Есть хотя бы три причины по которым исключения жизненно необходимы и должны быть добавлены в любом случае (даже не считаясь с последствиями)?

Разве нет других способов решения этих проблем (пусть даже не таких элегантных и удобных)?

3. А почем тогда в MQL еще и многопоточноть не добавит (она тоже вроде в любом современном языке есть, по крайней мере в VB, C++ и Delphi есть)?

Почему другими вопросами не заняться (вместо того чтобы издеваться над компилятором)?

И наконец ПОЧЕМУ РАЗРАБОТЧИКИ ДОЛЖНЫ ЖЕРТВОВАТЬ БЕЗОПАСНОСТЬЮ В ДЛЯ РАСШИРЕНИЯ ФУНКЦИОНАЛА?

При этом замечу что правильно подобной возможностью будет пользоваться 5-10% от общего числа программистов, а проблем возникнуть может на порядок больше (остальным ведь не запретишь использовать функционал языка в соответствии с их пониманием и способностями)?

 

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

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

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

Убогий редактор (хотя уважаемый Ренат не считает его таким) И огромное время, конца которому пока нет, вывода МТ5 в релиз.

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

Кстати, многопоточность - это тоже хорошо. И почему Вы считаете, что это снизит безопасность ПО? Туча программ пишется с использованием ее.

Причем, сначала Вы говорите, "Неужели с помощью MQL5 будем ракеты в космос запускать и управлять самолетами?" - т.е. надежность не сильно важна.

А потом "ПОЧЕМУ РАЗРАБОТЧИКИ ДОЛЖНЫ ЖЕРТВОВАТЬ БЕЗОПАСНОСТЬЮ В ДЛЯ РАСШИРЕНИЯ ФУНКЦИОНАЛА?" - т.е. безопасность все-таки важна.

Я бы поставил вопрос так: Почему разработчики не могут безопасно расширить функциональность? - ответом является первая строка этого моего поста.


Мы с Вами можем так вежливо переругиваться :) толку от этого не будет.

Мне уже давно понятно - надо писать длл-ки в С#. Но мне нравится MQL, вот и надеюсь, что разработчикам мои доводы станут понятными, ибо сказано - "Стучите, и откроется вам"


С уважением, falkov

 
falkov:

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

да, так оно и есть, но без исключений можно обойтись, пусть будут постоянные проверки критичных участков кода, лично я заинтересован в скорейшем выходе стабильно работающего билда МТ5, т.к. постоянные "кривозалатанные" обновления вызывают только не желание переходить на новую платформу, а добавление исключений потребует дополнительное время от разработчиков. К слову, я бы очень хотел бы иметь полнофункциональную работу с графикой - некий canvas, возможность создавать ChildWindow и checkbox, но у разработчиков свои планы по созданию МТ5. По большому счету, никто не запрещает сделать свой мост между терминалом и сторонней программой через dll, разработчики утверждают, что вызов dll теперь очень быстрый
Причина обращения: