Reflection



  • ➡ Reflektion ist, wenn ich danach mehr weiß als vorher, wobei das Wissen bereits zum vorherigen Zeitpunkt existierte ich mir darüber aber noch nicht im Klaren war.



  • Reflketionist schrieb:

    ➡ Reflektion ist, wenn ich danach mehr weiß als vorher, wobei das Wissen bereits zum vorherigen Zeitpunkt existierte ich mir darüber aber noch nicht im Klaren war.

    Das Substantiv zu "reflektieren" ist Reflexion, Reflektion gibt es nicht. Eine einfache Definition für Reflexion bzw. Introspektion (ich bevorzuge sprachlich das Letzte) ist das Ermitteln von Programmeigenschaften/Komponenteneigenschaften zur Laufzeit. Introspektion ist IMHO immer dann nötig wenn ein A mit einem vorher "unbekannten" (weil dynamisch hinzugefügten) B kommunizieren soll, deswegen benötigt B die Fähigkeit über sich selbst Auskunft geben zu können damit A dann weiß was es mit B so anstellen kann. Die Introspektion selbst kann unterschiedlich realisiert sein, z.B. Java hat das Reflection Paket, COM die universelle Schnittstelle IUnkown und CORBA bedient sich eines "Metaobjektdienstes".



  • Jester schrieb:

    Ja, Du kannst das gerne Reflection nennen, dann darf ich dich aber auch Xin nennen. 🙂 Reflection ist genau das was ich oben beschrieben habe. Der Begriff Programm ist vielleicht nicht 100% fest zu machen, aber es ist mal recht klar, dass ein Anwendungsprogramm nicht den Treiber beinhaltet.

    Ah, das ist schon sehr interessant. Denn gerade bei Datenbanktreibern wird oft die Highlevel Schnittstelle im Programm selbst hinterlegt und agiert als Treiber für die Datenbank (emuliert zB funktionalität die der jeweilige Low Level Treiber nicht bietet).

    Ich kann also den Treiber Metafragen stellen und bekomme Metainformation die eine Mischung aus dem ist was der LowLevel Treiber erzählt und das was die High Level Schnittstelle weiß/kann.

    Ist da also ein Teil Reflection und ein teil nicht Reflection dabei oder wie sieht es aus?

    Ähnlich ist es bei DirectX. Das liefert mir ja auch Informationen über die Grafikschnittstelle - ist das Reflection oder nicht?

    Allein die Trennung zwischen Programm und nicht Programm ist sehr fragwürdig - was ist mit IPC? Ist Reflection über IPC möglich uU sogar über RMI also über externen Rechner?

    Wo trennt man Programm von Programm? Was ist ein Treiber anderes als eine Programm und was ist ein Programm anderes als eine Klasse mit einer öffentlichen Schnittstelle?

    Ich kann den Fokus um viele Ebenen nach oben und unten bewegen. zB baut man aus Klassen Module. Aus Modulen baut man Anwendungen. Aus Anwendungen baut man Systeme. Immer das selbe Baukasten prinzip. Gerade unter Unix sehr weit verbreitet dass man aus Programmen größere Programme baut.

    Die Konzepte sind dabei überall gleich. Einfaches Bausteinprinzip. Und jetzt behauptest du Reflection ist per Definition nur innerhalb eines Programmes möglich...?



  • Jester schrieb:

    Das ist garnicht so sehr der zentrale Punkt. Wichtig ist vor allem, dass Reflection (zu deutsch Reflexion, nicht Wiedergabe) es dem Programm ermöglicht die *eigene* Struktur zu betrachten und zu modifizieren.

    es ist egal ob es die eigene struktur betrachtet oder eine fremde, es gibt viele tools die reflection nutzen um fremde 'programme' zu inspizieren oder auch um sie zu nutzen, z.b. unit tester.

    Genau deswegen ist ein Listing der möglichen Parameter auch keine Reflection, weil nämlich der Benutzer hier die Information bekommt und nicht das Programm.

    wenn man an informationen ueber eine reflektionsschnittstelle kommt, ist es reflektion. und eine reflektions schnittstelle ist eine die ein vordefiniertes kommunikationsprotokoll bietet welches es erlaubt auf informationen zuzugreifen, die nicht direkt bekannt sind.

    um auf das 110 beispiel zu kommen.
    die fragen nach 'wie ist ihr name, wo sind sie, wird ein krankenwagen benoetigt' waeren vielleicht nur property abfragen wenn man sie kurz beantwortet. wenn jedoch gefragt wird 'beschreiben sie was passiert ist', wird 'strukturinformation' uebertragen.

    Genauso verhält es sich auch mit der Abfrage der möglichen Bildschirmauflösungen. Hier werden Hardware-Eigenschaften abgefragt und wiederum nicht die Struktur des Programms. Daher handelt es sich dabei nicht um Reflection.

    wenn du jedoch die struktur des treibers abfagst, z.b. informationen ueber vorhandene funktionen und deren einsprungpunkte (falls die vorhanden sind), ist es reflektion.
    wenn du nur aufloesungen enumerierst, ist es nicht wirklich reflektion, wenn du jedoch alle moeglichen daten erhaelst von einer struktur bei der nur das protokoll bekannt ist, nicht jedoch die struktur, ist es reflektion. z.b. "800x600@60Hz"



  • Naja, ich denke das Thema ist durch. Wen es interessiert, der kann ja jederzeit nachlesen was richtig ist. Es steht euch natürlich weiterhin frei hier eure eigene Definition bewerben. Ich hatte auch nicht erwartet, dass es euch leichtfällt einzuräumen, dass ihr da ein bißchen über's Ziel hinausgeschossen seid.



  • Jester schrieb:

    Naja, ich denke das Thema ist durch. Wen es interessiert, der kann ja jederzeit nachlesen was richtig ist. Es steht euch natürlich weiterhin frei hier eure eigene Definition bewerben. Ich hatte auch nicht erwartet, dass es euch leichtfällt einzuräumen, dass ihr da ein bißchen über's Ziel hinausgeschossen seid.

    Wenn man keine Argumente hat beleidigt man.
    2 beleidigende Posts in Folge ist auto-loss, oder?



  • Shade Of Mine schrieb:

    Wenn man keine Argumente hat beleidigt man.
    2 beleidigende Posts in Folge ist auto-loss, oder?

    ich hab doch alles geschrieben. geh zu wikipedia und folge allen quellenlinks dort. an jeder stelle steht, dass es bei reflexion darum geht die *eigene* struktur zu erfassen bzw. daraus/darüber schlüsse zu ziehen. du lässt das eigene einfach weg und dadurch ist es nunmal falsch. was soll ich hier noch lange rumerzählen? du willst es nicht so haben, weil es nicht so sein darfst und spaltest hier jetzt so lange haare bis du deinen sieg erklären darfst, also mach das jetzt bitte einfach.

    ich sehe auch nicht wirklich wo hier was beleidigend ist. die faktenlage ist klar, und damit auch worum hier gerade noch gefochten wird, und genau darauf hab ich keine lust.



  • Jester schrieb:

    ich hab doch alles geschrieben. geh zu wikipedia und folge allen quellenlinks dort. an jeder stelle steht, dass es bei reflexion darum geht die *eigene* struktur zu erfassen bzw. daraus/darüber schlüsse zu ziehen. du lässt das eigene einfach weg und dadurch ist es nunmal falsch.

    OK, dh Reflection über IPC oder RMI ist keine Reflection auch wenn ich die Java Reflection API verwenden.

    Habs verstanden.

    PS: und die Beleidigungen sind wichtig fürs Ego 😉
    (Wenn du nicht weißt wo deine Beleidigungen waren, dann solltest du menschlich mal über dich nachdenken)



  • Jester schrieb:

    ich sehe auch nicht wirklich wo hier was beleidigend ist.

    Ich allerdings auch nicht. Du hast es gut auf den Punkt gebracht.
    Wenn es jetzt schon beleidigend sein soll, wenn jemand anderer Meinung ist, sollte man sich solche Diskussionen sparen.



  • Shade Of Mine schrieb:

    Jester schrieb:

    ich hab doch alles geschrieben. geh zu wikipedia und folge allen quellenlinks dort. an jeder stelle steht, dass es bei reflexion darum geht die *eigene* struktur zu erfassen bzw. daraus/darüber schlüsse zu ziehen. du lässt das eigene einfach weg und dadurch ist es nunmal falsch.

    OK, dh Reflection über IPC oder RMI ist keine Reflection auch wenn ich die Java Reflection API verwenden.

    Habs verstanden.

    fast, wenn es sich um eine zusammenghörige Applikation handelt natürlich schon.
    zudem ist reflection natürlich immer reflection, aber nur weil du über irgendeine schnittstelle irgendwas abfragst ist es nicht automatisch reflection. was auch wieder zu der zentralen frage führt, welche Art von Informationsabfrage ist im Sinne Deiner Definition keine Reflection?

    PS: und die Beleidigungen sind wichtig fürs Ego 😉

    sprich nur für dich selbst. wenn du weiter irgendwo klärungsbedarf siehst, dann schick mir doch ne mail, aber kommt mir nicht mit "du bist ein schlechter mensch - warum? - wenn du keine so schlechter mensch wärst wüßtest du warum"

    und vielleicht noch was generelles zum thema auto-loss, weil ich glaube, dass das hier eine zentrale rolle spielt. ich nehme an, dass du nicht meinst, dass wenn man jemanden beleidigt dessen aussagen automatisch wahr werden, also hast du wohl gemeint, dass derjenige dann die diskussion gewinnt. Das ist vielleicht mal ein guter Ansatz für etwas Reflexion darüber, worum es einem persönlich in Diskussionen geht -- viel Spaß beim Gewinnen.



  • Man kann übrigens auch in Assembler (oder C oder C++ etc.) Reflections haben. Man muss ja nur die Symboltabelle des eigenen Executables auslesen :).

    Und C++ bietet über Templates ja auch prima compiletime Reflections.



  • Shade Of Mine schrieb:

    Wenn man keine Argumente hat beleidigt man.
    2 beleidigende Posts in Folge ist auto-loss, oder?

    Wenn man darauf herumreitet, anstatt mal endlich die jetzt schon mehrfach gestellte Frage

    Jester schrieb:

    Vielleicht magst Du mir mal irgendeinen Vorgang beschreiben, der sich anhand Deiner Definition *nicht* als Reflection bezeichnen lässt? Dein Konzept ist so allgemein, dass es bis zur völligen Nutlosigkeit verkommt und so ziemlich alles beinhaltet.

    zu beantworten, dann ist das auch nicht unbedingt ein "Siegeszeichen" 😉



  • TheTester schrieb:

    Reflketionist schrieb:

    ➡ Reflektion ist, wenn ich danach mehr weiß als vorher, wobei das Wissen bereits zum vorherigen Zeitpunkt existierte ich mir darüber aber noch nicht im Klaren war.

    Das Substantiv zu "reflektieren" ist Reflexion, Reflektion gibt es nicht. Eine einfache Definition für Reflexion bzw. Introspektion (ich bevorzuge sprachlich das Letzte) ist das Ermitteln von Programmeigenschaften/Komponenteneigenschaften zur Laufzeit. Introspektion ist IMHO immer dann nötig wenn ein A mit einem vorher "unbekannten" (weil dynamisch hinzugefügten) B kommunizieren soll, deswegen benötigt B die Fähigkeit über sich selbst Auskunft geben zu können damit A dann weiß was es mit B so anstellen kann. Die Introspektion selbst kann unterschiedlich realisiert sein, z.B. Java hat das Reflection Paket, COM die universelle Schnittstelle IUnkown und CORBA bedient sich eines "Metaobjektdienstes".

    Natürlich gibt es das Wort, du hast doch gerade eben gesehen, dass ich es benutzt habe 👍
    Ist neue Rechtschreibung und wird auch in die neue Reform aufgenommen, google kennt es auch schon kannst ja mal nach Reflektion googeln dann findest du bereits 1mio Treffer, Reflexion liefert 34mio, hat also schon eine große Akzeptanz erlangt.



  • 🤡



  • Jester schrieb:

    fast, wenn es sich um eine zusammenghörige Applikation handelt natürlich schon.
    zudem ist reflection natürlich immer reflection, aber nur weil du über irgendeine schnittstelle irgendwas abfragst ist es nicht automatisch reflection. was auch wieder zu der zentralen frage führt, welche Art von Informationsabfrage ist im Sinne Deiner Definition keine Reflection?

    dh also wenn ich versuche Infos ueber ein Plugin zu bekommen dann ist es keine Reflection? Weil es gehoert ja nicht zusammen. zumindest wurde es nicht gemeinsam erstellt.

    Das macht die Sache irgendwie laecherlich wenn man ploetzlich eine Technik Anhand des Einsatzgebietes definiert. Und das ist zB der Punkt wo ich diese Definition nicht ernst nehmen kann.

    Kleines Code Beispiel:

    bool supports(String name, String method) {
      Class clazz = Class.load(name);
      ArrayList<String> methods = getAllMethods(clazz);
      return methods.find(method) != null;
    }
    

    Waere das Reflection (eigentlich introspection, aber nehmen wir an wir rufen dann nachher auch noch die methode auf die wir auf vorhandensein testen)? Ich nehme einfach mal an, dass es so ist. Schliesslich ist das eine 08/15 Java Definition.

    Was ist aber damit?

    supports("opengl.dll", "glKrasseFunktion");
    

    Ploetzlich lade ich eine DLL statt direkt einer Klasse - das Objekt auf dem ich operiere aendert sich, der Code, die Semantik und die Logik bleibt aber gleich.

    Oder was wenn ich ein class-File lade dass von einer komplett anderen Anwendung ist. Dass garnichts mit meiner Anwendung zu tun hat - ich habe einfach einen Fehler gemacht und die falsche class Datei geladen. Und abhaengig davon ob ich jetzt die richtige oder die falsche Datei geladen habe, ist es Reflection oder nicht?

    Das klingt nicht logisch. Entweder ist es Reflection wenn ich eine class Datei lade und mir eine Liste der oeffentlichen Methoden ansehe und dann anhand dieser Liste eine Entscheidung treffe (zB eine dieser Methoden dann aufzurufen) oder es ist keine Reflection - die Definition darf nicht abhaengig davon sein welche Datei ich lade.

    Und wenn ich fremde Dateien laden darf und es ist Reflection - dann ist die Frage: warum ist es nur bei class Dateien Reflection. Ist es auch bei JAR Archiven Reflection? Was sind Jar Dateien denn anderes als eine Sammlung von class Dateien? Ist es Reflection wenn ich jede Class Datei einzeln lade aber nicht wenn ich das komplette Jar Archiv lade?

    Und wenn ich ein Jar Archiv laden darf und es ist Reflection wenn ich mir die public Klassen ansehe und mir eine liste der public methoden geben lasse und anhand dere Entscheidungen treffe (zB einen teil dieser Methoden aufzurufen) - wie weit sind wir dann davon entfernt das ganze mit einer DLL zu machen? Was ist denn eine DLL anderes als eine andere Form eines Jar Archivs? Die DLL beinhaltet eine Sammlung oeffentlicher Typen (Klassen) und Funktionen (Methoden).

    Ist eine DLL jetzt wirklich so komplett anders als eine class Datei? Ich meine, ich kann eine class Datei in eine DLL kompilieren. Was wenn ich zB den Java Code zu einer nativen Anwendung kompiliere - wenn ich dann Klassen lade, lade ich sie aus einer DLL heraus. Ist es dann noch Reflection? Ich meine der Code ist ja 100% identisch -> was sich aendert sind die Compilerparameter.

    btw, hast du den wikipedia Artikel eigentlich gelesen und die Referenzen die dort angegeben sind? Denn eigentlich habe ich keinen Widerspruch dort gefunden zu dem was rapso und ich sagen.

    Das Code Beispiel in C# laedt zB ein komplettes Assembly (.NET trennt ja nicht in class Files und Jar Files wie Java) - und somit ist es laut deiner Definition schon sehr fragwuerdig ob der Code Reflection ist.

    Wenn sich wikipedia auf "Reflection-oriented programming includes self-examination, self-modification, and self-replication." bezieht wird nicht Reflection gemeint, sondern Reflection orientierte programmierung - eine Art zu programmieren (wie objekt orientierte programmierung) - das eben statt auf objekte (wie bei oop) eben alles auf reflection bezieht.

    Natuerlich ist in dieser herangehensweise der Programmierung das eigene Programm und der eigene Code das zentrale mittel um das es geht. ein wichtiger bestandteil davon ist ja selbstmodifizierenden code schreiben zu koennen.

    das beeinflusst aber nicht die verwendung von reflection in sprachen wie c++ oder java. das sind keine sprachen wo man reflection orientierte programmierung oft sieht - reflection wird hier als tool verwendet um kleine aufgaben zu loesen und nicht als zentrale anlaufstelle um die meisten probleme zu loesen.

    es sei denn du beziehst dich auf den deutschen wikipedia eintrag - der recht schwach uebersetzt wurde. alleine die gleichstellung von introspektion und reflection sollte zu denken geben.

    Einige Links von dem englischen wikipedia Artikel widersprechen dir sogar direkt - indem zB datenbank interfaces als beispiel genommen werden fuer den einsatz von reflection.

    ich weiss zwar dass das alles sicher total falsch ist was ich sage - aber uU ist es vielleicht doch korrekt? Ist Reflection vielleicht doch mehr als die Standard Java Definition?

    Manchmal glaube ich, dass Java der Programmiercommunity sehr schadet. Nicht weil die Sprache schlecht ist oder weil die VM (insert flame) ist - sondern weil zuviele Leute die Java Definition eines features nehmen (weil sie dort zum ersten mal mit dem Konzept in Kontakt getreten sind) und es als die alleingueltige Definition betrachten.

    Nur leider ist das ein tunnelblick - die welt ist soviel groesser...

    zum abschluss noch die essentielle Frage: was ist nicht reflection? Die frage ist einfach nur bescheuert - mehr nicht. Was ist nicht objekt orientierung? Wenn man sich nicht an objekten orientiert. Ergo: nicht reflection ist, wenn man sich keine metainformationen ueber eine blackbox holt.

    int i=vec.size();

    waere zB jetzt mal keine reflection im engeren sinne. nur ist das nicht ein langweiliges beispiel?

    Ist es nicht viel interessanter zu erfahren was reflection ist? denn eins ist reflection schon mal nicht: ein baum. Und ein flugzeug auch nicht...

    Die Frage alleine zeigt schon ein fehlen von verstaendnis - denn bei konzepten sind die grenzen immer nur sehr schwer genau zu definieren. wann ist code denn jetzt wirklich 100% objekt orientiert? wenn er sich an objekten orientiert - aber wie genau beweise ich das? das ist sehr schwer und eigentlich nicht wirklich moeglich. deshalb sagen wir zu einem code objekt orientiert wenn die tendenz sichtbar ist sich an objekten zu orientieren.

    selbes bei reflection: reflection ist es, wenn ich eine blackbox hernehme, metainformationen abrufe und diese zur manipulation von daten verwende.

    und vielleicht noch was generelles zum thema auto-loss,

    Ja, es zeigt wer Argumente hat. Wer keine hat beleidigt und fliegt aus der Diskussion raus weil man ihm einfach nicht mehr ernst nehmen kann.



  • Jester schrieb:

    Shade Of Mine schrieb:

    Wenn man keine Argumente hat beleidigt man.
    2 beleidigende Posts in Folge ist auto-loss, oder?

    ich hab doch alles geschrieben. geh zu wikipedia und folge allen quellenlinks dort. an jeder stelle steht, dass es bei reflexion darum geht die *eigene* struktur zu erfassen bzw. daraus/darüber schlüsse zu ziehen. du lässt das eigene einfach weg und dadurch ist es nunmal falsch. was soll ich hier noch lange rumerzählen? du willst es nicht so haben, weil es nicht so sein darfst und spaltest hier jetzt so lange haare bis du deinen sieg erklären darfst, also mach das jetzt bitte einfach.[...]

    Ich verstehe nicht, wieso du dich so sehr auf "eigene" Strukturen des Programmes verbeist.

    Ich denke der grosse Vorteil von Reflection ist es ein Objekt zu Laufzeit zu laden und es nahtlos in das eigene Programm zu integrieren. Nach dem Laden und der Abfrage der Struktur des fremden Codes kann man den Code genauso benutzen als waehre er schon immer Teil des Programms gewesen.

    Das kann man ueber COM, Dlls, SharedObjects, Pipes, Sockets, Java Classloader, usw. erreichen.



  • Ich "verbeiße" mich in dieses *eigene* Struktur, weil es zur Definition von Reflection dazugehört. Über welches Mittel man das letztlich erreicht ist völlig egal.

    @Shade: Die Frage finde ich ehrlich gesagt nicht bescheuert, wie Du schon sagst ist die Welt ja so viel größer. Warum ist es also keine Reflection, wenn ich mit Hilfe der size-Methode aus der Blackbox std::vector die Information raushole, wie viele Elemente gerade darin sitzen? Eine Definition muß nicht nur erklären was etwas ist, sondern auch was es nicht ist, weil man sonst eben Gefahr läuft die Definition zu allgemein zu gestalten. Genau da liegen nämlich meine Zweifel. Ich bin vollkommen überzeugt davon, dass Deine Definition alles abdeckt was Reflection ist, aber nicht dass alles was sie abdeckt auch Reflection ist. Diese Frage zu stellen ist also zielführend (auch im Sinne dessen, dass mich eine überzeugende Antwort zu dem Schluß führen könnte, dass deine Definition genau das richtige sagt) und eben nicht Zeuge für das Fehlen jeglichen Verständnisses und völlige Verblödung samt Tunnelblick.

    Btw: pass im nächsten post besser auf, sonst haste verloren...

    P.S.: Kannst Du bitte etwas längere Absätze schreiben, ich finde Dein Posting sehr anstrengend zu lesen.



  • Jester schrieb:

    Ich "verbeiße" mich in dieses *eigene* Struktur, weil es zur Definition von Reflection dazugehört. Über welches Mittel man das letztlich erreicht ist völlig egal.

    Wo steht diese Definition?
    Sie ist genauso "zufällig" wie meine Definition von Reflection - nur dass ich deine widerlegen kann und du meine nicht.

    Warum ist deine Definition (die sich übrigens mit wikipedia und den von dir verlinkten Artikeln dort beisst - sprich nicht deckt - sprich sie widersprechen einander) richtiger als meine, die von keinem der Artikel die hier erwähnt wurden widersprochen wird?

    Warum liege ich falsch und du nicht? Sogar DEINE links decken sich mit meiner Definition. Bringt bitte ein Argument, nur ein einziges warum Reflection innerhalb eines Programmes vonstatten gehen muss und nicht über Programm Grenzen hinaus gehen darf.

    Soweit ich das nämlich verstanden habe beziehst du dich auf reflexive programming - welches in der Tat Reflection idR für sich selbst einsetzt um den eigenen Code zu modifizieren. Aber reflexive Programming hat mit dem Konzept Reflection erstmal nicht soviel zu tun. Es orientiert sich an Reflection aber definiert Reflection nicht. Selbes mit OOP. Ein Objekt ist ein Objekt auch wenn man es in einem nicht OO Kontext verwendet.

    @Shade: Die Frage finde ich ehrlich gesagt nicht bescheuert,

    Definiere OOP ohne dass es einen Streitpunkt gibt. Definiere es so dass man definitiv über jeden Code sagen kann ob er OOP ist oder nicht.

    Kannst du nicht und solange du das nicht kannst verlange es nicht von mir.

    Und ich würde es begrüßen wenn du etwas respekt zeigen würdest. Auch wenn es viel verlangt ist - aber ich beleidige dich nicht, also beleidige mich nicht, ok? Das hier ist eine fachliche Diskussion hier zählen Fakten also bring einfach welche und widerleg was ich sage.



  • Shade Of Mine schrieb:

    Wo steht diese Definition?

    Zum Beispiel bei Wikipedia. Jeweils auf deutsch und englisch gleich der erste Satz.

    Sie ist genauso "zufällig" wie meine Definition von Reflection - nur dass ich deine widerlegen kann und du meine nicht.

    Eine Definition kann man per Definition nicht Widerlegen, man kann sie für brauchbar und für unbrauchbar befinden. Ich empfinde Deine nicht als brauchbar, weil ich sie für zu allgemein halte. Nahezu jeder Vorgang am Computer kann als das Beschaffen einer Information aus einer Blackbox angesehen werden. (Weder Bäume noch Flugzeuge sind Vorgänge am Computer).

    Warum ist deine Definition (die sich übrigens mit wikipedia und den von dir verlinkten Artikeln dort beisst - sprich nicht deckt - sprich sie widersprechen einander) richtiger als meine, die von keinem der Artikel die hier erwähnt wurden widersprochen wird?

    wo beißt sich das denn bitte? allein der erste Satz stellt die Sache doch völlig klar. Unser einziger Streitpunkt kann nun noch sein, was *eigene* Struktur genau bedeutet.

    @Shade: Die Frage finde ich ehrlich gesagt nicht bescheuert,

    Definiere OOP ohne dass es einen Streitpunkt gibt. Definiere es so dass man definitiv über jeden Code sagen kann ob er OOP ist oder nicht.

    Das wird vermutlich nicht klappen. Und das verlange ich auch garnicht. Aber es gibt jede Menge Programme über die man sich anhand der Definition einig ist, dass sie *kein* OOP sind. Ich möchte doch nur wissen, was in Deinem Sinne keine Reflection ist, um die Definition nicht nur in die eine Richtung: "was ist Reflection", sondern auch in die andere Richtung "was ist keine Reflection" abzugrenzen, um sie einordnen zu können. Das hat nichts damit zu tun, dass man es für jeden Einzelfall zu 100% entscheiden können muß.

    Letztlich argumentierst Du doch genauso: "Was ist ein Programm? Das ist nicht richtig fest zu fassen, also ist die Definition Mist."

    Und ich würde es begrüßen wenn du etwas respekt zeigen würdest. Auch wenn es viel verlangt ist - aber ich beleidige dich nicht, also beleidige mich nicht, ok? Das hier ist eine fachliche Diskussion hier zählen Fakten also bring einfach welche und widerleg was ich sage.

    Moment mal, du sprichst hier aller welt den tunnelblick zu und erlärst meine Fragen für bescheuert. Das ist wohl bei weitem das unhöflichste was hier bis jetzt im Thread gelaufen ist, also spiel jetzt hier nicht die Unschuld vom Land.



  • Jester schrieb:

    Naja, ich denke das Thema ist durch. Wen es interessiert, der kann ja jederzeit nachlesen was richtig ist. Es steht euch natürlich weiterhin frei hier eure eigene Definition bewerben. Ich hatte auch nicht erwartet, dass es euch leichtfällt einzuräumen, dass ihr da ein bißchen über's Ziel hinausgeschossen seid.

    ich weiss auch nicht was du daran nicht verstehst

    the emphasis of the reflection-oriented paradigm is dynamic program modification, which can be determined and executed at runtime

    aus wikipedia.

    und mit 'eigene structurs' ist gemeint dass ein modul dir metainformationen ueber den eigenen aufbau liefern kann und dir ueber das reflektion interface erlaubt diese _eigene_ interna zu modifizieren, dass es also nicht nur aus dem funktionalen teil besteht.
    Du hast also keinen direkten zugriff auf die daten, sondern ueber das reflektion interface (deswegen _eigene_ structs, nicht weil das programm das einzige ist was das eigene reflektion interface nutzt, das muesste es ueberhaupt nicht, da es die interna auch so kennt).

    ich weiss nicht was man daran nicht vetsehen kann.


Anmelden zum Antworten