Elmの事は何も分かっていない立場から、入門しない人からはこのように見えるのかな?という事をコメントします。
ちなみに私自身、そもそも入門をしようと思い立っていない人間ですが、今後必要性があって機会があれば、入門をすると思います。
私が見聞きする限りでは、そのような「入門をしなければならない時」にとても困るという事は、私に関しては無いだろうなと感じています。
入門しようと思い立たないことについては、一言でいうと、「様々な立場から見た時に、Elmを使うことで何がよくなるのかがわかりにくく、一方で学習コストは存在すると思うので、そもそも入門をしようと思い立たない」というような事を感じます。
- テックリード的な立場として
- プロジェクトでElmを採用する場合に、生産性が学習コストを超えるか?がわからない
- JS/TSで既にある程度経験がある場合は「Elmでなければ実装できない」という事が少ないため、決定的にElmを採用するべきといえる理由がない(「品質の向上が重要」という前提の上で、Elmが品質を改善するという実感を事前に得られない、という事もあります)
- Elmが適した規模のプロジェクトがわからない
- Elmが今後定着するか?という見通しがわからない...例えばvdomを使った書き方という意味ではReact/Vue等と比べて特別の人気があるように見えないため、積極的に採用できるかというと難しい
- 関数型であるという事について、多くの人にはコストが高そうに見える(私個人はHaskellを使ったこともありますが、一般論として、関数型は相性が良い人と悪い人に大きく分かれる傾向があり、かつあまりメジャーな勢力ではないのかな、というような印象を受けています。これはあくまでも私個人の印象ですので、実際はそうではないかもしれません。)
- 一般的なデザイナー等との競業を考えた時に、マークアップ的に書かれているものと関数型で書かれているものを比較すると見た目が異なる為、それを理解しにくいデザイナーが一定数おり、協業・修正がしにくそう
- JSXやVueのテンプレート等は、(その実態が関数であるとしても)htmlの断片のようにも見ることができますが、Elmの表記は関数っぽさが強い印象を受けます
- 例えば、ある特定の要素の親子をデザインの都合で逆転させたり兄弟に変えたりしたい、みたいな場合があったとき、閉じタグは冗長ですが分かりやすいと思います。関数や配列などで書かれたものを追っていくのは、少ししんどいと思う事があります。また、実際のhtml(DOM)をすぐに想像できない場合もあります
- 一開発者として
- 新しい言語を学ぶ場合、他の言語を学ぶのと比較してElmが良い理由は?という事に答えられない
- 主な内容は、上述の「生産性が学習コストを超えるか?」と同様かと思います
- 時間の使い方として、Elmの学習と他とを比較すると、他の学習に使う時間の方がより必要かな?というのが現時点での判断です
また、よく言われるElmのメリットに関してでいうと、以下のような可能性があるのかな、と思いました。(多数派の意見かどうかはわかりません)
- エラーが親切
- そもそも、あまりエラーが出ないように書ければそこまで気にならない?
- 実行時エラーがない
- 開発をする時の経験としては、実行時のエラーでもコンパイルエラーでも総量は変わらない可能性があり、その意味で気にならない?
※コンパイルをした後に、想定外のエラーが出ないという事についてのメリットは勿論あると思っています。しかし、それにメリットを感じられない場合は、単純にエラーが出るタイミングの問題という事になるため、実行した時のエラーを追いかける方が得意/好きか、コンパイルのときの静的な構文を追いかける方が得意/好きか、みたいな開発者個人の特性の差があるのかなと思います。(仕事としては、バグが無いことをより高い精度で言える方が重要だろ、と思うものの)
私は既に別のプログラミング言語で開発の仕事をしていますが、もし、私がいま企業で働く身ではなく、例えば学生であったとしたら、全く主体的にElmを勉強している可能性もゼロではないと思います。実際、Haskellなどは何の明確な目的もなく、ただの興味だけで大学1年生の頃から触っています。
ただ、Elmに関しては、その用途において言語のレベルでJS/TSのようなメジャーラインにないという所があって、「Elmでしかできないこと」(キラーコンテンツ?)を中々見出しにくいように思います。かつ、関数型言語に親しむという意味では、それこそHaskellなど他に一般的なものがあるので、いま私が学生であったとしてElmを主体的に選ぶかというと、やはりそうでもないような気がしています。(Haskell以外の候補としては、F*/Rust/Scala/Elixir?最近はF*が気になるかなと思います)
これは、Elmに取り組む価値が無いと言っている訳では決して無くて、こうした考え方をするとElmの目立ったメリットが見つかりにくい、ということでした。実際に入門をすれば、入門したなりの意味のある体験はできるのではないかと思います。色々な噂を聞く限りでは、人によってはとてもうまくworkする言語であると思います。