LoginSignup
4
2

More than 5 years have passed since last update.

仕様やライブラリの変遷について

Last updated at Posted at 2017-01-24

前書き

仕事で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');

基本的に上記の繰り返し

  1. そのまま使うにはいまいち使いにくいメソッドや仕様があり、
  2. もっと使いやすい書き方を提供するライブラリが登場し、
  3. 仕様に反映される。

改善された後でも

  1. 定型的なパターンが発見され、
  2. さらに使いやすい書き方を提供するライブラリが登場し、
  3. 仕様に反映される場合がある。

Promise → async awaitなんかはその好例。

ずっとその流れを繰り返し続けている

その流れの過程で産まれたのが、

  • jQueryだったり、
  • Ajaxという考え方だったり、
  • Angular.jsだったり、
  • React.jsだったり

する。

面白いのは、

  • JavaScriptやってられっか! → jQuery
  • jQueryでちまちまやってられっか! → React

のような経緯になっていること。
そしてReactが出てきてから、ピュアJS最高のような流れも主流になっていること。
jQueryがJavaScriptをより簡単に書くために作られたにも関わらずである。

揺り戻し

ところで、歴史の勉強で習ったことだが、急激な変革があると「揺り戻し」という現象が発生する。
「変わる前の方が良かった」というヤツである。

ReactによってピュアJSで書く事が主流になった一方で、「こういうケースだとやっぱりjQueryでよくね?」というjQueryの再評価も発生した。
このjQueryの再評価が「揺り戻し」だと捉えている。

必要から生まれている

  • こうやりたいけど、今のやり方だと今ひとつ上手く書けない。
  • こういう機能が欲しいけど、setTimeoutで騙し騙しやっている1

そういう辛い所を、誰かが何とかしようと考えて、誰かが作っている。

誰かとは

  • 自分以外の誰か、ではない。
  • 自分が考えて、行動に移すことも出来る。

なので

  • 今出来ない所を考えて、自分で何とかすることは悪いことではない。
  • その経験をもっと広く伝えて、発展に寄与出来たら素敵だよね。

みたいなことを思ったのだった。

ちなみに

これから必要とされるが、仕様がヤバイ状態として目につくのは下記。


  1. CSS Transition, CSS Animationを使用する際の遅延処理、コンテンツロードを待機するための遅延処理、スクロールイベントの間引きなど。 

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2