Résumé rapide:
Parce que dans le monde réel, tôt ou tard, vous devez travailler avec du code procédural.
Parce que les langages procéduraux peuvent fonctionner comme une extension ou une introduction aux langages orientés objet, au lieu d'être simplement une alternative.
Complément à la réponse 2. Parce que la POO est plus complexe que la programmation procédurale, il est donc préférable d'apprendre la programmation procédurale en premier.
Parce que dans le monde réel, les programmeurs travaillent avec et combinent plusieurs façons de résoudre les problèmes, la "programmation multiparadigm" AKA, pas seulement un seul paradigme.
La plupart des langages de programmation sont multiparadigm, à un certain niveau, même si leurs concepteurs ou développeurs communs disent le contraire.
[NOUVEAU] Parce que la programmation modulaire qui est généralement mélangée et confondue avec la programmation procédurale, peut être appliquée à la POO. Par conséquent, la question peut être lue comme "Pourquoi devons-nous apprendre la programmation modulaire avant d'apprendre la programmation orientée objet"
Description détaillée de l'ennui:
Le point 1 est très clair, pas d'explication supplémentaire.
Point 2, classes, héritage, polymorphisme, interfaces, etc.
Point 3, je code du Pascal procédural avant d'apprendre le Pascal orienté objet, quand je suis arrivé, j'ai dit: "regardez, les classes sont comme de petits programmes procéduraux ... ... et vous pouvez les faire parler entre elles, cool !!! ".
J'ai entendu la même chose de la part de gens qui sont passés du simple C au C plus plus.
Point 4, La plupart du temps, les programmeurs combinent plusieurs techniques ou paradigmes de programmation ou façons de résoudre un problème. Fonctionnel, procédural, POO, logique.
Même Java "Pure OO" n'est pas aussi simple que la programmation d'objets.
+1 point pour dire "Programmation procédurale" au lieu de "Programmation structurée". Ou programmation modulaire. C'est important.
Cependant, ces termes sont souvent enseignés ensemble et utilisés de manière interchangeable, ils ne le sont pas. La programmation structurée comprend de nombreux concepts, pas seulement l'utilisation de procédures, et l'un d'eux fait en sorte que le programme ne ressemble pas à du "code spaghetti".
Aujourd'hui, j'ai lu plusieurs programmes OO «purs» qui ressemblent à du «code orienté objet spaghetti», ce qui signifie que le programmeur a utilisé la POO, mais son code ressemble à un gâchis.
Plusieurs fois, je peux lire un code OO et dire que le programmeur a appris la programmation structurée avant la POO, car le code est clair et organisé.
Et pour la programmation modulaire, j'ai vu plusieurs applications. en C ++ et PHP qui n'utilise pas de modules. *