npmインストールに潜む隠れたコスト

私たちはJavaScriptを修正するために、10年もの歳月をライブラリのダウンロードに費やしてきた。

日付にはmoment.jsを、ユーティリティにはlodashを、リクエストにはnode-fetchを使用していた。これらはプラットフォームができなかったことに対する回避策だった。

当時は有用だった。しかし今ではお荷物だ。

2026年、最も重要な変化はTC39やW3Cといった標準化団体からもたらされる。プラットフォームがようやくライブラリのレベルに追いつこうとしているのだ。

シニアエンジニアの証は、もはやどのライブラリを選ぶかを知っていることではない。ライブラリが全く不要なタイミングを知っていることだ。

すべての依存関係にはコストが伴う: • ページ読み込みを遅らせるバンドルサイズ。 • チームの認知負荷。 • サプライチェーンにおけるセキュリティリスク。

3つの新しいプラットフォーム機能が、古い依存関係を時代遅れにしようとしている:

  1. Temporal 従来のDateオブジェクトは欠陥がある。タイムゾーンのバグを引き起こし、計算も不十分だ。Temporalがそれに取って代わる。Temporalは絶対的な時間とカレンダー上の時間を分離する。間違ったコードの書き方を困難にする設計だ。新しいプロジェクトを始めるなら、Dateの使用はやめ、Temporalを使おう。

  2. Iterator Helpers .map()や.filter()のような標準的な配列メソッドは、ステップごとに新しい配列を作成する。これは大規模なデータセットにおいてメモリを浪費する。Iterator Helpersは遅延評価(lazy evaluation)を可能にする。アイテムを一つずつ処理し、必要なものが見つかった瞬間に停止する。これにより、アプリの速度を維持し、フレームレートを高く保つことができる。

  3. Web Streams API ファイル全体がダウンロードされるのを待ってから処理するのはやめよう。従来のフェッチ(fetching)は、レスポンス全体をメモリにバッファリングする。これがメモリのスパイクを引き起こす。Web Streamsを使えば、データが届くたびにチャンクごとに処理できる。これはAIのレスポンスや大容量ファイルの扱いに不可欠だ。

Vanilla JavaScriptはもはやニッチな選択肢ではない。プロダクションアプリを構築するための、最もパフォーマンスが高く安全な方法だ。プラットフォームは、ライブラリを必要としていた問題を解決したのだ。

言語をパッチで補うのはやめよう。プラットフォームを使い始めよう。

ブラウザがすでに処理できる機能が、あなたのプロダクション・バンドルの中でまだ動いていないだろうか?

Source: https://dev.to/abhishekdutta619/the-hidden-cost-of-every-npm-install-why-2026-is-the-year-we-stop-patching-javascript-5cp2