My initial reaction is that this feels like a harder introduction page than what the current guide has.
This is a lot of information for someone to take on. If someone reads sentences like “there are no variables, only constants” or “an Elm function returns the exact same output given the same input”, they will start thinking about what the consequences of those are and it will be distracting to the rest of their reading (even if you explain it perfectly right after).
I think it’s best to explain these concepts as you go along in the guide, which I think the current guide does quite well.
There’s another point that people who come from all these languages tend to value flexibility quite a lot, and telling them right away “you can’t have variables” may be a big turn-off. Instead, what you could do in a guide is doing something like “here is how you make a web application in Elm?”, let them do it, then “by the way, did you notice how we didn’t have to mutate variables? This is nice because this means ”.
As Elm developers who have been convinced of the nice benefits of the language’s design, I agree with what you say. But developers coming from those languages probably don’t value the same things. They don’t care about immutability, pure functions, etc., because they don’t know them well and they don’t see their benefits. What probably matters more to them are the things that they currently think matters most. That might be performance, ease of writing, coding style, etc. I don’t think you’re going to entice people to dig into the language with what you write. Rather the main points on the https://elm-lang.org/ frontpage are probably the features that will make these developers curious.
I feel like it would make more sense to have your writing on https://elm-lang.org/ rather than in the guide, but an entirely separate blog post would probably be a better fit. If you do a good job, then others will link and refer to it to newcomers.
Without variables, Elm also forgoes primitive loop control flows such as for and while . Instead, Elm has data structures such as lists and functions to manipulate the data stored.
I think you mean to say that Elm uses recursion as a control flow. Probably not a thing to highlight on the first page of the guide, as some people get intimidated by the concept.
In general, I recommend against using the terms “just” and “simple/simply” (and similarly, “easy”), as things that seem logicial/simple for one person may not feel that way for others. If I read something that says “X is simple” and I don’t find it X, I will feel stupid or in some way alienated by the text. Not using the terms helps with people feeling that way.
“but then it dawns on you”
You’re trying to force an epiphany onto the reader. That doesn’t work well. Explain the thing you’re trying to explain, don’t
“you’ll find that liberating”
People don’t like to be told how to feel, especially for something that might feel like an empty promise. Explain the reasons why you think it is liberating. “It helps me by not requiring me to think about transitions”, “I don’t have to think about edges cases” or things like that (adapt to your preferred usage of “I” versus “you” or “we” or something else).