最近あまり使ってない、流行っていた時期もあるフロントエンドもの

最近あまり使ってない、ちょっと前の流行りもの

なんとなく書いてみます。Web アプリケーション開発屋さんなので、Web サイト制作屋さんとはかなり文脈ズレると思います。

jQuery ファミリー

個人的には jQuery って、協業用のツールという位置づけでした。jQuery でさえ書かれていれば、jQuery 書ける人材のほうが外からも調達しやすいため、人員の流動にも有効と考えられる頃が確かにありました。

DOM に触れてくれるな勢の台頭

ところが昨今では AngularJS や React、その他ライブラリでも DOM 操作が大いに抽象化されていることが多く、jQuery で直接 DOM を操作すること自体が相性良くないケースが散見されます。今思えば Backbone.js くらいのころが jQuery 需要の最終ピークだったように思います。

jQuery プラグイン の需要減

jQuery が今でも優位にあるのはプラグインのエコシステムの存在…ですよね? とはいえ冒頭のとおり Web アプリケーション開発していると、jQuery プラグインで実現できるものはあまり多くありません。あったとしても、使っているライブラリ・フレームワークの作法に合ったものを作るなり何なりしてしまいがちです。

個人プロジェクトだと元々必要性を感じていなかったので、以上のような理由をあわせて jQuery ファミリーさんとは疎遠な感じです。jQuery に頼らないクロスブラウザ対応がそれだけラクになったということで、喜ばしい面もあるように思いますね。

自分の場合、XHR や Promise くらいの機能が必要なときは、もっとミニマルなやつを npm から取ってきてしまうというのもあると思います。

Bower エコシステム

Bower は元々、Grunt/Gulp などのために npm をじゃぶじゃぶ利用している人からすると、なんで別々で管理してるんだろう…的なポジションではありました。

たしかに npm + browserify で何とかなる

npm と bower については、npm とフロントエンドのパッケージ管理の未来 で当時の状況を書いていますが、こと JavaScript に限り、それも isomorphic なエコシステムを期待すると npm + browseirfy が限りなく現実的に動作する仕組みです。

個人的には、npmをベースに依存管理ができて、ES6 modules をサポートしたトランスパイラとも相性が良いという辺りが動機となって、それまで bower で管理していた部分を脱しつつ半年くらい落ち着いています。もう1年くらいは状況変化しなくても平気そう。

HTML/CSS のパッケージ管理方面は、プラクティス的にまだまだボンヤリしている印象ですが、そっち方面のあるべき形は別で追うとして割愛

Bower に求めるものがなかったのかもしれない

Bower も npm も、物理的に別のリポジトリなので片方にパッケージがあっても、片方にパッケージがあること/ちゃんと使える事は保証されていません。それでも不自由しないのは...

  1. Node でも使えるミニマルなパッケージを依存先としてよく選ぶようになった
  2. メジャーなライブラリは npm に公開しているので不自由しづらい流れがある

こればっかりは個人差・業務内容の違いがあるので、まったく万人にお勧めするわけではありません。それでも Bower に依存しないでもやっていける環境ができつつある、というのは事実のひとつでしょう。

って Twitterみてたら、なるほど jQuery も bower と 距離を測りはじめていたのですね。

早すぎる潮流を感じる

情報には確実にラグが存在します。Webの時代なんだから情報が届くのは一瞬ですが、情報チャネルが合っていなければ届くことはありません。情報チャネルの違いが、卑下や増長を招くと思うと心が痛い。

Webな情報の賞味期限

地方出身っぽいことを言うと、東京で流行り始めたWeb技術が地方に届くのは、1年近く要することもあります。しかし、ここ3年くらいのフロントエンドに限れば 1年も経たないうちに流行り廃ります。

だからどうした、ってことには答えを持っていませんが、賞味期限が切れた Bower や Grunt (俺まだぜんぜん使ってるよ!!) を調べ始めた頃には、npm がどうの Gulp がどうの、っていう記事が溢れかえってるわけで、難儀なことだなぁと思う次第。

オマケ: とっくに使ってないもの・やり過ごしているもの

  • RequireJS (お世話になりました)
  • webpack (大艦巨砲主義)
  • SystemJS (知らない子ですね...)
  • Coffee Script (ギョーム的に使い所見つからず)
  • TypeScript (カタカタカタ)
  • Knockout (まだ全然元気そう)
  • Vue.js (vue-component は感心した)
  • Component (死んだ)
  • Ember.js (大艦巨砲主義)
  • jspm (触ったけどウーン)
  • duo.js (がんばれ)

R.I.P

追記

Bower 使ってないです、と申し上げましたが Web Components のように HTML を母体としたコンポーネントをダイレクトに共有したいケースでは npm よりも有効です。現状でも Polymer の Core Elements などは Bower で公開されているので、そのあたりの棲み分けは頭の片隅にあったほうがよさそうです。直近はなかなか使わないですけど...