Diskussion:Elm (Programmiersprache)

aus Wikipedia, der freien Enzyklopädie
Letzter Kommentar: vor 7 Jahren von TobiasVetter in Abschnitt Elm verwendet kein FRP mehr
Zur Navigation springen Zur Suche springen

Elm verwendet kein FRP mehr

[Quelltext bearbeiten]

Seit Version 0.17 gibt es in Elm kein FRP mehr, siehe http://elm-lang.org/blog/farewell-to-frp

Die Einleitung sollte daraufhin angepasst werden.

Volle Zustimmung. --TobiasVetter (Diskussion) 14:07, 4. Jun. 2017 (CEST)Beantworten

Ein paar Änderungen + Kritik

[Quelltext bearbeiten]

Ich hab den FRP-Teil einfach mal rausgenommen. Wurde Zeit.

Außerdem habe ich den vorderen Teil etwas umformuliert: Elm ist nur für den Frontend/GUI-Aspekt von Webanwendungen gedacht. Alle Server-seitigen Teile einer Webanwendung (insb. persistente Datenspeicherung) deckt Elm nicht ab. Habe versucht, das deutlich zu machen.

Weiterhin habe ich "if-Anweisungen" und "let-Anweisungen" ersetzt durch "if-Ausdrücke" und "let-Ausdrücke", denn es handelt sich dabei nicht um Anweisungen ("Tu dies oder tu das") sondern lediglich um Deklarationen ("Der Wert ist dieser oder jener").

Der Abschnitt zur Immutability ist mir auch nicht ganz geheuer. Ich habe das Wort Immutabilität entfernt; wenn es deutsch sein soll, dann lieber "Unveränderlichkeit" schreiben, denn Immutabilität ist ein juristischer Begriff (soweit ich weiß).

Auch dass Werte "initialisiert" werden, ist eine Formulierung, die dem imperativen Paradigma verhaftet ist. Initialisierung ist ein Nebeneffekt innerhalb eines Namensraums. In Elm sind Namensräume frei von Effekten, auch von Initialisierungen (initialen Zuweisungen). Alle Bindungen von Werten an Bezeichner erfolgen während der Erzeugung eines Namensraums (let ... in ...), sind beschränkt auf diesen Namensraum und unveränderlich für diesen Namensraum. Die einzige Möglichkeit, innerhalb eines Namensraumes einen Wert zu "verändern" oder zu "erzeugen", besteht darin, einen weiteren, inneren Namensraum zu erzeugen, und in diesem neuen Namensraum den alten Wert zu überdecken.