
5
1.2 関数型プログラミングを始めるために
命令型プログラミングをサポートし(時にはむしろ命令型を好み)、そしてグロー
バルスコープに依存している言語として、
JavaScript
はデフォルトで安全性に欠け
るものです。つまり、可変性に頼ってプログラムを構築することは、プログラムが
大きくなるにつれて混乱を招く可能性が大きくなるということです。しかし、その
ような欠点を持った言語自身が、他の言語にみられるような高レベルの機能を構築
するための建築資材を提供するのです。例えば、
ECMAScript 6
以前のバージョンの
JavaScript
はモジュールシステムを提供していませんが、オブジェクト生成のメカニ
ズムを応用することによりモジュール生成を実現していました。
JavaScript
が基本的
なパーツの緩い集合体を提供しているということは、多くのカスタムモジュールの実
装を促しました。しかしそれらの実装はそれぞれに互換性がないものだったのです。
言語の妙な癖、安全ではない機能、そして競合するライブラリの山。これら
3
つ
は、
JavaScript
の採用をためらわせるに十分な理由です。しかし、トンネルの先には
光が見えます。その光は訓練を重ねて一定の規則を遵守することによりもたらされる
もので、これにより
JavaScript
コードの安全性が確保されるだけではなく、コード
ベースのサイズに比例してスケーラビリティを増し、シンプルでわかりやすく、テス
トを行いやすいコードになるのです。本書はそのようなアプローチにつながる道筋の ...