Thoughts
No functional language survives first contact with the user.
This is part of what makes React, or even Elm, so appealing. The functional bits are super useful for say, describing UI elements.
But while React handles updating okay, it struggles with updating dynamically from user input.*
* The example here is a textbox, a button, and a div, and anything entered into the textbox shows up in the div when the button is pressed. JS, piece of cake.
```js
document.querySelector("button").addEventListener("click", evt => {
document.querySelector("textarea").textContent = document.querySelector("textarea").value;
});
```
React,* Elm, the examples aren't worth including here. They're too long.
*You could golf a React example to a similar length as JS, because React *is* JS. You can access another component in the global scope and call .setState on it. But that's not idiomatic React, that's using React to render and writing JS same as you normally would. React, according to the docs and "good practice," state/information should never flow down, and should never flow sideways. This is an example designed to force React to flow state info sideways, but that's not something React is good at. Here's the React example: https://ourjseditor.com/program/VVr6PE. I haven't written one for Elm, that would take too long with my current knowledge of Elm.