最近、Ember.jsという Rails 的なフロントエンドフレームワークにはまっている。(Rails 的、ということは設定より規約が重視され、アプリケーションの構造が決められたものになる、ということである)
さらに同じ記事の歴史の項目を見てみると、
History In December 2011, the SproutCore 2.0 framework was renamed to Ember.js, to reduce confusion between the application framework and the widget library of SproutCore 1.0.[59][60] The framework was created by Yehuda Katz, a member of the jQuery, Ruby on Rails and SproutCore core teams. Like many of Katz's other projects, it advocates convention over configuration.
とあり、SproutCore という前身があってそれが Ember.js にリネームされたのだという。さらに豆知識で、その SproutCore というのは Apple も開発にかかわっていたようだ。
日本で流行っていない
アメリカ/ヨーロッパ圏はそこそこ使われていそうな Ember.js であるが、私が住む日本ではほぼ聞かない。Qiita の Ember.js タグも、最近の私の投稿を除けば、2018 年が最後である。2 年ほど記事が投稿されていなかったということになる。
なぜこれほど流行らなかったのだろうか?
実を言うと弊社が提供しているidobataというサービスでは Ember.js を使っている。だから全く使われていない、ということではない、と思う。ただあまり盛り上がることなく React/Vue が開発者をかっさらっていった、ということなのだろう。理由になっていないような気がするが、ウェブ技術は水物であり流行ったものが基本的には勝ちである。
ではなぜ今更そんな流行らなそうなフレームワークに興味を持ってしまったのか?
それは私がもっとフロントエンドフレームワークの開発者生産性の部分に焦点を当てたいと思ったからである。
今仕事では ReactNative/React をずっと触っているが、なんというか生産性が悪い。確かにエコシステムは巨大だし情報も腐るほど広がっている。ただ、新規(初学者)の人やフロントエンドフレームワークにそれほど熱意がない人が入ってきたときに説明が面倒くさいのである。React は View しか面倒を見ないので、当然 Redux/React-Router-Dom などなど色んなライブラリを突っ込んで肥やしていく。それぞれにドキュメントがあり、こういうやり方でやれば良いよね、という思想がある。
それを全部見てもらうというのは当然不可能なので、こちらがかいつまんで説明する。もしくはコードを見様見まねでコピペして使ってもらう。
これで良いんだっけ?と思ってしまったのだ。
よくカスタマイズ出来るということはアプリケーションごとに最適なものを探そうとしてしまう。もちろん Next.js などを使えば少し規約が入ると思うので、カスタマイズの幅も狭まるだろう。が、そもそも SSR/SSG なんて必要としてない案件も多い。そんな CDN にファイルを置いて爆速でやる必要がない案件では当然 create-react-app でアプリを作ってしまうわけだがそうするとカスタマイズしないといけなくなる。(ちなみに create-react-app すら使わずに Parcel でやってしまったこともあります、テヘペロ)
ほえええ
俺が思う最強の React アプリの構造を作ったとして、それを誰かにメンテさせるのか。長期的にアプリをメンテしていく状況で、Class/Hook が混在し、テストは Enzyme/React-Testing-Library が混じり合った混とんを誰かに任せるのか。(それはちゃんと統一しないのが悪い)
ほえええ
俺たちはどれだけ学び、人に学ばせれば満足するのだ。(ウェブエンジニアは学ぶことを忘れたら死ぬかもしれない)
ほえええ
というわけで、Ember.js ならオールインワンで楽チンだなと思ったわけです。ただ多分これから先も日本で流行ることはないでしょう。でも好きなんだ、この ember コマンドの使い勝手が、アプリケーションの規約が、Handlebars というテンプレートシステムの柔軟さの塩梅が(Angular のテンプレートは複雑すぎて諦めた)、Octane コンポーネントの書き味が、日本語の訳を PR 出しただけで Contributors に入れて紹介してくれるコミュニティのスモールさが、そしてTomster と Zoey という謎ハムスターたちが。