Вопросы по ООП в MQL5 - страница 24

 
Alexey Volchanskiy:

Просто шарп родился где-то около 2000 года и был тогда в очень зачаточном состоянии, а плюсы рулили, вот и сделали мост С++ на дотнет для популяризации.  Кстати, шарп создавали разработчики Delphi и C++Builder, я в то время очень удивлялся, сколько там много общих концепций. Взять те же свойства, события.

имхо, Шарп это довольно удачный проект от Майкрософт - они мало того, что под свою платформу /Net народ переманили, дык и дали весь разношерстный синтаксис языков под .Net - хоть на бейсике пиши!

 
Igor Makanu:

имхо, Шарп это довольно удачный проект от Майкрософт - они мало того, что под свою платформу /Net народ переманили, дык и дали весь разношерстный синтаксис языков под .Net - хоть на бейсике пиши!

А меня не затаскивает. Вроде и удобно и просто, но драйва, как в плюсах, что ли нет. От железа отдаляешься.
 

прошелся поиском по форуму, благо @fxsaber много где примеров выкладывал

добавим магию в прошлый пример ))) , лень руками писать, саму концепцию, что хотел увидеть, вроде вижу, теперь  можно и меньше по клаве стучать

interface IStrategy
  {  void Algorithm()                 {Print("Это не должно запускаться!!!"); } };
//+------------------------------------------------------------------+
class CStrategy : public IStrategy
  {
protected:
   int               x;
  };
//+------------------------------------------------------------------+
#define CLASS(NAME) class NAME: public CStrategy{\
public:              NAME()   {Print(__FUNCTION__);  x = 01;    }\
void              Algorithm() {Print(__FUNCTION__, ", x = ", x);} };
//+------------------------------------------------------------------+

CLASS( CStrategy_01 );
CLASS( CStrategy_02 );

//+------------------------------------------------------------------+
class Context
  {
private:
   IStrategy         *s;
public:
                     Context(IStrategy *_strategy)    { Print(__FUNCTION__); s = _strategy;  }
                    ~Context()                        { delete s;                            }
   void              GetStrategy()  { s.Algorithm();                       }
  };
//+------------------------------------------------------------------+
Context c1(new CStrategy_01);
Context c2(new CStrategy_02);
//+------------------------------------------------------------------+
void OnStart()
  {
   c1.GetStrategy();
   c2.GetStrategy();
  }
//+------------------------------------------------------------------+

Vladimir Simakov:
А меня не затаскивает. Вроде и удобно и просто, но драйва, как в плюсах, что ли нет. От железа отдаляешься.

по моему это у Вас иллюзия, что на С++ к железу ближе, сомневаюсь, что где то сможете найти доки по правильному написанию кода чтобы к современным процессорам максимально эффективно писать код, я в конце 90=х увлекался чтением по Пеньтиумам, но потом когда линейка пеньков начала быстро расти, понял, что не успеваю даже читать, а сейчас вообще под процессоры уже драйвера винда ставит - имхо бред, как можно под проц дрова... но увы, сейчас все так работает - все виртуально, все через готовые библы, все через оптимизацию компилятора.... в общем, имхо это иллюзия что что то пишешь очень эффективное, понятно, что если код изначально через одно место и кривыми руками писан, то ничего не поможет )))

 
Alexey Volchanskiy:

Да, на шарпе проще на порядок. И скорость почти одинаковая, вот без cli плюсы выигрывают раза в полтора. 

Видел всякие подобные тесты на основе голых циклов, только это ни о чём. Никто там не задумывается сколько потоков под CLR (ну хотя бы байт код скомпилировать ведь надо) и сколько памяти всё это хозяйство отожрёт.

Давным давно как-то ставил cTrader, впечатления остались как о тормозном г.... .

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

ЗЫ: я не о cli c++, это вообще какое-то недоразумение.

 
Igor Makanu:

имхо, Шарп это довольно удачный проект от Майкрософт - они мало того, что под свою платформу /Net народ переманили, дык и дали весь разношерстный синтаксис языков под .Net - хоть на бейсике пиши!

я бы по другому сказал - народ с винды выгнали. Может и субъективно.

ЗЫ: для статистики - на github проектов на C/C++ раза в три больше чем на шарпе (17 год).

 
Vict:

ЗЫ: для статистики - на github проектов на C/C++ раза в три больше чем на шарпе (17 год).

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

и не маловажный момент для оценки ситуации, это количество программеров из Китая и Индии - их действительно очень много, мы не знаем какие тренды в отрасли в этих странах, возможно они на С++ сейчас сидят

ну и как выше писал - переход между С++ на C# и обратно довольно "безболезненный", тут Майкрософт сделало все чтобы программеры тудым-сюдым метались ))) , 2017 много на С++, в 2019 может быть много на C# проектов - тут не угадаешь

ЗЫ: очень субьективная оценка... а на Питоне сколько проектов? - все новые видео от Гугла исключительно все презентации на Питоне

 
Igor Makanu:

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

и не маловажный момент для оценки ситуации, это количество программеров из Китая и Индии - их действительно очень много, мы не знаем какие тренды в отрасли в этих странах, возможно они на С++ сейчас сидят

ну и как выше писал - переход между С++ на C# и обратно довольно "безболезненный", тут Майкрософт сделало все чтобы программеры тудым-сюдым метались ))) , 2017 много на С++, в 2019 может быть много на C# проектов - тут не угадаешь

ЗЫ: очень субьективная оценка... а на Питоне сколько проектов? - все новые видео от Гугла исключительно все презентации на Питоне

Ну задачи проекты всякие на всех языках есть, в среднем то должен получится некий средний проект. Тут есть подробная статистика https://githut.info/, правда 14 год.

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

GitHut - Programming Languages and GitHub
GitHut - Programming Languages and GitHub
  • githut.info
GitHub provides publicly available API to interact with its huge dataset of events and interaction with the hosted repositories. GitHub Archive takes this data a step further by aggregating and storing it for public consumption. GitHub Archive dataset is also available via Google BigQuery. The quantitative data used in GitHut is collected from...
 
Igor Makanu:

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

и не маловажный момент для оценки ситуации, это количество программеров из Китая и Индии - их действительно очень много, мы не знаем какие тренды в отрасли в этих странах, возможно они на С++ сейчас сидят

ну и как выше писал - переход между С++ на C# и обратно довольно "безболезненный", тут Майкрософт сделало все чтобы программеры тудым-сюдым метались ))) , 2017 много на С++, в 2019 может быть много на C# проектов - тут не угадаешь

ЗЫ: очень субьективная оценка... а на Питоне сколько проектов? - все новые видео от Гугла исключительно все презентации на Питоне

Я в 2005 г. немного поработал в немецкой конторе, переписывал GUI для рулонного принтера с С++ на C#. Я тогда шарп знал постольку поскольку, дали какой-то учебник, так вообще не было проблем с переводом. Ушел, потому то стало скучно, а так сиди, да переписывай, думать не надо.

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

 
Igor Makanu:

субьективная оценка, качество вернее задачи проектов могут быть очень маленькими... 

ну и как выше писал - переход между С++ на C# и обратно довольно "безболезненный", тут Майкрософт сделало все чтобы программеры тудым-сюдым метались ))) 

С плюсов на шарп соглашусь, а вот в обратную сторону, если знания c/c++ от слова никак... Одни заголовочные файлы шарписту все желание на корню зарубят. ИМХО.
 
Alexey Volchanskiy:

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

думаю дело обстояло так:

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

2. интерпретаторы более понятны пользователям - написал:

a = 2
b = 5
c = a + b

и получил ответ от машины, да не поймешь что она там думает, а тут раз написал и видишь что машина думает как ты )))

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

4. чтобы была массовость языка, софт должен быть максимально открытым и доступным

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

))))


Vladimir Simakov:
С плюсов на шарп соглашусь, а вот в обратную сторону, если знания c/c++ от слова никак... Одни заголовочные файлы шарписту все желание на корню зарубят. ИМХО.

тут Вы правы, но обратно как раз из C# в С++ особо никто и не бежит - зачем? ну подключи готовую dll на С++ в Шарп и юзай, тем более без проблем можно сделать один exe-шник на C# который будет содержать в себе dll

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

Причина обращения: