La POO sera-t-elle demandée dans MQL5 ? - page 2

 
Svinozavr >> :

Qu'est-ce qui vous intéresse, le processus ou le résultat final ?)

Les deux m'intéressent, mais le résultat final est un peu plus. ("... La POO vous donne de nombreuses façons de ralentir vos programmes...")

Je ne vois pas en quoi la POO me permettrait d'écrire plus rapidement qu'avec une approche procédurale, et cela l'emporterait sur tous les inconvénients de la POO. Il est clair qui en a besoin - le développeur qui écrit pour les autres.


Laissez-moi vous donner une analogie : le premier a pris un couteau et a sculpté une figure en filigrane, tandis que le second s'est coupé la moitié du doigt avec le même couteau. Quel est le but de tout cela ? N'importe quel outil peut être utilisé pour créer à la fois un "chouchou" et un véritable clochard. Tout dépend du programmeur, s'il est un artisan ou s'il a une étincelle de talent. C'est une digression, mais en substance - si vous préférez FOP, alors utilisez-le davantage.

 

En créant ce sous-genre, je voulais voir les arguments en faveur de la POO dans les projets destinés à la MT. Peut-être à cause de mon ignorance - je ne suis pas en train de flirter - je ne les ai pas vus. Je ne les vois pas non plus maintenant.

Permettez-moi de résumer vos messages (merci à tous, d'ailleurs) :

1. Commodité et rapidité de la mise en œuvre du projet.

C'est l'ampleur que doit avoir un projet pour être aussi pratique ? Montrez-moi quelque chose qui a été créé pour 4 et qui serait plus pratique à faire avec la POO. Pas de réponse.

2. Maintenance, mises à niveau.

Encore une fois - la taille du projet.

3. 5 est plus rapide parce que qui se soucie de savoir comment programmer.

Eh bien, ce n'est pas du tout un argument. Aucun commentaire.

3. Le caractère manuel comme raison de la lenteur de la POO.

Oui. J'écris habituellement des programmes avec mes mains mais si je veux utiliser la POO, je tourne le dos à l'ordinateur. ))) Non. La POO sera plus lente qu'une procédure en termes d'algorithme.

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

(haussement d'épaules) Comprenez que je ne suis pas contre la POO, je voulais juste découvrir par moi-même ce qu'elle peut m'apporter comme tâches pour MT - dans la création d'indices, de scripts, d'Expert Advisors.

OK. Il y a une aide le 5. Qui peut donner un exemple d'un simple indirect de MT4 standard écrit en utilisant OOP sur 5 ? Vous pourrez y voir. Vous pouvez également estimer les délais à l'œil à partir du texte, de la lisibilité du programme, etc.

 
Svinozavr писал(а) >>

1. Commodité et rapidité de la mise en œuvre du projet.

Quelle doit être l'ampleur d'un projet pour ressentir cette commodité ? Montrez-moi quelque chose qui a été créé pour 4 et qui serait plus pratique à faire avec la POO. Pas de réponse.

2. Maintenance, mises à niveau.

Encore une fois - la taille du projet.

1. la POO est très pratique pour ceux qui en comprennent les principes de base. Vous pouvez le ressentir même dans les applications les plus simples. Toute application est plus facile à réaliser avec la POO.

2. La taille d'un projet n'est pas un obstacle tant qu'il n'est pas difficile de le comprendre. Et si un programme est orienté objet, il n'est pas très difficile de le comprendre. Le terminal de SaxoBank en est un exemple. Il est écrit en C#, qui est un langage orienté objet. Chaque DLL contient environ 20 000 lignes de code. Sans la POO, il serait presque impossible de comprendre une telle quantité d'informations, a fortiori de la moderniser.

 
Le problème de la 5 n'est pas la POO. Il n'est toujours pas clair comment mettre en œuvre des prérequis plus importants que ceux mis en œuvre dans 4. Le travail avec les objets graphiques se fait de manière "cancéreuse". Les développeurs ont promis de l'améliorer, mais... ... aucune amélioration n'a été ressentie jusqu'à présent. Il est devenu possible de programmer des jouets.
 
Svinozavr писал(а) >>

Quelle doit être l'ampleur d'un projet pour ressentir cette commodité ? Montrez-moi quelque chose qui a été créé pour 4 et qui serait plus pratique à faire avec la POO. Pas de réponse.

La ZUP de Nen serait probablement un bon exemple. Il y a beaucoup de choses délicates là-dedans. La seule masse du code source inspire le respect (368Kb v82), sans parler du contenu.
 
En 5, personne n'a supprimé la programmation procédurale. Si vous n'aimez pas la POO, écrivez des programmes à l'ancienne. Mais ils ont créé un énorme problème avec les indicateurs graphiques. Elles seront très difficiles à mettre en œuvre. Et pour les programmeurs. Et pour ceux qui tradent manuellement en utilisant les indicateurs graphiques. Les traders ordinaires - et non les programmeurs - devront se recycler. Et tout le monde ne sera pas en mesure de le faire correctement.
 
Il semble que MQ croit qu'il n'y a de trading qu'avec des robots automatisés. Et le 5 est précisément orienté vers les robots. Ils ont décidé d'éliminer le trading manuel en tant que classe.
 

Ils n'ont plus de POO à leur base (bien que la POO absolue soit pratiquement inutilisable). Nous aurions dû créer des classes abstraites dès le début et utiliser l'héritage et le polymorphisme pour atteindre les vrais objets. Par exemple, pour créer une classe de base abstraite pour les indicateurs personnalisés avec des méthodes et des propriétés abstraites. Il est préférable de construire un arbre hiérarchique de classes : un arbre pour les objets graphiques, pour le travail avec le compte, pour les horaires et l'accès aux séries chronologiques, etc. Et pour les procédures et fonctions prédéfinies, il ne faut laisser que les routines élémentaires nécessitant de la rapidité. Vous pourriez alors étendre les capacités de la plate-forme à partir de n'importe quel niveau d'abstraction, ce qui réduirait la taille du code, améliorerait sa lisibilité et sa facilité de compréhension pour les autres programmeurs. Et dans MT5 déjà implémenté des choses assez complexes au niveau des procédures (en fait toute la plateforme est prête à l'emploi) et je n'ai pas vu la possibilité d'accéder par des pointeurs au moins aux descripteurs des structures internes créées, ce qui est très limitant (à en juger par l'aide). En général, la nécessité de la POO est discutable, avec une telle implémentation nous pourrions être limités aux structures et au placement dynamique. La POO doit être soutenue depuis le bas par une hiérarchie de classes étendue .

 

Il faut 1 à 3 ans de programmation pour se rendre compte que les programmes ne sont PAS de l'écriture, mais de la lecture.

Il faut encore un ou deux ans pour réaliser que les programmes ne sont pas écrits pour un ordinateur, mais pour un humain (en particulier, pour soi-même).

Il faut ensuite un ou deux ans pour s'apercevoir que la POO et le C++ contredisent le mode de pensée humanoïde et la méthode de construction des langages humains.

Il faut encore un ou deux ans pour étudier le code des autres et réaliser que les programmes les meilleurs et les plus fiables sont écrits en Ce classique.

Après cela, il suffit de lire l'interview de Dijkstra sur le fait que le C++ et la POO lui donnent des maux d'estomac.

Et après cela (4-9 ans au total), les questions "sur la POO" ne se posent plus du tout, et de telles discussions ne provoquent qu'un sourire indulgent.

 
AlexEro >> :

Et après cela (4 à 9 ans au total), il n'y a plus aucune question "sur la POO", et de telles discussions ne suscitent qu'un sourire condescendant.

>> Je compatis.