Tabellenkalk: Frage zum Wiki-Artikel „Anweisung“

problematische Seite

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

  1. problematische Seite

    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

    --
    „Habe ich mir das nur eingebildet, oder kann der kleine Hund wirklich sprechen?“ fragte Schnapper. „Er behauptet, nicht dazu imstande zu sein“ erwiderte Victor. Schnapper zögerte (…) „Nun …“ sagte er schließlich, „ich schätze, er muss es am besten wissen.“ Terry Prattchett, Voll im Bilde
  2. problematische Seite

    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

    --
    Manchmal kann man gar nicht so viel fühlen, wie man denkt.
    Und manchmal fühlt man so viel, dass man gar nicht denken kann.
    1. problematische Seite

      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

      --
      „Habe ich mir das nur eingebildet, oder kann der kleine Hund wirklich sprechen?“ fragte Schnapper. „Er behauptet, nicht dazu imstande zu sein“ erwiderte Victor. Schnapper zögerte (…) „Nun …“ sagte er schließlich, „ich schätze, er muss es am besten wissen.“ Terry Prattchett, Voll im Bilde
      1. problematische Seite

        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

        --
        sumpsi - posui - obstruxi
    2. problematische Seite

      Hallo Der,

      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.

      Ja, die Wikipedia verwendet den Begriff Wirkung_(Informatik)

      Manchmal wird auch von Seiteneffekt gesprochen, eine Bezeichnung, die auf eine Rückübersetzung des englischen ''side effect'' (deutsch: Nebenwirkung) zurückgeht.

      Bis bald!
      Jonathan

      --
      Wenn du 1 Strich an die Wand malst, um zu sehen wie viel du gewachsen bist.
      Früher:
      ___
      ___
      ___
      Heute:
      ) ) ) )
  3. problematische Seite

    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:

    1. Sprachelemente: (Kurz)-Referenz oder Hintergrundartikel?
    2. Reihenfolge? Anweisung als 1. Kapitel?
    3. Inhalt
      Soll JavaScript/Anweisung als kurz Anweisung, Anweisungsblöcke einführen und dann die Sonderfälle beschreiben?
      (Ich habe grad noch JavaScript/Anweisung/Automatische_Semikolons gefunden, dass sollte in den Artikel und damit auch in Inhaltsverzeichnis und evtl. sogar in die Card?)

    @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

    --
    Was ist eine Signatur?
    1. problematische Seite

      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

      --
      Was ist eine Signatur?

      1. https://stackoverflow.com/questions/46351924/javascript-declarations-vs-expressions-vs-statements
        https://docs.oracle.com/javase/tutorial/java/nutsandbolts/expressions.html ↩︎