Svelte リポジトリの「TS から JSDoc への変換」PR によると、Svelte チームは現在の TypeScript から JSDoc に移行する予定です。
フロントエンド UI フレームワーク Svelte の創設者である Rich Harris 氏は、Twitter での返信でこのニュースを認めました。同氏は、この決定によって Svelte のタイプ セーフティが変更されることはないと述べた。
Svelte コンパイラを担当する開発者らは、JSDoc に切り替えることで、コンパイルやビルドを行わずにコードをデバッグできるようになり、コンパイラ開発が簡素化されると述べています。結局のところ、現在のデバッグ作業はより複雑であり、デバッグにはビルド ステップを使用する必要があります。
さらに、JSDoc の型は TypeScript とほぼ同等であり、型のチェックには tsc コンパイラーを引き続き使用できるため、JSDoc を使用してもコンパイラーの開発セキュリティには影響しません。
もちろん、Svelte 開発者 (コンパイラ開発者ではない) は、現在と同様に型定義ファイルを引き続き入手します。したがって、Svelte 開発者の場合、タイプに変更はありません。
Svelte は、TypeScript を放棄した最初のフロントエンド フレームワークではありません。2020 年の初めに、Deno はビルド時間を短縮するために内部 TypeScript コードの一部を JavaScript に移行しました。当時、Deno チームは、内部コードのビルド時の TS タイプのチェックとバンドルをすべて削除することを計画していました。
この点に関して、Denoチームは次のような理由を挙げています。
-
TypeScript は、ファイルを変更するときにコンパイルに数分かかることが多く、継続的なコンパイル プロセスが非常に遅くなります。
-
Deno 実行可能ファイルおよびユーザー向け API ソース ファイルを作成する場合、TypeScript 構造により一連の実行時のパフォーマンスの問題が発生する可能性があります。
-
TypeScript 自体は、Deno コードの整理には何の役にも立ちませんが、むしろコード整理の負担を増大させます。Deno チームが提起した本当の問題の 1 つは、TypeScript が独立した Body クラスを 2 つの場所 (https://github.com/denoland/deno/issues/4748) にコピーすることです。
-
TypeScript コンパイラは開発者による d.ts ファイルの生成を支援できないため、内部コードと実行時の TypeScript 宣言は手動で同期を保つ必要があります。
-
彼らは 2 つの TS コンパイラ ホストを維持しています。1 つは内部 Deno コード用、もう 1 つは外部ユーザー コード用ですが、どちらも非常に似た目的を果たします。
要約すると、ビルド時間を短縮し、リリースされるコードのサイズを削減し、記述されるコードの量を削減します。
なお、この時点ではDenoが内部コードでTypeScriptを無効にしただけで、DenoのユーザーコードのTypeScript部分は残り、型チェックも自然に共存することになる。
これらの事例からわかるように、TypeScript は JavaScript の改良版とみなされがちですが、問題はそれほど単純ではない可能性があります。他の言語と同様、TypeScript にも欠陥があります。最も重要な問題の 1 つは、コンパイル速度が遅いことです。プレーンな JavaScript から TypeScript に変換する際、小規模なプロジェクトではコンパイル時間の低下に悩まされることはありませんが、大規模なプロジェクト (複雑な React アプリケーションなど) では大きな影響を受けます。
「ビッグ フロント エンドの新しいトレンド」のサブ フォーラムでは、OpenJS Foundation の理事会のメンバーであり、Azure JavaScript およびノード、セキュリティ、およびポータビリティの責任者である Natalia Venditto を招待しました。
JavaScript コンテナーを使用すると、開発者はポータブルで軽量なアプリケーションを作成でき、WebGPU API はレンダリングを高速化し、WebAssembly (Wasm) はブラウザーで直接高性能の低レベル コードを実行するための強力な機能を提供します。
Natalia Venditto が JavaScript の未来へのエキサイティングな旅に参加し、ペースが速く、常に変化するソフトウェア開発の世界におけるこれらのテクノロジーの重要性を探り、それらのテクノロジーがもたらす機会と課題について議論し、その使用方法をデモンストレーションします。次世代の Web アプリケーションを利用して、開発ワークフローを加速し、より安全なアプリケーションを構築し、前例のないレベルのパフォーマンスを実現します。