Wird OOP in MQL5 gefragt sein? - Seite 2

 
Svinozavr >> :

Was interessiert Sie, der Prozess oder das Endergebnis?)

Ich bin an beidem interessiert, aber das Endergebnis ist irgendwie mehr. ("... OOP gibt Ihnen viele Möglichkeiten, Ihre Programme zu verlangsamen...")

Ich sehe nicht, wo OOP mir erlauben würde, schneller zu schreiben als mit einem prozeduralen Ansatz, und das würde alle Nachteile von OOP aufwiegen. Es ist klar, wer es braucht - der Entwickler, der für andere schreibt.


Ich möchte Ihnen ein Beispiel geben: Der erste nahm ein Messer und schnitzte eine filigrane Figur, während der zweite sich mit demselben Messer einen halben Finger abschnitt. Was ist der Sinn der Sache? Mit jedem Werkzeug kann man sowohl ein "Schätzchen" als auch einen totalen Penner schaffen. Es hängt alles vom Programmierer ab, ob er ein Handwerker ist oder ein Funken Talent hat. Dies ist eine Abschweifung, aber im Grunde genommen - wenn Sie FOP bevorzugen, dann verwenden Sie es weiter.

 

Bei der Erstellung des Themas wollte ich Argumente für OOP in Projekten für MT-Zwecke sehen. Vielleicht lag es an meiner Unwissenheit - ich will nicht kokettieren -, dass ich sie nicht gesehen habe. Ich sehe sie auch jetzt nicht.

Lassen Sie mich Ihre Beiträge zusammenfassen (übrigens vielen Dank an Sie alle):

1. Bequemlichkeit und Schnelligkeit der Projektdurchführung.

So groß müsste ein Projekt sein, um diese Bequemlichkeit zu spüren? Zeigen Sie mir etwas, das für 4 erstellt wurde und mit OOP bequemer zu erledigen wäre. Keine Antwort.

2. Wartung, Upgrades.

Nochmals: die Größe des Projekts.

3. 5 ist schneller, denn wen interessiert schon, wie man programmiert.

Nun, das ist überhaupt kein Argument. Kein Kommentar.

3. Händigkeit als Grund für langsameres OOP.

Ja. Normalerweise schreibe ich Programme mit den Händen, aber wenn ich OOP verwenden will, kehre ich dem Computer den Rücken zu. ))) Nein. OOP wird in Bezug auf den Algorithmus langsamer sein als ein prozeduraler Algorithmus.

------------

(achselzuckend) Verstehen Sie, dass ich nicht gegen OOP bin, ich wollte nur für mich selbst herausfinden, was es mir an Aufgaben für MT geben kann - bei der Erstellung von Indizes, Skripten, Expert Advisors.

GUT. Am 5. gibt es eine Hilfe. Wer kann ein Beispiel für einen einfachen indirekten MT4-Standard geben, der mit OOP auf 5? Dort werden Sie es sehen können. Sie können Verzögerungen auch nach Augenmaß anhand des Textes, der Lesbarkeit des Programms usw. abschätzen.

 
Svinozavr писал(а) >>

1. Die Bequemlichkeit und Schnelligkeit des Projekts.

Wie groß muss ein Projekt sein, um diesen Komfort zu spüren? Zeigen Sie mir etwas, das für 4 erstellt wurde und mit OOP bequemer zu erledigen wäre. Keine Antwort.

2. Wartung, Upgrades.

Nochmals: die Größe des Projekts.

1) OOP ist sehr praktisch für diejenigen, die die grundlegenden Prinzipien verstehen. Das spürt man selbst bei den einfachsten Anwendungen. Jede Anwendung ist mit OOP bequemer zu erstellen.

2. Der Umfang eines Projekts ist kein Hindernis, solange es nicht schwer zu verstehen ist. Und wenn ein Programm objektorientiert ist, ist es nicht sehr schwer, es zu verstehen. Ein Beispiel ist das SaxoBank-Terminal. Es ist in C# geschrieben, einer objektorientierten Sprache. Jede DLL enthält etwa 20 000 Codezeilen. Ohne OOP wäre es fast unmöglich, eine solche Menge an Informationen zu verstehen, und erst recht, sie zu modernisieren.

 
Das Problem in 5 liegt nicht in der OOP. Es ist immer noch unklar, wie die großen Voraussetzungen, die in 4. Die Arbeit mit grafischen Objekten wird "krebsartig" durchgeführt. Die Entwickler haben versprochen, es zu verbessern, aber... ... bis jetzt ist keine Verbesserung zu spüren. Es wurde möglich, Spielzeug zu programmieren.
 
Svinozavr писал(а) >>

Wie groß muss ein Projekt sein, um diesen Komfort zu spüren? Zeigen Sie mir etwas, das für 4 erstellt wurde und mit OOP bequemer zu erledigen wäre. Keine Antwort.

Wahrscheinlich wäre nen's ZUP ein gutes Beispiel. Da sind eine Menge kniffliger Sachen drin. Allein die schiere Masse des Quellcodes flößt Respekt ein (368Kb v82), ganz zu schweigen vom Inhalt.
 
In 5 hat niemand die verfahrenstechnische Programmierung abgeschafft. Wenn Sie OOP nicht mögen, schreiben Sie Programme auf die alte Art. Aber sie haben ein großes Problem mit grafischen Indikatoren geschaffen. Es wird sehr schwierig sein, sie umzusetzen. Und für Programmierer. Und für diejenigen, die manuell mit den grafischen Indikatoren handeln. Gewöhnliche Händler - keine Programmierer - werden umschulen müssen. Und nicht jeder wird in der Lage sein, dies richtig zu tun.
 
Es scheint, dass MQ glaubt, dass es nur den Handel mit automatisierten Robotern gibt. Und die 5 ist genau auf Roboter ausgerichtet. Sie haben beschlossen, den manuellen Handel als Klasse abzuschaffen.
 

Sie haben kein OOP mehr in ihrem Kern (obwohl absolutes OOP praktisch unbrauchbar ist). Wir hätten von Anfang an abstrakte Klassen erstellen und Vererbung und Polymorphismus nutzen sollen, um zu echten Objekten zu gelangen. Zum Beispiel, um eine abstrakte Basisklasse für benutzerdefinierte Indikatoren mit abstrakten Methoden und Eigenschaften zu erstellen. Es ist besser, einen hierarchischen Baum von Klassen aufzubauen: einen Baum für grafische Objekte, für die Arbeit mit dem Konto, für Zeitpläne und den Zugang zu Zeitreihen usw. Und bei den vordefinierten Prozeduren und Funktionen sollten nur die elementaren Routinen übrig bleiben, die Geschwindigkeit erfordern. Dann könnte man die Fähigkeiten der Plattform auf jeder beliebigen Abstraktionsebene erweitern, was die Codegröße verringern und die Lesbarkeit und Verständlichkeit für andere Programmierer verbessern würde. Und MT5 hat bereits ziemlich komplexe Dinge auf Prozedurenebene implementiert (in der Tat ist die gesamte Plattform einsatzbereit) und ich habe nicht die Möglichkeit des Zugriffs durch Zeiger zumindest auf Deskriptoren der erstellten internen Strukturen gesehen, was sehr einschränkend ist (nach der Hilfe zu urteilen). Im Allgemeinen ist die Notwendigkeit von OOP fraglich, denn mit einer solchen Implementierung könnten wir uns auf Strukturen und dynamische Platzierung beschränken. OOP sollte von unten durch eine umfangreiche Klassenhierarchie unterstützt werden .

 

Man braucht 1-3 Jahre Programmierpraxis, um zu erkennen, dass Programme NICHT SCHREIBEN, sondern LESEN sind.

Es dauert weitere 1-2 Jahre, bis man erkennt, dass Programme nicht für einen Computer, sondern für einen Menschen (vor allem für sich selbst) geschrieben werden.

Dann dauert es 1-2 Jahre, bis man merkt, dass OOP und C++ der humanoiden Denkweise und der Methode, menschliche Sprachen zu entwickeln, widersprechen.

Es dauert weitere 1-2 Jahre, bis man den Code anderer Leute studiert und erkennt, dass die besten und zuverlässigsten Programme in klassischem Ce geschrieben sind.

Danach reicht es aus, Dijkstras Interview über C++ und OOP zu lesen, das ihm Bauchschmerzen bereitet.

Und danach (insgesamt 4-9 Jahre) stellen sich Fragen "über OOP" gar nicht mehr, und solche Diskussionen verursachen nur ein nachsichtiges Lächeln.

 
AlexEro >> :

Und danach (insgesamt 4-9 Jahre) gibt es überhaupt keine Fragen mehr "über OOP", und solche Diskussionen rufen nur ein herablassendes Lächeln hervor.

>> Ich kann das nachvollziehen.