¿Por qué se llama reflexión reflexión en lugar de introspección?

79

¿Cuál es el origen del término reflexión? Parece más una introspección. ¿Por qué no se llama así?

Introspección : una mirada hacia adentro; específicamente, el acto o proceso de autoexamen.

Reflexión :

  1. el acto de reflejar o el estado de ser reflejado.
  2. una imagen; representación; contrapartida
  3. una fijación de los pensamientos en algo; cuidadosa consideración
  4. un pensamiento que ocurre en consideración o meditación.
tvanfosson
fuente
de hecho, esta es una pregunta interesante. Ya no estoy seguro, veo alguna diferencia: p
Johannes Schaub - litb
Definición agregada, si no te gusta puedes eliminarla.
mmcdole
1
Al menos en TCL no parece haber ninguna diferencia
jk.
@ JohannesSchaub-litb: esta es una pregunta excelente / imprescindible. Estaba a punto de publicarlo si no me lo habían preguntado antes. Solo muestra cuánto hacemos las cosas en la vida sin prestar atención a los más mínimos detalles.
Veverke

Respuestas:

63

Hay una respuesta interesante en el artículo de Wikipedia en francés para Reflexión ( aquí )

La reflexión se puede descomponer en dos partes:

  • introspección: un programa puede examinarse a sí mismo.
  • intercesión: un programa puede modificar su estado / significado.

Por tanto, la reflexión es una propiedad "más fuerte" que la introspección. Por eso dices introspección de tipo para la capacidad de conocer tipos en tiempo de ejecución (y cambiarlos es otra acción: conversión / transmisión).

EDITAR: en realidad me acabo de dar cuenta de que la primera respuesta decía exactamente eso ^^. Es hora de desconectarme ...

Piotr Lesnicki
fuente
2
Al leer el artículo de Wikipedia en francés, me di cuenta de que en francés, el término "reflexión" puede estar más asociado que en inglés con la idea de "reflexividad", de algo que opera sobre sí mismo. Esta parece ser la forma correcta de entender el término que se aplica a los lenguajes de programación.
Jan Hettich
Todavía no puedo ver cómo responde esto a la pregunta: de hecho, wikipedia ayuda a diferenciar la introspección de tipos en que se "satisface" con solo obtener información, sin cambiarla (aunque nuevamente, ¿cómo es esto exactamente relevante ... cómo muchas veces usamos la reflexión para crear instancias de tipos sobre la marcha, y entonces, ¿dónde sucedió el cambio aquí? No teníamos el objeto recién creado en primer lugar, no ocurrió ningún otro cambio a menos que consideres "llegar a existir" como un cambio, aunque el cambio no fue en el tema inspeccionado en sí (tampoco tendría mucho sentido).
Veverke
Entonces la reflexión es un "proceso" que comprende más pasos que la "introspección". ¿Dónde está todavía el argumento convincente a favor de la reflexión? La introspección como palabra va de la mano con lo que el término representa en un contexto de programación, mientras que "reflexión", ¿de qué manera el acto de reflejar una instrucción / tipo está más cerca de "modificar" que de "introspección"?
Veverke
27

La reflexión proviene de la idea de "autoexamen, auto-modificación y autorreplicación", reflexionando sobre uno mismo con el propósito de cambiar. En programación, usa la reflexión para examinar la estructura del programa en sí en el contexto de su uso en lugar de simplemente examinarlo. Lo que obtiene es una representación del programa que puede utilizar para modificarlo, en lugar de los datos sobre los que opera.

Puede encontrar más información en el artículo de wikipedia. .

tvanfosson
fuente
No respondiste a su pregunta en absoluto. Introspección: una mirada hacia adentro; específicamente, el acto o proceso de autoexamen.
mmcdole
@ Simucal, lo siento, no fui más claro. He editado la respuesta para especificar que se trata de un examen con la intención de actuar.
tvanfosson
Él hizo. Afirma que el término reflexión se utiliza de acuerdo con la capacidad del programa para reflexionar sobre los cambios modificándose a sí mismo.
Filip Dupanović
1
@kRON, mi respuesta inicial no fue tan específica.
tvanfosson
Todavía no veo cómo responde esto a la pregunta: de hecho, wikipedia ayuda a diferenciar la introspección de tipos porque se "satisface" con solo obtener información, sin cambiarla (aunque, de nuevo, ¿cómo es esto exactamente relevante ... cómo muchas veces usamos la reflexión para crear instancias de tipos sobre la marcha, y entonces, ¿dónde sucedió el cambio aquí? No teníamos el objeto recién creado en primer lugar, no se produjo ningún otro cambio a menos que consideres "llegar a existir" como un cambio, aunque el cambio no estaba en el tema inspeccionado en sí (tampoco tendría mucho sentido).
Veverke
4

Existe otro concepto llamado introspección de tipos que se refiere a la capacidad de determinar el tipo de un objeto en tiempo de ejecución.

editar: me doy cuenta de que su pregunta tenía la intención de ser independiente del lenguaje, pero en Java, la reflexión se usa para identificar qué miembros tiene un objeto, mientras que la introspección le permite identificar qué propiedades de JavaBeans tiene un objeto, por lo que la clase de introspección el paquete java.beans. Sin embargo, no estoy seguro de cuál sería la diferencia exacta entre los términos en otros idiomas,

dancavallaro
fuente
4

El término reflexión proviene de la disertación de doctorado de 1982 de Brian Cantwell Smith que se puede encontrar en http://publications.csail.mit.edu/lcs/pubs/pdf/MIT-LCS-TR-272.pdf

Lo que se ha llegado a llamar reflexión es a menudo mera introspección, es decir, acceso a metadatos. Los requisitos de Smith para la reflexión incluían una conexión causal desde los metadatos hacia atrás, y este suele ser el componente que falta. Una forma de imaginar la reflexión es el acceso a la implementación, y no simplemente la implementación de una nueva instancia de un cálculo, sino el acceso de un cálculo a su propia implementación. Ciertamente, la API de reflexión original de Java recibió un nombre incorrecto, ya que no reflejaba en este sentido.

Ed Puckett
fuente
1

En .Net creo que el término Reflexión es muy apropiado porque no es el tipo en sí lo que se examina, es el manifiesto del código, que es solo una descripción.

Guge
fuente
1

La reflexión, en el sentido de las definiciones 3 y 4, puede ser introspectiva. Es decir, la introspección es una reflexión sobre uno mismo. Creo que introspección es la mejor palabra para referirse al acto de código analizándose a sí mismo porque la palabra es más específica, pero no creo que la reflexión sea del todo inapropiada.

Greg Graham
fuente