npmインストールに潜む隠れたコスト
私たちはJavaScriptを修正するために、10年もの歳月をライブラリのダウンロードに費やしてきた。
日付にはmoment.jsを、ユーティリティにはlodashを、リクエストにはnode-fetchを使用していた。これらはプラットフォームができなかったことに対する回避策だった。
当時は有用だった。しかし今ではお荷物だ。
2026年、最も重要な変化はTC39やW3Cといった標準化団体からもたらされる。プラットフォームがようやくライブラリのレベルに追いつこうとしているのだ。
シニアエンジニアの証は、もはやどのライブラリを選ぶかを知っていることではない。ライブラリが全く不要なタイミングを知っていることだ。
すべての依存関係にはコストが伴う: • ページ読み込みを遅らせるバンドルサイズ。 • チームの認知負荷。 • サプライチェーンにおけるセキュリティリスク。
3つの新しいプラットフォーム機能が、古い依存関係を時代遅れにしようとしている:
Temporal 従来のDateオブジェクトは欠陥がある。タイムゾーンのバグを引き起こし、計算も不十分だ。Temporalがそれに取って代わる。Temporalは絶対的な時間とカレンダー上の時間を分離する。間違ったコードの書き方を困難にする設計だ。新しいプロジェクトを始めるなら、Dateの使用はやめ、Temporalを使おう。
Iterator Helpers .map()や.filter()のような標準的な配列メソッドは、ステップごとに新しい配列を作成する。これは大規模なデータセットにおいてメモリを浪費する。Iterator Helpersは遅延評価(lazy evaluation)を可能にする。アイテムを一つずつ処理し、必要なものが見つかった瞬間に停止する。これにより、アプリの速度を維持し、フレームレートを高く保つことができる。
Web Streams API ファイル全体がダウンロードされるのを待ってから処理するのはやめよう。従来のフェッチ(fetching)は、レスポンス全体をメモリにバッファリングする。これがメモリのスパイクを引き起こす。Web Streamsを使えば、データが届くたびにチャンクごとに処理できる。これはAIのレスポンスや大容量ファイルの扱いに不可欠だ。
Vanilla JavaScriptはもはやニッチな選択肢ではない。プロダクションアプリを構築するための、最もパフォーマンスが高く安全な方法だ。プラットフォームは、ライブラリを必要としていた問題を解決したのだ。
言語をパッチで補うのはやめよう。プラットフォームを使い始めよう。
ブラウザがすでに処理できる機能が、あなたのプロダクション・バンドルの中でまだ動いていないだろうか?
