世界中の 23,000 人以上の開発者を対象にした調査である 2020 年の JavaScript の現状レポートでは、WebPack と Jest の使用が増加し、React、Express、TypeScript の使用が引き続き高いことが明らかになりました。また、要望リストのトップは、もはやブラウザの互換性の向上ではなく、静的型付けであることが明らかになりました。
JavaScriptは、多くのランキングで最も使用されているプログラミング言語です。元々はLiveScriptと呼ばれ、1995年にNetscapeのBrendan EichによってJavaアプレットと連携するように10日間で設計されたこの小さな言語は、今では世界共通の言語となっています。
JavaScriptエコシステムのトレンドは重要ですが、Webpackが最も使用されているテクノロジーのリストでトップを占めているという事実は、現代のJavaScript開発について多くのことを物語っています。WebpackはNode.js上で動作するモジュールバンドラーで、Terserを使ったJavaScriptの圧縮などのタスク用のプラグインを備えています。Webpackはツリーシェイキング、つまり未使用のコードを削除する機能を備えています。
これはコンパイラによく似ています。まさに今日の話題です。HTML、CSS、JavaScriptだけでなく、ソースコード、ライブラリ、モジュール、そしてそれらをすべてブラウザで実行できるものにまとめるビルドプロセスもコンパイラです。CSSについても同様です。多くの開発者はCSSを直接記述するのではなく、Sassを使ってCSSにコンパイルされるコードを記述します。
クリックして拡大
調査の人口統計は、包括性を切望する人々にとって憂鬱なものであり、男性と回答した人が91.1%で、2019年の91.3%から減少しており、他の言語が利用可能であったにもかかわらず、82.4%が調査を完了するために英語を選択しました。
「JavaScript に現在欠けていると思うものは何ですか」という質問に対して、調査対象者の約 1,000 人が挙げた圧倒的トップの選択肢は静的型付けでした。
2位は標準ライブラリで、239票を獲得しました。JavaScriptは扱いにくい言語であり、ある状況では自由で使いやすい一方で、別の状況では容赦のない言語となることがあります。
静的型付けは、より多くのエラーやタイプミスを事前に検出することを意味し、言語に高度な規律をもたらします。この需要は、JavaScriptにコンパイルされる強力な型付け言語であるTypeScriptの人気の大きな要因です。調査によると、TypeScriptはWebpack、React、Expressに次ぐ最も使用されているテクノロジーであり、人気と満足度の両方が大幅に向上しています。
注目すべきは、ブラウザサポートが大きな不足機能であると指摘した開発者がわずか62人だったことです。一部のビジネス環境を除けば、Internet Explorerでの動作確認の苦労は、以前ほど大きな問題ではなくなったようです。MicrosoftがChromiumと、Chromeでも使用されているV8 JavaScriptエンジンを採用したことが、この問題の解決に貢献しています。
JavaScriptフレームワークに関しては、FacebookのReactが80%の使用率で首位を維持し、Angularが56%(昨年よりわずかに減少)、Vueが49%(わずかに増加)で続いています。しかし、満足度表を見ると、ReactがSvelteに次いで2位となっていることが分かります。Angularの使用率は昨年の38%から42%に上昇しましたが、これは今後使用率が低下する可能性を示唆しているのかもしれません。
同じくFacebook発祥のGraphQLは、JavaScriptデータレイヤーとして人気が高まっていますが、利用率(47%)はRedux(67%)に及ばず、現状では利用率が低いのが現状です。しかし、満足度はGraphQLが94%であるのに対し、Reduxはわずか67%です。
Node.js上でサーバーサイドコードを実行したり、静的Webアプリケーションを生成したりするために使用されるバックエンドフレームワークでは、調査ではExpressが80%の使用率で「唯一の主要ツール」と評されましたが、Next.jsは急成長を遂げており、使用率はわずか37%(27%から増加)でしたが、満足度は92%でした。Next.jsはReactベースであるため、今日のJavaScript環境にはReactの影響が強く見られます。
JavaScriptアプリケーションはどのようにテストしますか?調査によると、最も多く使用されているのはJest(使用率68%、満足度96%)で、次いでMocha(使用率53%、満足度74%)となっています。
将来の方向性のテキスト
JavaScript開発は、様々なツールやフレームワークが複雑に絡み合い、肥大化した混乱状態なのでしょうか?それとも、どこでも実行できるリッチアプリケーションへの現代的で魔法のような道なのでしょうか?意見は様々でしたが、調査対象者の80%以上がJavaScriptは正しい方向に進んでいると感じています。ただし、JavaScriptが「過度に複雑」であるという点については、多くの回答者が同意(39%)または中立(26.6%)しています。
JavaScript開発者の間でも、この言語がオンラインで過剰に使用されているという意見が一部で支持されています(賛成25.8%、どちらでもない27.1%)。しかし、90%近くがJavaScriptアプリの構築を楽しんでいると回答しており、結局のところ、JavaScriptはそれほど複雑ではないのかもしれません。
Node.jsは今回の調査ではほとんど言及されていませんでしたが、今日のJavaScriptスタックの基盤であり、サーバー上での実行やアプリケーションのビルドプロセスにおけるツールやライブラリの実行に利用されています。しかし、状況は変わるかもしれません。最近行われた別の調査によると、GitHub上で開発者から最も注目されているプロジェクトの中で、Node.jsの開発者であるRyan Dahl氏によるJavaScriptランタイムへの再挑戦であるDenoが1位を獲得しました。
「Denoの成功は、2つの大きなトレンドを裏付けています」と調査の著者らは述べています。「フロントエンドとクライアントサイドの両方でTypeScript言語が普及していること、そしてSnowpackのようなソリューションによってES6モジュールがオンザフライでインポートされるようになっていることです。」
Snowpackとは何でしょうか?これはWebpackの代替であり、ECMAScript 6.0仕様でJavaScriptに導入されたネイティブモジュールシステムに基づいています。JavaScriptエコシステムの何よりも大きな特徴の一つは、急速な変化です。今日はNodeとWebpack、明日はDenoとSnowpack?
State of JavaScript 2020のアンケート全文は、こちらからご覧いただけます。アンケートウェブサイトの構築に使用されたコードはGitHubで公開されており、こちらからご覧いただけます。®