開発者は静的型付けを望んでいます (そしてバニラ JS よりも TypeScript を好みます) — Visual Studio Magazine

ニュース

JavaScript 調査: 開発者は静的型付けを望んでいます (そしてバニラ JS よりも TypeScript を好みます)

最新の State of JavaScript 調査では、以前の版からの調査結果が確認されています。開発者は、非常に人気のあるプログラミング言語の静的型付けを好み、望んでいます。 さらに、動的に型付けされた通常の JavaScript よりも、静的に型付けされた TypeScript を 100% 使用する可能性が高くなります。

タイピングは長い間、無秩序に広がったルーシーグースな JavaScript 言語の論争の的となってきました。JavaScript 言語は、他のほとんどのテクノロジー製品では見られなかった愛憎の分裂を引き起こしたにもかかわらず、多くの調査で最も人気のあるプログラミング言語と見なされてきました。

より構造化され、静的に型付けされた JavaScript コードが好まれることで、Microsoft の TypeScript 言語が台頭し、長年にわたって着実に人気が高まっています。 たとえば、TypeScript は、GitHub の State of the Octoverse レポートで 4 番目に使用されている言語としてリストされています。 また、最近、スタック オーバーフローの巨大な年次開発者調査の使用統計で上位 5 言語を割り出すために、Java を飛び越えました。

2022 – 5
2021 – 7
2020 – 9
2019 – 10
2018 – 12

さらに、TypeScript は、2017 年以来、最も愛されている言語のトップ 4 と、スタック オーバーフローの調査シリーズで最も使用されている 10 の言語の両方にリストされました。

2022 年の上位 20 のプログラミング、スクリプト、およびマークアップ言語
[Click on image for larger view.] 2022 年の上位 20 のプログラミング、スクリプト、およびマークアップ言語 (ソース: StackOverflow)。

ただし、SO やその他の調査シリーズで何年にもわたってそうであったように、JavaScript は依然としてそのリストのトップであることに注意してください。

しかし、新しい 2022 State of JavaScript 調査では、静的型付けに対する強い需要が示されており、100% の時間 JavaScript を使用する回答者よりも TypeScript を 100% の時間 (約 21%) 使用する回答者の割合が高いことを示す 1 つのグラフが含まれています。 (約8パーセント)。

JavaScript/TypeScript 天秤座
[Click on image for larger view.] JavaScript/TypeScript 天秤座 (出典: 2022 年 JavaScript の現状調査)。

しかし、なぜ? 静的型付けの主な魅力の 1 つは、デバッグと型エラーの処理の改善です。 「Java、Go、C++ などの静的に型付けされた言語は、コンパイル時に型関連のエラーをキャッチできます」と SE-EDU サイト (ソフトウェア エンジニアリング教育のリソース) は説明しています。 「しかし、Python、Ruby、JavaScript などの動的型付け言語では、変数の型は実行時にしか分からないため、このようなエラーは簡単には発見できません。」

最新の State of JavaScript 調査では、コンパイル時にエラーを検出することが開発者の好みであることは明らかです。この調査は、オープンソースのコントリビューターとコンサルタントのチームの支援を受けて、Sacha Greif と Eric Burel によって実施されています。

適切な例: 開発者が JavaScript に欠けていると感じているものについて尋ねられたとき、「静的型付け」が 15,363 人の回答者によって挙げられ、圧倒的にトップの回答であり、「標準ライブラリ」が 12,929 人の回答者によって言及されました。 調査シリーズの最後の 3 年間は、そのようになっています。

JavaScript に欠けているもの
[Click on image for larger view.] JavaScript 2022 に欠けているもの (出典: 2022 年 JavaScript の現状調査)。
JavaScript 2021 に欠けているもの
[Click on image for larger view.] JavaScript 2021 に欠けているもの (出典: 2021 年 JavaScript の現状調査)。
JavaScript 2020 に欠けているもの
[Click on image for larger view.] JavaScript 2020 に欠けているもの (出典: 2020 年 JavaScript の現状調査)。

その長年の欲求を満たすために、Microsoft の TypeScript は静的型付け機能を提供する唯一の製品ではありません。その SE-EDU サイトで説明されているように、Flow はその陣営のもう 1 つの著名なメンバーです。

「JavaScript コミュニティでは、Flow と TypeScript が、静的型チェックを有効にするための 2 つの主要なオプションとして浮上しています」と、この比較を提供しています。

  • Flow は、JavaScript の静的型チェッカーです。 Facebookが開発したオープンソースのツールです。
  • TypeScript は、プレーンな JavaScript にコンパイルされる、静的に型付けされた JavaScript のスーパーセットです。 マイクロソフトが開発したオープンソースのプログラミング言語です。

「Flow と TypeScript はわずかに異なる方法で開発ワークフローに統合されますが、同じ目標を持ち、構文に関して多くの類似点を共有しています」と SE-EDU の記事は続きます。 「業界は TypeScript を最優先の選択肢 (ソース) に移行しているように見えるため、この記事では TypeScript の仕組みと、TypeScript を使い始める方法を紹介します。」

そして、TypeScript と Flow を超えて、他にも多くの JavaScript タイピング イニシアチブがあり、「JavaScript タイピング」Web 検索の最初の結果は Typed JavaScript であり、「実行前に型エラーを公開するツールとプラクティスのシステム」と説明されています。オプション, 型付き JavaScript は JavaScript が実行される場所で変更なしで実行されます. 型付き JavaScript は静的な型チェックを提供します, コンパイラや特殊なツールなしで. 型付き JavaScript は好きなだけ使用できます. うまくいかない場合, 変更は簡単です.戻る。”

Microsoft は TypeScript 以外の方法でもこの問題に取り組み、昨年 3 月に「JavaScript における型構文の提案」を執筆しました。

JavaScript における型構文の提案
[Click on image for larger view.] JavaScript における型構文の提案 (出典: マイクロソフト)。

それがどのように機能するかを説明する際に、Microsoft の Daniel Rosenwasser による投稿は次のように述べています。

「JavaScript に型が追加されるのはいつですか?」と尋ねられたとき、私たちは答えるのをためらわなければなりませんでした。 歴史的には、開発者に JavaScript の型について何を考えているかを尋ねると、さまざまな答えが返ってくるという問題がありました。 型は完全に無視されるべきだと感じた人もいれば、何らかの意味を持つべきだと感じた人もいました。おそらく、ある種のランタイム検証を強制する必要があるか、内省可能であるべきか、最適化のためにエンジンへのヒントとして機能する必要があるかなどです。 、 もっと! しかし、ここ数年、TypeScript が向かっている方向、つまり実行時に型が完全に無視され、消去可能な構文とうまく機能する設計に人々が収束するのを見てきました。 この収束は、TypeScript の幅広い使用と並んで、私たちのコア チーム以外の数人の JavaScript および TypeScript 開発者が「コメントとしての型」と呼ばれる提案について私たちに再びアプローチしたときに、より自信を持って感じさせてくれました。

この提案のアイデアは、JavaScript がエンジンが行う型の一連の構文を切り開くことができるというものです。 完全無視、しかし、TypeScript、Flow、およびその他のようなどのツールを使用できますか. これにより、TypeScript の気に入っている機能 (型チェックと編集のエクスペリエンス) を維持しながら、開発でのビルド ステップの必要性をなくすことができます。

Rosenwasser のリンクは、型注釈を公式の JavaScript 標準である ECMAScript に追加する提案を指しており、GitHub プロジェクトの説明には次のように記載されています。

この提案は、開発者が JavaScript コードに型注釈を追加できるようにすることを目的としています。 JavaScript の外部. 実行時に、JavaScript エンジンはそれらを無視し、型をコメントとして扱います。

この提案の目的は、開発者が TypeScript、Flow、およびその他の JavaScript の静的型付けスーパーセットで記述されたプログラムを、トランスパイルを必要とせずに実行できるようにすることです。

この提案では、上の図に示されているように、2020 年と 2021 年の JavaScript の現状調査で静的型付けが最も要求された言語機能でもあったことを指摘しています。

全体として、2022 年のレポートは JavaScript 陣営が満足していることを示しており、回答者の 47% 近くが言語の全体的な状態に満足しています。 最大の問題点は「コード アーキテクチャ」であり、これは静的型付け機能の欠如に関連している可能性があります。 それに関して、「JavaScript と TypeScript はこれまで以上に活​​気にあふれている」と報告書は述べています。 「反応性と水分補給(またはその欠如)において、パフォーマンスをリードするイノベーションの継続が見られました。」

調査は 2022 年 11 月 21 日から 12 月 22 日まで実施され、39,472 の回答が集まりました。

著者について

David Ramel は、Converge360 の編集者兼ライターです。

.

Leave a Comment

Your email address will not be published. Required fields are marked *