Fragen zu OOP in MQL5 - Seite 24

 
Alexey Volchanskiy:

Sharp wurde um das Jahr 2000 herum geboren und steckte noch in den Kinderschuhen, aber es herrschten Pluspunkte, so dass sie eine Brücke von C++ zu Dotnet schlugen, um es populär zu machen. Übrigens wurde Sharp von Delphi- und C++Builder-Entwicklern entwickelt, ich war damals sehr überrascht, wie viele gemeinsame Konzepte es gibt. Nehmen Sie die gleichen Eigenschaften, Ereignisse.

Imho ist Sharp ein ziemlich erfolgreiches Projekt von Microsoft - sie haben nicht nur Leute auf ihre Plattform /Net gelockt, sie haben allen verschiedenen Sprachen eine Syntax für .Net gegeben - man könnte es in Basic schreiben!

 
Igor Makanu:

Imho ist Sharpe ein ziemlich erfolgreiches Projekt von Microsoft - nicht nur, dass sie die Leute auf ihre /Net-Plattform gelockt haben, sondern sie haben auch die vielfältige Sprachsyntax für .Net zur Verfügung gestellt - man könnte es in Basic schreiben!

Aber ich fühle mich nicht von ihr angezogen. Es ist bequem und einfach, aber es fehlt der Antrieb der Pluspunkte. Man entfernt sich von dem Eisen.
 

Ich habe das Forum durchsucht, dank@fxsaber, der viele Beispiele gepostet hat

Magie zum letzten Beispiel hinzufügen )))) Ich bin zu faul, es mit der Hand zu schreiben, ich sehe das Konzept, das ich sehen wollte.

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:
Ich werde nicht hineingezogen. Es ist praktisch und einfach, aber ich habe nicht den Schwung, den ich bei Pluspunkten habe. Sie lassen sich vom Bügeleisen weg treiben.

Ich glaube nicht, dass Sie Illusion haben, dass C + + ist näher an Hardware, ich bezweifle, dass Sie in der Lage sein, irgendwo Dokumente über die korrekte Codierung zu modernen Prozessoren zu finden, war ich gerne lesen von Pentium in späten 90=ões, aber dann, wenn Bereich von Sticks begann schnell zu wachsen, erkannte ich, dass ich nicht einmal lesen kann, und jetzt sogar die Windows setzt Treiber für Prozessoren - imho, wie kann man für einen PC... aber leider funktioniert jetzt alles auf diese Weise - alles virtuell, alles durch vorgefertigte Bibbles, alles durch Compileroptimierung.... im Allgemeinen, imho ist es eine Illusion, dass Sie sehr effektiven Code zu schreiben, ist es klar, dass, wenn der Code ursprünglich durch einen Ort und krummen Händen geschrieben wird, dann wird nichts helfen)))

 
Alexey Volchanskiy:

Ja, die Schärfe ist um eine Größenordnung besser. Und die Geschwindigkeit ist fast die gleiche, das heißt, ohne Cli gewinnen die Profis um das Anderthalbfache.

Ich habe alle möglichen Tests gesehen, die auf nackten Schleifen beruhen, aber das ist so gut wie nichts. Niemand denkt daran, wie viele Threads es unter der CLR gibt (immerhin muss mindestens ein Byte Code kompiliert werden) und wie viel Speicher dieser ganze Kram verbraucht.

Vor langer Zeit habe ich cTrader installiert, und mein Eindruck blieb der eines zurückgebliebenen g.... .

Und ganz allgemein - warum eine weitere Abstraktionsebene schaffen (Bytecode, virtuelle Maschine), wenn wir uns auf die Einheitlichkeit der CPU-Befehle einigen können (obwohl binäre Software durchaus tolerierbar ist), wie z.B. eine von allen realisierte Mindestmenge? Wahrscheinlich der Wunsch, einen Sandkasten zu schaffen, in dem sie Götter und unentbehrlich sind. Wie hartnäckig sie ihr Dotnet vorangetrieben haben, während sie denjenigen, die in Pluszeichen schreiben wollten, das Leben schwer machten.

ZS: Ich spreche nicht von cli c++, das ist ein Missverständnis.

 
Igor Makanu:

Imho ist Sharp ein ziemlich erfolgreiches Projekt von Microsoft - nicht nur, dass sie die Leute auf ihre /Net-Plattform gelockt haben, sondern sie haben auch die vielfältige Sprachsyntax für .Net zur Verfügung gestellt - man könnte es in Basic schreiben!

Ich würde es anders ausdrücken: Die Leute wurden von Windows weggelockt. Dies mag subjektiv sein.

ZS: für die Statistik - es gibt dreimal mehr C/C++ Projekte auf github als auf sharp (Jahr 17).

 
Vict:

ZS: für die Statistik - es gibt dreimal mehr C/C++ Projekte auf github als auf sharp (Jahr 17).

Es ist eine subjektive Bewertung, die Qualität bzw. die Aufgaben der Projekte können sehr gering sein... es ist eine lange Zeit für Spekulationen

Die Zahl der chinesischen und indischen Programmierer ist kein unbedeutender Faktor, um die Situation zu beurteilen - es gibt wirklich zu viele von ihnen, und wir wissen nicht, wie die Branchentrends in diesen Ländern aussehen, vielleicht sitzen sie im Moment auf C++

Und wie ich oben schon schrieb - der Übergang zwischen C++ und C# und zurück ist ziemlich "schmerzlos", Microsoft hat alles getan, damit Programmierer hin und her eilen )))) 2017 wird es eine Menge C++-Projekte geben, 2019 vielleicht eine Menge C#-Projekte - man weiß ja nie

ZS: eine sehr subjektive Einschätzung... Wie viele Projekte gibt es in Python? - alle neuen Google-Videos sind ausschließlich Präsentationen in Python

 
Igor Makanu:

die Qualität bzw. die Ziele der Projekte können sehr gering sein... es gibt eine Menge zu bedenken

Die Zahl der Programmierer aus China und Indien ist kein unwichtiges Moment, um die Situation zu beurteilen - es gibt wirklich viele von ihnen, wir wissen nicht, wie die Branchentrends in diesen Ländern sind, vielleicht sitzen sie jetzt auf C++

Und wie ich oben schon schrieb - der Übergang zwischen C++ und C# und zurück ist ziemlich "schmerzlos", Microsoft hat alles getan, damit Programmierer hin und her eilen )))) 2017 wird es eine Menge C++-Projekte geben, 2019 vielleicht eine Menge C#-Projekte - man weiß ja nie

ZS: eine sehr subjektive Einschätzung... Wie viele Projekte gibt es in Python? - alle neuen Google-Videos sind ausschließlich Präsentationen in Python

Nun, es gibt alle Arten von Projekten in allen Sprachen, im Durchschnitt sollte es also ein durchschnittliches Projekt geben. Detaillierte Statistiken gibt es hier https://githut.info/, aber es ist das 14. Jahr.

Ich möchte Sharp nicht verwenden, und sei es nur aus ideologischen Gründen. Ich würde es lieber in Java schreiben (was allerdings unwahrscheinlich ist).

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:

die Qualität oder vielmehr die Ziele der Projekte können sehr gering sein... es gibt eine Menge zu bedenken

Die Zahl der Programmierer aus China und Indien ist kein unwichtiges Moment, um die Situation zu beurteilen - es gibt wirklich viele von ihnen, wir wissen nicht, wie die Branchentrends in diesen Ländern sind, vielleicht sitzen sie jetzt auf C++

Und wie ich oben schrieb - der Übergang zwischen C++ und C# und zurück ist ziemlich "schmerzlos", Microsoft hat alles getan, damit Programmierer hin und her eilen )))) 2017 wird es eine Menge C++-Projekte geben, 2019 vielleicht eine Menge C#-Projekte - man weiß ja nie

ZS: eine sehr subjektive Einschätzung... Wie viele Projekte gibt es in Python? - alle neuen Google-Videos sind ausschließlich Präsentationen in Python

Im Jahr 2005 arbeitete ich eine Zeit lang für ein deutsches Unternehmen und schrieb eine grafische Benutzeroberfläche für einen Plotter von C++ auf C# um. Ich kannte Sharp zu der Zeit, da ich ein Tutorium hatte, also hatte ich kein Problem mit der Übersetzung. Ich habe aufgehört, weil ich mich gelangweilt habe und jetzt nicht mehr nachdenken muss - ich sitze einfach da und schreibe weiter.

Bei Python ist es mir ein Rätsel, wie diese interpretierte, langsame und hässliche Sprache es geschafft hat, sich an die Spitze zu setzen.

 
Igor Makanu:

Es ist eine subjektive Einschätzung, die Qualität bzw. die Projektaufgaben können sehr gering sein...

Und wie ich oben schrieb - der Übergang von C++ zu C# und zurück ist ziemlich "schmerzlos", Microsoft hat alles getan, damit Programmierer hin und her eilen ))))

Ich stimme mit den Pluspunkten von Sharp überein, aber umgekehrt kann man nichts machen, wenn man c/c++ kennt... Allein die Headerdateien werden jede Lust auf Sharapist zerstören. IMHO.
 
Alexey Volchanskiy:

Bei Python ist es mir ein Rätsel, wie diese interpretierende, zurückgebliebene und hässliche Sprache es geschafft hat, sich an die Spitze zu setzen.

Ich glaube, es lief so ab:

1. Es gibt immer mehr Nutzer als Programmierer oder Menschen, die mit den Grundlagen der Programmierung vertraut sind.

2. Dolmetscher sind für die Benutzer leichter zu verstehen:

a = 2
b = 5
c = a + b

und erhalten eine Antwort von der Maschine, aber Sie verstehen nicht, was sie denkt, aber sobald Sie es schreiben, sehen Sie, dass die Maschine denkt wie Sie)))

3. Wir brauchen einen hochwertigen Interpreter, der den Benutzer nicht mit unnötigem Wissen über Typen und andere Dinge belastet.

4. Um eine breite Verwendung der Sprache zu gewährleisten, muss die Software so offen und zugänglich wie möglich sein.

Die Quintessenz ist, dass 1,2,3,4 - Python hat sich in sich selbst und wenn es eine Armee von Nutzern, wird es sicherlich Probleme zu lösen, indem die Programmierer, die sich ihnen angeschlossen haben und ein Bündel von Bibliotheken

))))


Wladimir Simakow:
Ich stimme mit den Pluspunkten von Sharp überein, aber in der umgekehrten Richtung, wenn Sie c/c++ kennen, können Sie es überhaupt nicht tun... Allein die Headerdateien werden alle Lust auf Sharpe Player zerstören. IMHO.

Sie haben Recht, aber niemand läuft von C# nach C++ - warum? Sie können fertige dll in C++ in Sharp einstecken und es verwenden, außerdem ist es einfach, einen Exe-Stick in C# zu machen, der die dll enthalten wird

Ich weiß nicht einmal, ich habe die Welt von C# für mich entdeckt - ich werde nicht aufgeben, es ist sehr bequem, eine Menge Handbücher im Web, noch mehr fertige Bibliotheken, zehn Leben werden nicht ausreichen, um alles zu versuchen ))))