Bellow is my perspective by observing Japanese programming community.
Because I’m not familiar with foreign communities, please tell me your opinions.
I believe that using “functional language” to explain Elm has lots of defeats, especially after 0.17.
For functional beginners, they tend to think “functional language” is too difficult to learn, which prevent Elm to be mainstream.
For functional lovers, especially Haskell lovers, they expect Elm to have unnecessarily advanced language features like type classes, type level programming, etc.
I recently use the word “type safe configuration language” to explain Elm to avoid above misunderstandings.
In functional language like Haskell, the most difficult and interesting part of programming is how to handle IO related operations in pure functions, but Elm does not need to handle such operations because The Elm Architecture handles it by receiving configurations from your Elm code.
So, Elm is just a subset of imperative language rather than a “functional language”, or also a configuration language such as yaml and json excepting it has strong types.
What do you think to stop using “functional language” and using “type safe configuration language”?
Edit:
Thanks for your answers, I realized that “configuration language” is confusing.
So, my interest is just whether should we use the word “functional language” to refer Elm.
Though elm-lang org page, the “slogan” does not contain the word “functional programming”, but “An Introduction to Elm” says “Elm is a functional language that compiles to JavaScript”, and also there is a repository functional programming in Elm.
To make your point clear, I would like to ask you the three questions bellow.
- What do you think if anyone says “Elm is an Alt-JS similar to Haskell.”
- Do you think programmers who are not familiar with functional style tend to image “functional language” is something as difficult and “strange” as Haskell?
(I write Haskell in my jobs, so I personally does not think Haskell is so difficult and strange itself, but I feel Elm is more easy than Haskell.) - What do you think to avoid using the word “functional language”?