• [^] # Re: Héritage...

    Posté par . En réponse au journal Le problème de la POO pratiquée par des étudiants. Évalué à 3.

    Peut-être que la notion de composition a des racines mathématiques traumatisantes pour les étudiants qui ont eu à faire de l'analyse au lycée et en premier cycle. ;-)

    Alors que l'héritage, on peut l'expliquer sans passer par des gros mots mathématiques (oui bon OK, on peut parler composition sans parler de maths, mais honnêtement, je vois bien plein de profs céder à la facilité ... « C'est comme la composition que vous avez apprise en Seconde »)

    Plus sérieusement, pendant des années la notion de composition était plus ou moins « réservée » aux langages fonctionnels parce que par définition ils la permettent (absence d'effets de bord, tout ça). Mais depuis quelques années maintenant on observe une vraie convergence de notions issues des mondes fonctionnels et objet, parfois sous forme de mécanismes cachés, parfois sous forme d'ajouts à la syntaxe du langage.

    Le seul problème que je vois à l'héritage en POO, c'est qu'effectivement il n'est pas expliqué aux étudiants (dont j'ai fait partie) à quel point la chaîne d'héritage est « figée ». En C++ il existe bien l'héritage multiple qui assouplit pas mal de choses, mais manque de bol, il est tellement facile de merder avec que mes profs en avaient vaguement parlé, mais avaient dit un truc du genre : « C'est comme le goto. Vous avez intérêt à avoir une vraie bonne raison de l'utiliser que vous pouvez justifier dans vos programmes. » (avec un indice additionnel du genre « pas besoin de goto ou d'héritage multiple dans les projets qu'on vous donnera » pour bien nous dissuader).