Webサイトを作るときにJavaScriptのフレームワークやライブラリを使用することがあると思います。jQueryは数年に渡ってよく使われているフレームワーク(ライブラリ)だと思いますが、他にはどんなフレームワーク(ライブラリ)が使用されているのでしょうか?ReactやAngularJS、Vue.jsはどれくらい使用されているのでしょうか?どのフレームワーク(ライブラリ)がどれくらい使用されているかを調べてみました。

調査対象

調査の対象は上場企業約3600社のトップページです。上場企業トップページのURLはPathfinderGateさんのデータを参照させていただきました。やや情報が古いため、アクセスできないページがあったりして全数調査はできていないことと、2017年現在の上場企業のデータとは差異があることをご承知おきください。

調査方法

上場企業約3600社のトップページにアクセスしscriptタグのsrc属性のファイル名を調査しています。
HTMLが取得できないサイトやscriptタグのsrc属性が取得できないものは無視しています。
ファイル名を調査しているため、top.js等の汎用的なファイル名が検出されました。これらは流通しているJavaScriptライブラリとは思えませんので、このようなファイルは調査結果データからは排除しました。
3600社、3600ページを調査した上で30件以上を検出したファイル名のもののみを結果データとしています。

調査結果データ

JavaScriptファイル名モジュール概要検出件数
jquery.jsjQuery 1041
jquery.min.jsjQuery 892
jquery.cookie.jsクッキー操作517
jquery.bxslider.min.jsスライダー389
jquery.easing.1.3.jsエフェクト330
conversion.jsAdwordsコンバージョン276
slick.min.jsスライダー267
wp-embed.min.jsoEmbed250
rollover.jsロールオーバー228
jquery-migrate.min.jsjQuery Migrate213
jquery.bxslider.jsスライダー205
swfobject.jsFlash埋め込み188
heightLine.js高さ揃え181
ga.jsGoogleアナリティクス155
styleswitcher.jsスタイルシート切り替え146
s_retargeting.jsYahooリターゲティング142
jsapiGoogle Loader140
analytics.jsGoogleアナリティクス122
smoothscroll.jsスムーススクロール119
AC_RunActiveContent.jsFlash埋め込み114
jquery.form.min.jsフォーム操作108
slick.jsスライダー105
fontsize.jsフォントサイズ変更103
jquery.easing.jsエフェクト99
bootstrap.min.jsフレームワーク96
jquery.flexslider-min.jsスライダー92
jquery.colorbox-min.jsモーダルウィンドウ86
smartRollover.jsロールオーバー79
jquery-1.11.1.min.jsjQuery 79
jquery.matchHeight.js高さ揃え78
base.jsオブジェクト指向78
jquery.matchHeight-min.js高さ揃え77
jquery.flexslider.jsスライダー76
jquery-1.11.3.min.jsjQuery 71
jquery-ui.min.jsjQuery UI71
jquery.easing.min.jsエフェクト71
jquery-1.9.1.min.jsjQuery 69
jquery-1.8.3.min.jsjQuery 68
jquery.colorbox.jsモーダルウィンドウ66
scroll.jsスムーススクロール65
urchin.jsGoogleアナリティクス65
jquery.textresizer.jsフォントサイズ変更65
jquery.tile.js高さ揃え63
yuga.jsライブラリ62
jquery-1.10.2.min.jsjQuery 62
jquery.mousewheel.jsマウスホイール操作62
slider.jsスライダー61
jquery-1.7.1.min.jsjQuery 61
jquery-1.11.2.min.jsjQuery 56
jquery-1.7.2.min.jsjQuery 56
jquery.smoothScroll.jsスムーススクロール55
jquery.mousewheel.min.jsマウスホイール操作54
modernizr.jsクロスブラウザ対応52
jquery.heightLine.js高さ揃え52
jquery-1.11.0.min.jsjQuery 49
jquery-1.8.2.min.jsjQuery 45
lib.jsSSLサインシール45
jquery.jscrollpane.min.jsスクロールバーカスタマイズ45
jquery.rollover.jsロールオーバー44
jqueryAutoHeight.js高さ揃え42
jquery.sliderPro.min.jsスライダー39
s_code.jsサイトカタリスト38
scrollsmoothly.jsスムーススクロール37
jquery.page-scroller.jsスムーススクロール37
jquery.carouFredSel-6.2.1-packed.jsスライダー36
jquery.cycle.all.jsスライダー34
jquery-ui.jsjQuery UI33
slideshow.jsスライドショー32
jquery.fancybox.jslightbox30

目を引くのはjQueryでReactやAngularJS、Vue.jsといった新しい技術を使用しているところは見られませんでした。
それどころかGoogleアナリティクスの古いタグやFLASH関連のライブラリなど、随分古い技術も散見されます。
次にjQueryの使用状況について見てみます。

jQuery採用状況

JavaScriptファイル名モジュール概要検出件数
jquery.jsjQuery 1041
jquery.min.jsjQuery 892
jquery-1.11.1.min.jsjQuery 79
jquery-1.11.3.min.jsjQuery 71
jquery-1.9.1.min.jsjQuery 69
jquery-1.8.3.min.jsjQuery 68
jquery-1.10.2.min.jsjQuery 62
jquery-1.7.1.min.jsjQuery 61
jquery-1.11.2.min.jsjQuery 56
jquery-1.7.2.min.jsjQuery 56
jquery-1.11.0.min.jsjQuery 49
jquery-1.8.2.min.jsjQuery 45

jQueryを採用しているのは2549件で全体の70%近くが採用しています。バージョンが明確になっているものの多くはバージョン1系統を採用している点も見逃せません。今回はファイル名だけを取得してきてしまったため、バージョンを正確に調査することができませんでした。次回調査の課題としたいと思います。

JavaScriptライブラリの使用目的

JavaScriptモジュール機能検出件数
jQuery 2549
スライダー1304
クッキー操作517
エフェクト500
高さ揃え493
ロールオーバー351
Googleアナリティクス342
スムーススクロール313
Flash埋め込み302
Adwordsコンバージョン276
oEmbed250
jQuery Migrate213
フォントサイズ変更168
モーダルウィンドウ152
スタイルシート切り替え146
Yahooリターゲティング142
Google Loader140
マウスホイール操作116
フォーム操作108
jQuery UI104
フレームワーク96
オブジェクト指向78
ライブラリ62
クロスブラウザ対応52
スクロールバーカスタマイズ45
SSLサインシール45
サイトカタリスト38
スライドショー32
lightbox30

JavaScriptライブラリの機能ごとに採用件数を見ていきます。前提としてjQueryを使用しているところが多く、スライダーやエフェクト、高さ揃え、ロールオーバーといったイチから作ると面倒な機能がライブラリとして採用されていることがわかります。
特にスライダーは採用数も多く、レスポンシブに対応したものなどバリエーションも多く、選択の幅も多くあります。

まとめ

現状のJavaScriptフレームワーク(ライブラリ)についてシェアを調べてみたところ、jQueryのシェアは一般企業のトップページにおいては依然高く、新しい技術の採用はまだ少ないという結果でした。ターゲットをトップページではなく、システム絡みのサイトやショッピングサイトなどに絞るとまた違った結果になるかもしれません。
レガシー技術と新技術の採用については、現状を踏まえて採用する必要があるのかなと感じました。