前書き
仕事でJavaScriptを書くようになって2年以上経過した。
それまでに新しい仕様やら便利ツールやらが出てきたり、紹介されているのを見て、
そういう流れについて何となく思ったことを書く。
とりあえず何らかの機能が存在する
例:HTML要素の取得
- 「そういう機能は用意しておいたからうまく使ってね^^」という状態。
- 実際の使用感が全く考慮されていない。
- 複数形になってたりなってなかったり、無駄に命名規則がしっかりしているせいで使いにくい。
document.getElementById('test');
document.getElementsByClassName('test');
document.getElementsByTagName('div');
それを補う関数(ライブラリ)の出現
- CSSセレクタと同じ文法(既存の知識)を利用して簡単に使える。
- 「要素を取得する」という同じ役割でメソッド名が変わらない。
$('#test');
$('.test');
$('div');
仕様への反映
- 評判が良い方法は仕様に取り込まれる場合がある。
document.querySelector('#test');
document.querySelector('.test');
document.querySelector('div');
基本的に上記の繰り返し
- そのまま使うにはいまいち使いにくいメソッドや仕様があり、
- もっと使いやすい書き方を提供するライブラリが登場し、
- 仕様に反映される。
改善された後でも
- 定型的なパターンが発見され、
- さらに使いやすい書き方を提供するライブラリが登場し、
- 仕様に反映される場合がある。
Promise → async awaitなんかはその好例。
ずっとその流れを繰り返し続けている
その流れの過程で産まれたのが、
- jQueryだったり、
- Ajaxという考え方だったり、
- Angular.jsだったり、
- React.jsだったり
する。
面白いのは、
- JavaScriptやってられっか! → jQuery
- jQueryでちまちまやってられっか! → React
のような経緯になっていること。
そしてReactが出てきてから、ピュアJS最高のような流れも主流になっていること。
jQueryがJavaScriptをより簡単に書くために作られたにも関わらずである。
揺り戻し
ところで、歴史の勉強で習ったことだが、急激な変革があると「揺り戻し」という現象が発生する。
「変わる前の方が良かった」というヤツである。
ReactによってピュアJSで書く事が主流になった一方で、「こういうケースだとやっぱりjQueryでよくね?」というjQueryの再評価も発生した。
このjQueryの再評価が「揺り戻し」だと捉えている。
必要から生まれている
- こうやりたいけど、今のやり方だと今ひとつ上手く書けない。
- こういう機能が欲しいけど、setTimeoutで騙し騙しやっている1。
そういう辛い所を、誰かが何とかしようと考えて、誰かが作っている。
誰かとは
- 自分以外の誰か、ではない。
- 自分が考えて、行動に移すことも出来る。
なので
- 今出来ない所を考えて、自分で何とかすることは悪いことではない。
- その経験をもっと広く伝えて、発展に寄与出来たら素敵だよね。
みたいなことを思ったのだった。
ちなみに
これから必要とされるが、仕様がヤバイ状態として目につくのは下記。
-
CSS Transition, CSS Animationを使用する際の遅延処理、コンテンツロードを待機するための遅延処理、スクロールイベントの間引きなど。 ↩