Frage zum Wiki-Artikel „Anweisung“
Tabellenkalk
- frage zum wiki
- javascript
0 Auge0 Der Martin0 Matthias Scharwies
Hallo,
beim Lesen des verlinkten Artikels über Anweisungen in Javascript, stolpere ich mehrfach über die Verwendung des Begriffs „Seiteneffekt“. Einerseits ist das m.E. eine Falschübersetzung von „Sideeffect“, was auf deutsch mit „Nebenwirkung“ zu übersetzen ist und das ist dann andererseits im Artikelkontext so doch nicht gemeint, oder?
Wie seht ihr das?
Gruß
Kalk
Hallo
beim Lesen des verlinkten Artikels über Anweisungen in Javascript, stolpere ich mehrfach über die Verwendung des Begriffs „Seiteneffekt“. Einerseits ist das m.E. eine Falschübersetzung von „Sideeffect“, was auf deutsch mit „Nebenwirkung“ zu übersetzen ist und das ist dann andererseits im Artikelkontext so doch nicht gemeint, oder?
Wie seht ihr das?
Ich habe mir mal die ersten Absätze des Abschnitts Zuweisung Ausdruck als Anweisung angetan und muss konstatieren „Hä?“. Mal abgesehen von der regelrecht inflationären Verwendung des Wortes „Seiteneffekt“ ist mir absolut nicht klar, was es, in welcher Bedeutung auch immer, aussagen soll.
Nun bin ich kein JS.-Crack, aber mit diesem Text werde ich auch nie und nimmer nicht einer. 😆
Tschö, Auge
Moin,
beim Lesen des verlinkten Artikels über Anweisungen in Javascript, stolpere ich mehrfach über die Verwendung des Begriffs „Seiteneffekt“. Einerseits ist das m.E. eine Falschübersetzung von „Sideeffect“, was auf deutsch mit „Nebenwirkung“ zu übersetzen ist
in der Tat wird "side effect" gern als "Seiteneffekt" übersetzt, was sprachlich Unfug ist. Nebenwirkung wäre richtig.
und das ist dann andererseits im Artikelkontext so doch nicht gemeint, oder?
Doch, genau das ist gemeint: Eine Anweisung berechnet und liefert nicht nur einen Wert als Ergebnis, sondern hat "nebenher" noch andere Auswirkungen.
Einen schönen Tag noch
Martin
Hallo
und das ist dann andererseits im Artikelkontext so doch nicht gemeint, oder?
Doch, genau das ist gemeint: Eine Anweisung berechnet und liefert nicht nur einen Wert als Ergebnis, sondern hat "nebenher" noch andere Auswirkungen.
Die da wären und auf welche Weise in den (Kon)-Text des Artikels passen?
Tschö, Auge
Hallo Auge,
das ist irgendwie schwierig.
"Klassisch" unterscheidet man Statements (Anweisungen) und Expressions. Statements ändern was am System oder lösen Aktionen aus, Expressions berechnen was und ändern nichts.
Aber so klassisch war es nie wirklich, und es wurde immer weiter aufgeweicht. Man fasste Statements zu Prozeduren zusammen. Man erfand Funktionen, die einen Wert haben und als Teil einer Expression verwendbar sind. Man vermischte Prozeduren und Funktionen, indem man in Funktionen Statements ausführte, die etwas am System ändern und damit Nebenwirkungen haben.
Und dann kam C das mit dem Zuweisungsoperator die Nebenwirkung zum Prinzip erhob, sowie die Prozedur abschaffte und alles Funktion nannte.
In C- und seinen Abkömmlingen ist es eher so, dass Statements etwas deklarieren bzw. definieren, oder den Programmfluss steuern. Alles andere sind Operatoren oder Aufrufe von Funktionen der Laufzeitumgebung. Wie man es aus Assembler eben kennt.
Die Folge ist, dass jeder Ausdruck das Potenzial für Nebenwirkungen hat. Er kann Variablen verändern (per Zuweisung oder In-/Dekrement) oder durch Funktionsaufrufe beliebige Aktionen anstoßen.
D.h. für ein gutes Programm braucht man Disziplin und muss darauf achten, dass Ausdrücke entweder etwas ermitteln und damit nebenwirkungsfrei sind, ODER etwas auslösen. Der Zuweisungsoperator steckt irgendwie dazwischen, weil er ja einen Wert ermitteln und dann durch die Zuweisung das System verändern muss. Hier sollte darauf geachtet werden, dass man Zuweisungen nicht dort versteckt, wo eigentlich nur ein Wert erwartet wird.
Dinge wie while ($row = $db->fetch())
sind gängige Praxis, de facto aber ein Verstoß gegen gute Programmstruktur und fallen einem in Form von if ($a = 3)
auf die Füße.
Wie man das in einen Basisartikel über Anweisungen packt, ohne zu sehr in die Breite zu gehen, ist eine spannende Frage… Wer sich eine bessere Form des Artikels vorstellen kann, darf gerne einen Entwurf in seinem Benutzernamensraum des Wiki vorbereiten und vorstellen (einfach als Lemma so etwas wie Benutzer:Hugo/Anweisungen
verwenden).
Rolf
Guten Morgen,
beim Lesen des verlinkten Artikels über Anweisungen in Javascript, stolpere ich mehrfach über die Verwendung des Begriffs „Seiteneffekt“. Einerseits ist das m.E. eine Falschübersetzung von „Sideeffect“,
Vielen Dank für dein Feedback - die Sprachelemente sind schon lange auf unserer internen ToDo-Liste, allerdings nur JavaScript/Datentyp mit einem sichtbaren ToDo.
Stefan Münz hatte 2002 nur kurz formuliert:
JavaScript besteht letztendlich aus einer kontrollierten Anordnung von Anweisungen. Das sind Befehle, die der JavaScript-Interpreter des WWW-Browsers bewertet und in Maschinencode umsetzt, der auf dem Rechner des Anwenders ausführbar ist.
Es gibt einfache und komplexere Anweisungen.
Zahl = 42;
Quadrat = Zahl * Zahl;
In diesem Kapitel ging es um Anweisungen, Anweisungsblöcke und auch gleich um Bezeichner und Kommentare, allerdings ohne Liste der reservierten Wörter.
MDN ist da viel spezieller:
JavaScript/Reference/Statements#difference_between_statements_and_declarations
In der deutschen automatischen Übersetzung kommt der imho auch falsche Begriff „Seiteneffekte“ vor. Der in unserem Artikel verlinkte Wikipedia-Artikel ist viel theoretischer.
Ich persönlich hatte um 2018 gedacht, dass man diese Stubs in den Einstiegs-Tutorials aufgehen lassen könnte. Mittlerweile glaube ich aber auch, dass es Grudnlagenartikel geben sollte, die auch die Hintergründe beleuchten.
Ich hatte (leider) irgendwann JavaScript/Sprachelemente/Anweisung zu JavaScript/Anweisung verkürzt, sodass es keine eigene/gute Übersichtsseite gibt. Hier im Test-Wiki habe ich einen Versuch mit Cards gestartet:
Mir stellen sich folgende Fragen:
@Rolf B schrieb:
Wie man das in einen Basisartikel über Anweisungen packt, ohne zu sehr in die Breite zu gehen, ist eine spannende Frage…
Wer sich eine bessere Form des Artikels vorstellen kann, darf gerne einen Entwurf in seinem Benutzernamensraum des Wiki vorbereiten und vorstellen (einfach als Lemma so etwas wie Benutzer:Hugo/Anweisungen verwenden).
Evtl. könnte man mal einen Workshop machen, um Ziele und Schritte festzulegen und evtl. sogar zu verteilen?
Herzliche Grüße
Matthias Scharwies
Servus!
@Rolf B schrieb:
Wie man das in einen Basisartikel über Anweisungen packt, ohne zu sehr in die Breite zu gehen, ist eine spannende Frage…
Ich habe jetzt ein bisschen gesucht und habe mehr Fragen als zuvor!
Ich würde nach einer kurzen Einleitung diesen Satz übersetzen:
Statements are roughly equivalent to sentences in natural languages. A statement forms a complete unit of execution.[1]
Dann müssen auf jeden Fall einige Beispiele kommen, etwa
alert('Hello world!');
const secondsInADay = 86400;
let a = b + c;
Erst nach diesen Beispielen und der Unterscheidung zwischen Anweisung und Deklarationen würde ich diesen Satz schreiben und weiter erklären:
Anweisungen können in einer einzigen Programmzeile aufgeschrieben werden, in den meisten Fällen aber auch auf mehrere Zeilen verteilt werden, um die Lesbarkeit des Programms zu verbessern. Sie können auch mehrere Anweisungen auf eine Programmzeile schreiben (sollten das aber unterlassen, weil die Lesbarkeit des Programms darunter leidet).
und danach das mit den automatisch eingefügten Semikolons.
Wer sich eine bessere Form des Artikels vorstellen kann, darf gerne einen Entwurf in seinem Benutzernamensraum des Wiki vorbereiten und vorstellen (einfach als Lemma so etwas wie Benutzer:Hugo/Anweisungen verwenden).
Und da fühle ich mich eigentlich nicht kompetent genug und würde bitten, dass das jemand mit einem Hintergrund in Programmierung erledigen könnte.
Herzliche Grüße
Matthias Scharwies