Elm 1.0への道:安定した言語環境を目指して
Road to Elm 1.0
Road to Elm 1.0
Elmがバージョン1.0をリリースするためのロードマップに関する議論です。堅牢な型システムと信頼性の高いUI構築で知られるElmが、いよいよメジャーバージョンアップに向けた準備を進めています。
うわっ、このプロジェクトがまだ生きてたなんて全然知らなかったよ。悪口を言うつもりはないけど、もう完全に終わったものだと思ってた。
2023年に、なんで自分がまだElmを使っているのかについての記事を書いたんだ:
https://taylor.town/elm-2023 (https://taylor.town/elm-2023)
2026年になった今でも、同じ理由で使い続けてるよ :)
おまけとして、ClaudeとElmはめちゃくちゃ相性がいいみたいだ:
https://taylor.town/diggit-000 (https://taylor.town/diggit-000)
2年くらい前にChatGPTでElmを使ってブラウザ上でスネークゲームを作る「バイブコーディング」を試してたんだ。Elmはお気に入りの言語だからね。当時はなかなか苦戦して、LLMがElmを殺しちゃうんじゃないかと思った。でも今では本番環境でElmを使っていて、LLMも当時よりずっと賢くなってる。むしろLLMのおかげでElmの採用は増えるんじゃないかな。今ある言語の中で、LLMにとって一番理想的だからね。他の言語よりシンプルで安定してるし、言語自体に確固たるアーキテクチャがあるから、誰が書いても似たようなコードベースになりやすいんだ。
JavaScriptに対する制限って解決したの?僕の記憶が正しければ、JavaScriptとやり取りするには「Ports」っていう独自の仕組みを使わなきゃいけなくて、自前でラッパーを書くことができなかったはずだけど。
誰かがフォークして、自前でJavaScriptラッパーやFFIを書けるようにした時、ひと悶着あったよね?
特定の言語機能をElmチームしか使えないようにしてた制限って、撤回されたのかな?あれは言語として致命的だと思ってたんだけど。
Elm 1.0に到達することよりも、Elm 0.19を乗り越えることの方が気になってる。あのバージョンで、作者が公式に認めたもの以外のネイティブモジュールが全部締め出されたんだよね。あれがElmの終わりの始まりだったと自分は見ている。
最近の自分は、Elmを「ものすごく影響力のある研究用言語」として捉えてる。
焦点が絞られているし、公開ロードマップや公式サポートもない。リーダーシップ(実質Evan一人に見える)はコミュニティの構築やコアチームの育成には興味がなさそうだしね。
でも、書いている時の心地よさは最高なんだよ。その結果、いくつものフォークやスピンオフが生まれた。この前のGleamのカンファレンスでLouis Pilfoldがジョークで「Elmユーザーはみんな自分用のコンパイラをメンテナンスしてる」って言ってたよ。少なくとも6つは存在してる(コミュニティが縮小している中でも、先月さらに2つ発表されたし)。
だからEvanが1.0に向けて動いているのは嬉しい。Elmが「完成」となれば、後継のどれかがフォークを統合してコミュニティを育てるという大変な作業を引き受けてくれるかもしれない。
個人的には、次にElmのようなものを探すときはGleamとLustreをチェックするつもりだ。コミュニティや設計を大切にするメンテナーが揃っているようだし、フロントエンドもバックエンドも両方いけるからね。
1.0への道のりとしては、これ以上最悪な発表はないんじゃないかな。誰が気にするの?ローカライズやアクセシビリティへの対応なしで、UIフレームワークを1.0バージョンにして「本番利用可能」と呼ぶのはナンセンスだよ。サードパーティがブラウザAPIと連携できる範囲を制限したことが、Elmをただの「おもちゃ」以上のものにできなくした原因だと思う。今となっては、本番用というより、Evanがコンパイラのアイデアを試すためのサンドボックスに見えるね。
みんなEvanが指差してる先のことばかり見て、指そのものに注目してる気がするな。これはElmの話じゃなくて、Acadiaに向けた準備なんじゃないかな。
彼のトーク「Economics of Programming Languages」https://www.youtube.com/watch?v=XZ3w_jec1v8 で、この7年間彼が取り組んできたこと、つまり関数型の考え方を適用したクエリ言語について少し触れられている。
彼はウェブアプリの境界線で型情報が失われてしまうことに注目しているんだ。
この境界を超えて型情報を保持できたらどうなるか?その恩恵は何か?彼が挙げていた一つの答えは「マイグレーションが楽になる」ことだ。手書きのSQLじゃなくて、型定義の差分だけで済むようになるから。
だから問い直すべきなのは、今Elmでリリースされている変更からAcadiaがどうなるか推測できるか、ということじゃないかな。インクリメンタルなコンパイルは、クエリ言語に何をもたらすんだろう?
Elmの勢いがだいぶ落ちてるって思ってるのは自分だけかな?Hacker Newsでもほとんど話題にならないし、リリースの頻度やニュースの少なさが影響してるんじゃないかと思う。リリース間隔を見てよ:
0.19.2 ビルドの高速化、そして1.0への道のり 2026年7月
0.19.1 親切な構文ヒント、ビルドの高速化 2019年10月