Используете ли вы ООП в программировании на MQL4 и MQL5? - страница 2

 

Строительство отдельными кирпичами - процедурное программирование.

Строительство блоками из кирпичей и/или блоками из разных материалов, целые стены и перекрытия - ООП.

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

 
Andrey Dik:

Строительство отдельными кирпичами - процедурное программирование.

Строительство блоками из кирпичей и/или блоками из разных материалов, целые стены и перекрытия - ООП.

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

Ну да, для небольшого скрипта я не буду делать класс, нет никакого смысла. Но если предполагаю использовать функционал в дальнейшем - обязательно оформляю в виде класса. Давно завел папку include/AvLib, где храню эту коллекцию.

Посмотрел результаты, если не считать любопытствующих зевак ("хочу посмотреть результат") побеждают счастливые люди с ответом "а что такое ООП" :) Почему счастливые - потому что у них, как в детстве, все впереди ))

Хотя, есть вариант 2 - это не программисты.

17% А что такое ООП?

(9) 

20% Хочу посмотреть ответы 

 
Нейтрального ответа не хватает. Использую по мере необходимости.
 
Alexey Volchanskiy:
Недавно встретился с бывшим коллегой по работе, тоже программист. Разговорились за рюмкой чая, как-то плавно продолжили старый спор об использовании ООП. Он ярый поклонник использования чистого процедурного программирования, пользы ООП не понимает или отказывается понимать.
Сразу скажу, человек не дурак, писал в свое время программы для DSP на ассемблере с распараллеливанием до 6 инструкций за такт на ядро, а ядер было аж четыре с обменом по шине DMA! Я вот так не могу, мой маленький моск не вмещает такого параллелизма, да еще на асме ))
Мне в то время тоже приходилось писать и на ассемблере, хотя 90% это был чистый Си, несмотря на то, что портированный GCC компилятор был С++.

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

Мне также по работе приходилось заниматься и другими вещами, в том числе писать на любимом шарпе всяческие проверочные утилиты, тестовые программы и т.д. А в шарпе, как вы знаете, без ООП программу написать просто невозможно, тут вам не С++. И я тогда создал довольно неплохую библиотеку на C# со всякими проверочными тестами, измерениями и т.д., естественно, все это имело вид дерева наследованных классов, как в стандартной библиотеке MQL4/5.

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

В общем, как и в те далекие времена, мы не пришли к консенсусу, он до сих пор работает в embedded, ну а я тружусь на ниве форекса и вовсю использую ООП возможности MQL4/5. Использую и радуюсь, так как лично мне это сильно облегчает жизнь.
И бог с ним, оверхедом ))

А у вас как, с ООП сложилось? (так обычно про отношения с дамой спрашивают :)
Зачем такие эмоционально окрашенные вопросы - люблю/не люблю - боюсь/не боюсь? Вы это специально или не подумавши?))
 
Dmitriy Skub:
Зачем такие эмоционально окрашенные вопросы - люблю/не люблю - боюсь/не боюсь? Вы это специально или не подумавши?))
Вы боитесь эмоций? Почему вы их не любите? Вы хотите об этом поговорить? ))
 
Alexey Volchanskiy:
Вы боитесь эмоций? Почему вы их не любите? Вы хотите об этом поговорить? ))
Понятно, спасибо за ответ))
 
Dmitriy Skub:
Понятно, спасибо за ответ))
его ответ -- это копир поведения программы Элиза [https://ru.wikipedia.org/wiki/Элиза_(программа)] или ей подобных. Там программа отвечали именно в таком стиле, имитируя интеллектуальную беседу.
 
Andrey F. Zelinsky:
его ответ -- это копир поведения программы Элиза [https://ru.wikipedia.org/wiki/Элиза_(программа)] или ей подобных. Там программа отвечали именно в таком стиле, имитируя интеллектуальную беседу.
От черт, пытался подражать важному психоаналитику, а тут какая-то программа....мельчаю ))
 
Alexey Volchanskiy:
От черт, пытался подражать важному психоаналитику, а тут какая-то программа....мельчаю ))
Это по терминологии ООП называется Наследованием.  :)
 
Alexey Volchanskiy:

Все же ООП дает некоторый оверхед как по памяти, так и по быстродействию в сравнении с чисто процедурным программированием. 

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

  • Снижается повторная использованность кода, и как следствие и ты пишешь велосипед дважды трижды и четырежды. Вместо того, что бы собрать критически важные функции в один класс в область private, ты каждый раз повторяешь одни и те же процедуры не оптимальным способом.
  • Дурачек, все уже написано до тебя! Например: пытаешься создать свою сортировку? - Значит по определению пытаешься превзойти сортировку Хоара. Но кто ты такой, что бы соревноваться с Хоаром? Он ученый и посвятил всю свою жизнь поиску оптимальных алгоритмов. А ты? Выпил пива и решил, что все рожденные до тебя были дебилами, и только ты знаешь как лучше отсортировать множество {1,3,5,10,8,4,5,...}? 
  • Фундаментальные алгоритмы информатики практически все написаны в стиле ООП! Примеры: списки, словари, стеки и пр. пр. Есть куча примеров, где один из алгоритмов в стиле ООП, рвет как тузик грелку процедурное программирование и как в плане использования памяти и как в плане использования ЦП. 
  • Процедурное программирование существенно отличается от человеческого мышления. Объектно-ориентированное программирование - суть человеческого мышления. Но! человеческое мышление оптимизировано по определению эволюционными изменениями и конкуренцией между видами. То, как Вы мыслите - правильно и оптимально с точки зрения информатики, и следовательно, Вы уже являетесь программистом по определению.
Причина обращения: