Was ist der Sinn des EVA Prinzips?
Nach einer Diskussion neulich habe ich mich genauer über das EVA Prinzip informiert, ich kannte das Prinzip schon vorher, zumindest vom Namen her, hab mich aber nie wirklich damit beschäftigt.
Meine Frage ist nun was der Sinn hinter dem EVA Prinzip, im Bezug auf das Programmieren, ist?
Immerhin ist es doch schon seit der Entwicklung des Computers bzw der Entwicklung von Mealy Automaten obsolet, weil die Ausgabe nicht mehr allein von der Eingabe sondern auch vom Zustand abhängt.
Wenn man nun die Definition des Prinzips aufweicht kommt man schon zu einem Punkt wo das Prinzip so allgemein ist, dass es sowieso nicht gebrochen werden kann und damit unnötig ist. Es kann ja bei einer Anwendung, die eine Eingabe besitzt, keine Ausgabe, oder Datenverarbeitung geben bevor es noch eine Eingabe gegeben hat.
Wenn man das Speichern von Daten auf die Festplatte als Verarbeitung sieht, dann folgt doch schon eine Anwendung mit Buffered IO nicht dem EVA Prinzip, weil die Daten womöglich erst auf die Platte geschrieben werden, nachdem eine Ausgabe erfolgt ist.
2 Antworten
Ich halte es für eine bewusst einfach gehaltene Darstellung, um jemanden die Funktionsweise eines Computers zu verdeutlichen. Für viele ist das, was sich in einem Computer abspielt, ja die totale Blackbox oder gar "Magie".
So wie man einen Betrieb mit der Darstellung "Einkauf -> Produktion -> Verkauf" beschreiben würde. Auch wenn er im Detail wesentlich komplexer organisiert ist.
Aber so einfach das EVA-Prinzip ist - einiges kann man daraus ja schon ablesen: Die Eingabe erfolgt vor der Verarbeitung und der Ausgabe. Bei gleicher Eingabe und gleicher Verarbeitung ist mit der gleichen Ausgabe zu rechnen. Findet keine Verarbeitung statt, kommt es auch zu keiner Ausgabe. Ist die Eingabe falsch, kann auch die Ausgabe fehlerhaft sein.
Das mag einem alles als Binsenweisheit erscheinen, aber frag mal einen Support-Mitarbeiter, wie viele Anwender das nicht verinnerlicht haben.
Da gebe ich dir Recht :)
Bei der Diskussion ging es darum ob man das EVA Prinzip kennen muss um Programmieren zu können und ich verstehe eben nicht warum man es unbedingt brauchen sollte.
Ich würde da eher sagen ist gut wenn man es weiß, man muss es aber nicht wissen um Programmieren zu können, weil man dem Prinzip ohnehin implizit folgt.
Ja, es ist heute kaum noch nachvollziehbar: Heutige Programme haben selbstverständlich auch eine grafische Benutzeroberfläche. Sie interagieren mit dem Benutzer und treten mit seinen Eingaben in den Dialog. Man kann sogar mehrere Programme gleichzeitig ablaufen lassen.
All das war vor 30 Jahren noch keine Selbstverständlichkeit: Es gab nur eine Kommandozeile und die Eingabeparameter wurden beim Start mitgegeben. Nach der Ausgabe hat sich das Programm beendet. Und dann erst konnte man das nächste Programm starten.
Naja ist bei der Programmierung von µCs immer noch so, es sei denn man verwendet ein RTOS wie uCLinux, aber selbst da sehe ich keine Anwendung für dieses Prinzip bzw einen Zwang, dass man es kennen muss um Programmieren zu können.
Ich kenne das EVA-Prinzip nur als Beschreibung/Bezeichnung, nicht als Anwendungsmöglichkeit O.o
E ingabe - Daten werden eingegeben, z.B. Buchstaben über eine Tastatur
V erarbeitung - Daten werden gespeichert oder weiterverarbeitet, z.B. in dein Text in einem Textdokument
A usgabe - Daten werden wieder ausgegeben, z.B. wird dein Dokument auf dem Bildschirm angezeigt, oder du druckst es aus.
Ja so kenne ich es auch, aber in der Diskussion ging es darum ob man das EVA Prinzip kennen muss um Programmieren zu können.
Und ich sehe in dem Prinzip irgendwie nichts was man unbedingt wissen muss damit man Programmieren kann.
Meiner Meinung nach Nein. Wie gesagt: Für mich ist es nur eine Betitlung von Vorgängen, denen man beim Programmieren begegnen wird. Aber ob man jetzt weiß, dass es jetzt EVA oder ADAM Prinzip heißt... das ist Jacke wie Hose. Du kannst sagen, das Glas ist halbvoll oder halbleer. Fakt ist, dass der Füllstand 50% beträgt. Wie du es jetzt nennst, wird nichts am Sachverhalt ändern.
Wie kann man Support-Mitarbeiter Fragen?