js-history

JavaScriptの歴史

この前JSフレームワークの勉強会に行った後にフロントエンドの歴史を知るのは大事だよみたいなことを呟いたら結構反応があったので、JavaScriptの主要な歴史について軽く調べてみました。

https://twitter.com/tatane616/status/1010537052981456896

 

jQuery

これは外せないですよね、みんな大好き(?) jQueryです。

一世風靡したライブラリで、jQueryに依存しているものも多いので未だに多くの現場で使われています。完全に無くなる日は来るのか…?

セレクタを使って簡単にDOM操作を行えたのと、Ajaxによる非同期通信の影響は大きかったと思います。

最近はjQueryは要らないとか言われてますが、少しくらいは触っておいたほうが良いと思います。

初学者が動的なサイトを作る楽しさを知るには一番かと。(自分で書きたいとは思いませんが)

 

Node.js

Node.jsはサーバーサイドのJavaScript環境ですが、npmなどのパッケージ管理や、GulpやGruntなどのタスクランナー、Webpackなどのビルドツールなどエコシステムが充実してきて、JavaScriptの発展に多大な影響を与えました。モジュール分割も可能になります。

タスクランナーとは、ある一定の処理を自動化してくれるようなものです。

多くのツールがNode.jsに依存しています。

 

AltJS

ES2015とかになって構文も充実して来るのですが、昔は構文も貧弱で、もっと書きやすいようにしたい!ということでAlternative JavaScriptが登場しました。

Railsと共に流行ったCoffeeScriptや型のためのTypeScriptなど。

数多くのAltJSが生み出されましたが、現在では数種類生き残っています。

DartなんかはFlutterで注目されたり、関数型の人気でElmも使われたりしています。

多くのAltJSの誕生はJavaScriptの多様化や書きやすさに貢献しているんだろうなと感じます。

 

初期のJSフレームワーク

クライアント側のロジックが複雑になり、開発・保守を楽にしたいということでフレームワークが登場します。

Backbone.js、Knockout.js、Angular.jsが最初期に登場した3大フレームワークです。

初期は双方向バインディングでデータとViewを一致させるものが流行りで、これらの誕生によってどんどんJSフレームワークが普及していきます。

 

モダンなJSフレームワーク

最近の流れとしては、Webサイトの要素をパーツ化して再利用して行こう!というコンポーネントベースのフレームワーク(ライブラリ)が流行っています。

コンポーネント単位で開発することで、開発・保守共に楽になります。

UIライブラリのRiot.jsやReact.jsが登場し、さらにフロント界隈が盛り上がってきました。

Riotの良いところを引き継いだVue.jsなども登場し、現在ではReactのGitHubでのスター数に追いつくなどどんどん成長して、新しい技術が追加され使いやすくなってきています。

また、単方向データフローにすることで状態がわかりやすく、複雑化を防ぐことができます。

Reactなんかでは開発しやすいだけでなく、バーチャルDOMの概念で高速なUI表現を実現することができるようになり、フロントエンド界隈は時代のニーズに合わせて急成長しているなと思います。

また、現在の大規模開発ではデータのやり取りが複雑化しているのでFluxやReduxと言った状態管理を取り入れることでより柔軟に開発が行えるようになりました。

ただ、これらの普及で学習コストも大幅に増加してしまったため、初学者はみんなやってるからReact、とかではなくjQueryでDOM操作のイメージを掴みRiotなどでフレームワーク、ライブラリとはどんなものかを体験して、そこから自分が使いたい技術を選んで行くと良いと思います。

 

参考

https://qiita.com/naoki_mochizuki/items/cc6ef57d35ba6a69117f#backbonejs

https://qiita.com/Wreulicke/items/f66b74e073838be5be68

View story at Medium.com