Preguntas sobre POO en MQL5 - página 24

 
Alexey Volchanskiy:

Sharp nació alrededor del año 2000 y estaba en sus inicios, pero los pluses mandaban, así que hicieron un puente de C++ a dotnet para su popularización. Por cierto, Sharp fue creado por desarrolladores de Delphi y C++Builder, me sorprendió mucho en ese momento, la cantidad de conceptos comunes que hay. Toma las mismas propiedades, eventos.

En mi opinión, Sharp es un proyecto bastante exitoso de Microsoft - no sólo atrajeron a la gente a su plataforma /Net, sino que dieron a todos los diferentes lenguajes la sintaxis para .Net - ¡puedes escribirlo en Basic!

 
Igor Makanu:

En mi opinión, Sharp es un proyecto bastante exitoso de Microsoft - no sólo atrajeron a la gente a su plataforma /Net, sino que dieron toda la sintaxis de lenguaje diversa para .Net - ¡podrías escribirlo en Basic!

Pero no me atrae. Es cómodo y sencillo, pero le falta el empuje de los pluses. Te alejas de la plancha.
 

He buscado en el foro, gracias a@fxsaber que ha puesto muchos ejemplos

añadir magia al último ejemplo )))) Me da pereza escribirlo a mano, veo el concepto que quería 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:
No me dejo absorber. Es cómodo y sencillo, pero no consigo el empuje que consigo en los pluses. Te alejas de la plancha.

No creo que usted tiene la ilusión, que C ++ está más cerca de hardware, dudo, que usted será capaz de encontrar en cualquier lugar docs en la codificación correcta a los procesadores modernos, yo era aficionado a la lectura por Pentium a finales de 90=ões, pero luego, cuando la gama de palos comenzó a crecer rápidamente, me di cuenta, que ni siquiera puedo leer, y ahora incluso el Windows pone los controladores para los procesadores - imho, ¿cómo puede uno para un pc ... pero, por desgracia, ahora todo funciona así: todo virtual, todo a través de biblios ya hechos, todo a través de la optimización del compilador.... en general, imho es una ilusión que escribir código muy eficaz, está claro que si el código está escrito originalmente a través de un lugar y las manos torcidas, entonces nada va a ayudar)))

 
Alexey Volchanskiy:

Sí, es más fácil en sharpe por un orden de magnitud. Y la velocidad es casi la misma, eso sin cli los profesionales ganan por un factor y medio.

He visto todo tipo de pruebas de este tipo basadas en bucles desnudos, pero se trata de nada. Nadie piensa mucho en cuántos hilos hay en el CLR (bueno, al menos hay que compilar un byte de código) y cuánta memoria se come todo esto.

Hace tiempo instalé cTrader, y mis impresiones seguían siendo las de un lento g.... .

Y en general, ¿por qué crear otra capa de abstracción (bytecode, máquina virtual), cuando podemos ponernos de acuerdo sobre la uniformidad de las instrucciones de la CPU (aunque el software binario es bien tolerable), como un conjunto mínimo realizado por todos? Probablemente el deseo de crear una caja de arena donde sean dioses e indispensables. Con qué obstinación impulsaron su dotnet, al tiempo que complicaban la vida a quienes deseaban escribir en pluses.

ZS: No estoy hablando de cli c++, eso es un malentendido.

 
Igor Makanu:

En mi opinión, Sharp es un proyecto bastante exitoso de Microsoft - no sólo atrajeron a la gente a su plataforma /Net, sino que dieron toda la sintaxis de lenguaje diversa para .Net - ¡podrías escribirlo en Basic!

Yo lo diría de otra manera: la gente se alejó de Windows. Esto puede ser subjetivo.

ZS: para las estadísticas - hay tres veces más proyectos C/C++ en github que en sharp (año 17).

 
Vict:

ZS: para la estadística - hay tres veces más proyectos C/C++ en github que en sharp (año 17).

Es una evaluación subjetiva, la calidad o más bien las tareas de los proyectos pueden ser muy pequeñas... es mucho tiempo para especular

El número de programadores chinos e indios no es un factor insignificante para calibrar la situación - realmente son demasiados y no sabemos cuáles son las tendencias de la industria en estos países, tal vez estén sentados en C++ en este momento

Y como escribí más arriba, la transición entre C++ y C# y viceversa es bastante "indolora", Microsoft hizo todo lo posible para que los programadores se apresuraran a ir y venir )))) En 2017 habrá muchos proyectos de C++, en 2019 puede haber muchos proyectos de C#, nunca se sabe

ZS: una estimación muy subjetiva... ¿cuántos proyectos hay en python? - todos los nuevos videos de google son exclusivamente todas las presentaciones en python

 
Igor Makanu:

la calidad o más bien los objetivos de los proyectos pueden ser muy pequeños... hay mucho que pensar

El número de programadores de China e India no es un momento sin importancia para evaluar la situación - realmente son muchos, no sabemos cuáles son las tendencias de la industria en estos países, tal vez están sentados en C++ ahora

Y como escribí más arriba, la transición entre C++ y C# y viceversa es bastante "indolora", Microsoft hizo todo lo posible para que los programadores se apresuraran a ir y venir )))) En 2017 habrá muchos proyectos de C++, en 2019 puede haber muchos proyectos de C#, nunca se sabe

ZS: una estimación muy subjetiva... ¿cuántos proyectos hay en python? - todos los nuevos videos de google son exclusivamente todas las presentaciones en python

Bueno, hay todo tipo de proyectos en todos los idiomas, en promedio entonces debe haber un proyecto promedio. Hay estadísticas detalladas aquí https://githut.info/, pero es el 14º año.

No quiero usar Sharp, aunque sólo sea por razones ideológicas. Preferiría escribirlo en java (aunque es poco probable).

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:

la calidad o más bien los objetivos de los proyectos pueden ser muy pequeños... hay mucho que pensar

El número de programadores de China e India no es un momento sin importancia para evaluar la situación - realmente son muchos, no sabemos cuáles son las tendencias de la industria en estos países, tal vez están sentados en C++ ahora

Y como escribí más arriba, la transición entre C++ y C# y viceversa es bastante "indolora", Microsoft hizo todo lo posible para que los programadores se apresuraran a ir y venir )))) En 2017 habrá muchos proyectos de C++, en 2019 puede haber muchos proyectos de C#, nunca se sabe

ZS: una estimación muy subjetiva... ¿cuántos proyectos hay en python? - todos los nuevos videos de google son exclusivamente todas las presentaciones en python

En 2005, trabajé para una empresa alemana durante un tiempo. Estaba reescribiendo una interfaz gráfica de usuario para un plotter de C++ a C#. En su momento conocí a Sharp, ya que tenía alguna tutoría, así que no tuve ningún problema con la traducción. Lo dejé porque me aburría y ahora no tengo que pensar, sólo sentarme y reescribir.

Con Python es un misterio para mí cómo este lenguaje interpretado, lento y feo consiguió llegar a la cima.

 
Igor Makanu:

Es una estimación subjetiva, la calidad o más bien las tareas del proyecto pueden ser muy pequeñas...

Y como escribí arriba - la transición entre C++ a C# y viceversa es bastante "indolora", Microsoft hizo todo lo posible para que los programadores se apresuraran a ir y venir ))))

Estoy de acuerdo con los pluses en Sharp, pero a la inversa, si sabes c/c++ no puedes hacer nada... Sólo los archivos de cabecera aplastarán todo deseo de sharapista. EN MI OPINIÓN.
 
Alexey Volchanskiy:

Con Python, es un misterio para mí cómo este lenguaje interpretativo, retardado y feo consiguió llegar a la cima.

Creo que fue así:

1. siempre hay más usuarios que programadores o personas que conocen los fundamentos de la programación.

2. los intérpretes son más fáciles de entender para los usuarios:

a = 2
b = 5
c = a + b

y obtienes una respuesta de la máquina, pero no entiendes lo que piensa, pero una vez que lo escribes, ves que la máquina piensa como tú)))

3. necesitamos un intérprete de calidad, que no cargue al usuario con conocimientos innecesarios sobre tipos y otras cosas.

4. para garantizar el uso masivo de la lengua, el software debe ser lo más abierto y accesible posible.

La conclusión es que 1,2,3,4 - Python se ha unido en sí mismo y si hay un ejército de usuarios, seguramente habrá problemas que resolver por los programadores que se han unido a ellos y han hecho un montón de bibliotecas

))))


Vladimir Simakov:
Estoy de acuerdo con los pluses en Sharp, pero en sentido contrario, si sabes c/c++ no puedes hacerlo en absoluto... Los archivos de cabecera por sí solos aplastarán todas las ganas de sharpear al jugador. EN MI OPINIÓN.

Tienes razón, pero nadie pasa de C# a C++ - ¿por qué? Puedes conectar una dll lista en C++ a Sharp y usarla, además es fácil hacer un exe-shtick en C# que contendrá la dll

Ni siquiera sé, he descubierto el mundo de C# por mí mismo - no voy a dejarlo, es muy cómodo, un montón de manuales en la web, aún más bibliotecas listas, diez vidas no serán suficientes para probar todo ))))