54Fermer56
GoldenCrystalLe 05/02/2008 à 00:52
De toutes façons quoique tu fasses pour passer de concept "concret" (nombres, ...) à concept "abstrait" (classes, ...) tu dois forcément faire un if.
Une condition c'est une vue de l'esprit. Tu peux la cacher dans un tableau précalculé, dans un polymorphisme fait pour, tu peux inventer tout les trucs tordus que tu veux. Mais conceptuellement ton cerveau remet tout a plat avec des conditions.
Au fond la différence est où ? Le if n'est plus dans ton langage mais dans ta tête, et par dessus le marché du dois faire un boulot supplémentaire pour contourner l'abscence du if en tant que tel dans le langage. Au final il n'y sera pas textuellement mais conceptuellement.

De la façon dont je voit ça, les langages ont tendance à évoluer de la façon de fonctionner de la machine (assembleur) vers un raisonnement humain (langage fonctionnels, puis objet). Seulement le concept objet est bati, par des humains qui plus est, sur les concepts précédents. De ce fait les langages héritent malgré eux des capacités du(des) langage(s) qui les ont précédé, avec les effet néfastes qu'on connait. (Possibilité de programmer en procédural avec langage objet, pointeurs en C++, ...).
Toujours sur le même raisonnement, peut être un peu plus détaillé, tu peux voir par exemple dans une vision "simpliste" => (ASM, C, C++) d'une partie de l'évolution des langages, que chaque langage apporte des concepts qui sont une *extension* de concepts précédents.
De LABEL + TEST + JUMP en ASM, on passe à des structures de controles en C (langage structuré, le cerveau s'y retrouve plus facilement), puis de structures (sans rapport direct avec les structures de contrôle) en C, tu passes à des classes en C++ (les objets décrits peuvent avoir leur propre "façon d'être", c'est également plus proche du raisonnement humain).
On arrive donc a des concepts bien plus évolués qui utilisent toujours les concepts de base.
C'est un peu comme quand tu construis une tour, tu met les fondations (ASM) avant de mettre les premiers murs (C), puis tu rajoutes un étage (C++), et tu continues tant que tu peux.
En fait toi tu veux retirer les fondations. Je pense que l'image est assez claire.