Perguntas sobre OOP em MQL5 - página 24

 
Alexey Volchanskiy:

Sharp nasceu por volta do ano 2000 e estava em sua infância, mas as vantagens eram grandes, então eles fizeram uma ponte de C++ para dotnet para popularização. A propósito, Sharp foi criado por desenvolvedores Delphi e C++Builder, eu fiquei muito surpreso naquela época, quantos conceitos comuns existem. Tomar as mesmas propriedades, eventos.

imho, Sharp é um projeto bem sucedido da Microsoft - eles não apenas atraíram as pessoas para sua plataforma /Net, eles deram todas as diferentes linguagens de sintaxe para .Net - você poderia escrevê-lo em Basic!

 
Igor Makanu:

imho, Sharpe é um projeto bem sucedido da Microsoft - eles não apenas atraíram as pessoas para sua plataforma /Net, mas eles deram toda a sintaxe de linguagem diversa para .Net - você poderia escrevê-lo em Basic!

Mas eu não me sinto atraído por ela. É conveniente e simples, mas falta-lhe o ímpeto das vantagens. Você se distancia do ferro.
 

Pesquisei no fórum, graças a@fxsaber que postou muitos exemplos

acrescente magia ao último exemplo )))) Sou preguiçoso demais para escrevê-lo à mão, vejo o conceito que eu queria ver.

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:
Não sou sugado para dentro. É conveniente e direto, mas eu não tenho a força de vontade que eu tenho em plenas condições. Você se afasta do ferro.

Eu não acho que você tenha ilusão, que o C++ está mais próximo do hardware, duvido, que você seja capaz de encontrar em qualquer lugar documentos sobre a codificação correta para processadores modernos, eu gostava de ler pela Pentium no final dos 90=ões, mas então, quando a gama de bastões começou a crescer rapidamente, eu percebi, que eu não consigo nem ler, e agora até o Windows coloca drivers para processadores - imho, como se pode para um pc... mas, infelizmente, agora tudo funciona desta maneira - tudo virtual, tudo através de bíblias prontas, tudo através da otimização do compilador.... em geral, imho é uma ilusão que você escreve um código muito eficaz, é claro que se o código é originalmente escrito através de um lugar e mãos tortas, então nada vai ajudar))))

 
Alexey Volchanskiy:

Sim, é mais fácil de afiar por uma ordem de grandeza. E a velocidade é quase a mesma, ou seja, sem cliente os profissionais ganham por um fator e meio.

Já vi todos os tipos de testes baseados em loops nus, mas não se trata de nada. Ninguém pensa muito em quantos fios há sob CLR (bem, pelo menos um byte de código deve ser compilado) e quanta memória tudo isso come.

Há muito tempo eu instalei o cTrader, e minhas impressões permaneceram a partir de uma lenta g.... .

E em geral, por que criar outra camada de abstração (bytecode, máquina virtual), quando podemos concordar sobre a uniformidade das instruções da CPU (embora o software binário seja bem tolerável), como um conjunto mínimo realizado por todos? Provavelmente o desejo de criar uma caixa de areia onde eles sejam deuses e indispensáveis. Quão teimosamente eles empurraram sua rede de pontos, ao mesmo tempo em que dificultaram a vida daqueles que desejavam escrever com plenos poderes.

ZS: Não estou falando do cli c++, isso é algum tipo de mal-entendido.

 
Igor Makanu:

imho, Sharp é um projeto bem sucedido da Microsoft - eles não apenas atraíram as pessoas para sua plataforma /Net, mas eles deram toda a sintaxe de linguagem diversa para .Net - você poderia escrevê-lo em Basic!

Eu diria o contrário - as pessoas eram atraídas para longe do Windows. Isto pode ser subjetivo.

ZS: para estatísticas - há três vezes mais projetos C/C++ em github do que em sharp (ano 17).

 
Vict:

ZS: para fins estatísticos - há três vezes mais projetos C/C++ em github do que em sharp (ano 17).

É uma avaliação subjetiva, a qualidade ou melhor, as tarefas dos projetos podem ser muito pequenas... é um longo tempo para especular

O número de programadores chineses e indianos não é um fator insignificante para avaliar a situação - há realmente muitos deles e não sabemos quais são as tendências do setor nesses países, talvez eles estejam sentados em C++ no momento

E como escrevi acima - a transição entre C++ e C# e vice-versa é bastante "indolor", a Microsoft fez de tudo para que os programadores corressem para frente e para trás )))) Em 2017 haverá muitos projetos C++, em 2019 poderá haver muitos projetos C# - você nunca sabe

ZS: uma estimativa muito subjetiva... Quantos projetos existem em python? - todos os novos vídeos do google são exclusivamente todas as apresentações em python

 
Igor Makanu:

a qualidade, ou melhor, os objetivos dos projetos podem ser muito pequenos. há muito em que pensar

O número de programadores da China e da Índia não é um momento sem importância para avaliar a situação - há realmente muitos deles, não sabemos quais são as tendências do setor nesses países, talvez eles estejam sentados em C++ agora

E como escrevi acima - a transição entre C++ e C# e vice-versa é bastante "indolor", a Microsoft fez de tudo para que os programadores corressem para frente e para trás )))) Em 2017 haverá muitos projetos C++, em 2019 poderá haver muitos projetos C# - você nunca sabe

ZS: uma estimativa muito subjetiva... Quantos projetos existem em python? - todos os novos vídeos do google são exclusivamente todas as apresentações em python

Bem, há todos os tipos de projetos em todos os idiomas, em média, então deveria haver um projeto médio. Há estatísticas detalhadas aqui https://githut.info/, mas é o 14º ano.

Eu não quero usar Sharp, nem que seja apenas por razões ideológicas. Preferia escrevê-lo em java (improvável, porém).

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:

a qualidade, ou melhor, os objetivos dos projetos podem ser muito pequenos. há muito em que pensar

O número de programadores da China e da Índia não é um momento sem importância para avaliar a situação - há realmente muitos deles, não sabemos quais são as tendências do setor nesses países, talvez eles estejam sentados em C++ agora

E como escrevi acima - a transição entre C++ e C# e vice-versa é bastante "indolor", a Microsoft fez de tudo para que os programadores corressem para frente e para trás )))) Em 2017 haverá muitos projetos C++, em 2019 poderá haver muitos projetos C# - você nunca sabe

ZS: uma estimativa muito subjetiva... Quantos projetos existem em python? - todos os novos vídeos do google são exclusivamente todas as apresentações em python

Em 2005, trabalhei por algum tempo para uma empresa alemã. Estava reescrevendo uma GUI para um plotter de C++ para C#. Eu só conhecia Sharp na época porque me foi dado algum tutorial, então a tradução não foi nem mesmo um problema. Desisto, porque me aborreci e agora não tenho que pensar - apenas sento e reescrevo.

Com Python é um mistério para mim como esta linguagem interpretada, lenta e feia conseguiu chegar ao topo.

 
Igor Makanu:

É uma estimativa subjetiva, a qualidade ou melhor, as tarefas do projeto podem ser muito pequenas...

E como escrevi acima - a transição entre C++ para C# e para trás é bastante "indolor", a Microsoft fez de tudo para que os programadores se apressassem em ir e vir ))))

Concordo com as vantagens da Sharp, mas inversamente, se você sabe c/c++ você não pode fazer nada... Somente os arquivos de cabeçalho esmagarão todo o desejo de sharapist. IMHO.
 
Alexey Volchanskiy:

Com Python, é um mistério para mim como esta linguagem interpretativa, retardada e feia conseguiu chegar ao topo.

Acho que foi assim:

1. sempre há mais usuários do que programadores ou pessoas que estão familiarizadas com os princípios básicos da programação.

2. Os intérpretes são mais fáceis de entender para os usuários:

a = 2
b = 5
c = a + b

e obter uma resposta da máquina, mas você não entende o que ela pensa, mas uma vez que você a escreve, você vê que a máquina pensa como você)))

3. Precisamos de um intérprete de qualidade, que não sobrecarregaria um usuário com conhecimentos desnecessários sobre tipos e outras coisas.

4. A fim de garantir o uso em massa do idioma, o software deve ser o mais aberto e acessível possível.

O resultado final é que 1,2,3,4 - Python uniu-se em si mesma e se houver um exército de usuários, certamente haverá problemas a serem resolvidos pelos programadores que se juntaram a eles e fizeram um monte de bibliotecas

))))


Vladimir Simakov:
Eu concordo com as vantagens da Sharp, mas na direção oposta, se você sabe c/c++ não pode fazer isso de jeito nenhum... Somente os arquivos de cabeçalho esmagarão todo o desejo de afiar o jogador. IMHO.

Você está certo, mas ninguém corre de C# a C++ - por quê? Você pode conectar a dll pronta em C++ em Sharp e usá-la, além disso é fácil fazer um exe-shtick em C# que conterá a dll

Nem sei, descobri o mundo do C# por mim mesmo - não vou desistir, é muito confortável, muitos manuais na web, bibliotecas ainda mais prontas, dez vidas não serão suficientes para tentar tudo ))))

Razão: