JavaScript関連技術
目次
- 概要
- 言語
- データ定義
- ライブラリ
- 開発環境
- Node バージョン管理システム
- パッケージ管理システム
- Node.jsフレームワーク
- ビュー系フレームワーク
- その他のフレームワーク
- モジュール管理
- トランスパイラ・Polyfills
- バンドラ
- 圧縮・最適化
- タスクランナー・ビルド関連ツール
- 構文チェッカー
- テスト支援
- アーキテクチャ
概要
JavaScript に関連する言語、ライブラリ、フレームワーク、アーキテクチャなどをあげてみました。
(★数字) は、現在(2018年1月15日時点)の GitHub でのスター数を示しています。
言語
- JavaScript : JavaScript。当初の名前は LiveScript → 詳細
- ECMAScript : ECMA による JavaScript 標準仕様
- TypeScript : Microsoft による JavaScript の拡張言語 (★29,934)
- CoffeeScript : JavaScript を Python ライクに記述 (★14,509)
- LiveScript : CoffeeScript をさらに進化。JavaScript の元の名前と名前重複 (★1,956)
- Dart : Google 製言語。ECMAScript 3 にコンパイル可能
- AtScript : ES6 ベース。TypeScript に統合
- ActionScript : Adobe 社の Flash で使用。ECMAScript を拡張したもの
- Haxe : ActionScript に似た拡張言語 (★2,194)
- JSX : JavaScript の中に XML を記述 (★842)
データ定義
- JSON : XML の代わりに多数の言語で使用されるデータ表記法。実は YAML のサブセット
ライブラリ
- Dojo Toolkit : Ajax や UI パーツなどを扱うライブラリ (★1,119)
- prototype.js : Prototype JavaScript Framework (★3,310)
- jQuery : DOM操作を得意とするライブラリ (★47,716) → 詳細
- D3.js : Data-Driven Documents。SVG 操作 (★71,644)
- YUI : Yahoo User Interface ライブラリ。開発中止 (★3,714)
- Lodash : 文字列や配列操作 (★29,968)
- Underscore : 文字列や配列操作 (★22,170)
- PixiJS : 2Dアニメーションライブラリ (★17,225)
- three.js : 3Dグラフィックライブラリ (★38,466)
- C3.js : グラフ描画ライブラリ (★7,432)
開発環境
- Node.js : JavaScript 開発/実行環境 (本書) (★44,432)
Node バージョン管理システム
- nvm : Node Version Manager (★24,077)
- nodebrew : Node Version Manager (★725)
- n : Node Version Manager (★8,444)
- ndenv : Ruby の rbenv ライクなバージョン管理 (★256)
- anyenv : rdenv, pyenv, ndenv などの *env を一括管理 (★751)
パッケージ管理システム
- Homebrew : Mac 向けパッケージ管理システム。コマンド名は brew。
- npm : Node Package Manager (★15,109) → 詳細
- Bower : クライアント用ライブラリ管理に特化したパッケージ管理システム (★15,291)
- yarn : 次世代の npm。Facebook 製 (★29,696)
Node.jsフレームワーク
- Express : Node.js上のフレームワーク (★36,089)
- Koa : ES2017 非同期関数を用いたミドルウェア (★19,198)
- Hapi : REST-API サーバ等に用いられる軽量フレームワーク (★8,947)
- Sails : リアルタイム MVC フレームワーク (★18,260)
- Fastify : 高速&低オーバーヘッドのフレームワーク (★5,981)
ビュー系フレームワーク
- Knockout.js : やや歴史の古いフレームワーク (★8,688)
- RxJS : 関数型リアクティブプログラミングライブラリ (★10,247)
- Backbone.js : やや歴史の古いフレームワーク (★26,931)
- Ember.js : 少々独自性の強いフレームワーク (★18,613)
- Riot.js : UIライブラリ (★12,684)
- AngularJS : Angular1。ビュー操作に特化したフレームワーク → 詳細
- Angular2 : Angular1 の強化版。互換性無し (★32,006)
- React : ビュー操作に特化したフレームワーク (★85,711)
- Vue.js: ビュー操作フレームワーク (★79,923) → 詳細
- Aurelia : Angular の開発者が分離して開発 (★10,352)
- Meteor : GitHub で Ruby on Rails のスター数を抜いたフルスタックフレームワーク (★39,017)
その他のフレームワーク
- Vanilla.js : 利用者が最も多い、超々々々軽量フレームワークw
モジュール管理
- CommonJS : サーバーサイドで同期的にモジュールをインポート
- AMD : ブラウザ向けに非同期にモジュールをインポート (★3,611)
- UMD : CommmonJS+AND (★5,169)
- ES6 modules : モジュール読み込みの ECMAScript 標準
トランスパイラ・Polyfills
- Polymer : Web Component をレガシーな JavaScript に変換 (★18,993)
- Babel : JSX 変換に加えて ES6 構文をレガシーな JavaScript に変換 (★25,288)
バンドラ
- RequireJS : 少し古めのバンドラ (★11,283)
- Browserify : 第二世代バンドラ (★11,680)
- rollup.js : 第三世代バンドラ (★11,516)
- Webpack : 第三世代バンドラ (★35,892)
圧縮・最適化
- uglify-js : JavaScript ファイルを圧縮・最適化 (★7,768)
タスクランナー・ビルド関連ツール
- Grunt : 一連のタスクを自動実行 (★11,705)
- Gulp : 最近は Grunt よりも流行っているみたい (★Gulp)
- Brunch : Grunt と Gulp の中間くらい (★6,336)
- Broccoli : ファイルツリーを対象とするビルドツール (★3,082)
- Yeoman : Yeoman = yo + (Grunt|Gulp) + (npm|Bower) (★2,398)
構文チェッカー
- Flow : Fecebook 製型チェッカー (★15,011)
- JSLint : 構文チェッカ (★3,091)
- JSHint : 構文チェッカ (★7,712)
- ESLint : ECMAScript シンタックスチェッカー (★10,082)
テスト支援
- YUI Test : YUI 製単体テストフレームワーク (★123)
- Jasmine : 単体テストフレームワーク (★13,201)
- nodeunit : 単体テストフレームワーク (★1,907)
- Vows : 単体テストフレームワーク (★1,564)
- Buster.js : 単体テストフレームワーク (★463)
- QUnit : 単体テストフレームワーク (★3,726)
- Mocha : 単体テストフレームワーク (★14,381)
- Chai : Mocha と併用されることの多いアサーションライブラリ (★4,946)
- Karma : 単体テストフレームワーク (★9,355)
- AVA : 単体テストフレームワーク(★12,459)
- Jest : JavaScript Test (★14,841)
アーキテクチャ
- SPA : Single Page Application
- SSR : Server Side Rendering
- MVC : Model View Controller
- MVVM : Model View ViewModel。MVC から派生。
- Flux : Facebook 提唱のデータフローアーキテクチャ。MVVM から派生。データの流れを一方向にシンプルに整理。
- Redux : Facebook 提唱の状態管理アーキテクチャ。Flux から派生。
Copyright (C) 2018 杜甫々
初版:2018年1月21日 最終更新:2018年1月28日
https://www.tohoho-web.com/ex/jstech.html