Pourquoi la reflection s’appelle reflection au lieu de l’introspection?

Quelle est l’origine du terme reflection? Cela ressemble plus à une introspection. Pourquoi n’est-ce pas appelé ça?

Introspection : Un regard vers l’intérieur; spécifiquement, l’acte ou le processus d’auto-examen.

Réflexion :

  1. l’acte de réfléchir ou l’état d’être reflété.
  2. une image; représentation; homologue
  3. une fixation des pensées sur quelque chose; examen attentif
  4. une pensée se produisant en considération ou en méditation.

Il y a une réponse intéressante sur l’article de Wikipédia en français pour Reflection ( ici )

La reflection peut être décomposée en deux parties:

  • introspection: un programme peut s’examiner
  • intercession: un programme peut modifier son état / sa signification.

La reflection est donc une propriété «plus forte» que l’introspection. C’est pourquoi vous dites taper introspection pour pouvoir connaître les types à l’exécution (et les changer est une autre action: conversion / conversion).

EDIT: en fait je viens de réaliser que la première réponse disait exactement ça ^^. Il est temps de me détwigr …

La reflection découle de l’idée de «l’auto-examen, de la modification de soi et de la réplication de soi», en réfléchissant à soi-même aux fins du changement. En programmation, vous utilisez la reflection pour examiner la structure du programme lui-même dans le contexte de son utilisation plutôt que de l’examiner. Ce que vous obtenez est une représentation du programme que vous pouvez utiliser pour le modifier, plutôt que les données sur lesquelles il fonctionne.

Plus d’informations peuvent être trouvées à l’article de Wikipedia. .

Il existe un autre concept appelé introspection de type qui fait référence à la possibilité de déterminer le type d’un object à l’exécution.

edit: Je me rends compte que votre question était censée être indépendante du langage, mais en Java, la reflection est utilisée pour identifier les membres d’un object, tandis que l’introspection vous permet d’identifier les propriétés JavaBeans d’un object. le package java.beans. Je ne suis pas sûr de ce que la différence exacte entre les termes serait dans d’autres langues, cependant,

Le terme reflection vient de la thèse de doctorat de 1982 de Brian Cantwell Smith qui peut être trouvée à http://publications.csail.mit.edu/lcs/pubs/pdf/MIT-LCS-TR-272.pdf

Ce que l’on appelle la reflection est souvent une simple introspection, c’est-à-dire un access aux métadonnées. Les exigences de Smith en matière de reflection incluaient un lien de causalité entre les métadonnées et il s’agit généralement du composant manquant. Une façon d’imaginer la reflection est l’access à l’implémentation, et pas simplement l’implémentation d’une nouvelle instance d’un calcul, mais l’access d’un calcul à sa propre implémentation. Certainement, le reflet original de Java était mal nommé car il ne reflétait pas ce sens.

Dans .Net, je pense que le terme Reflection est très approprié car ce n’est pas le type lui-même qui est examiné, mais bien le manifeste du code, qui n’est qu’une description.

La reflection, au sens des définitions 3 et 4, peut être introspective. C’est-à-dire que l’introspection est une reflection sur soi-même. Je pense que l’introspection est le meilleur mot à utiliser pour parsingr le code lui-même, car le mot est plus spécifique, mais je ne pense pas que la reflection soit totalement inappropriée.