エコシステムの成熟度―「6ヶ月ごとに新しいフレームワークを導入」
私の課題: JavaScriptのエコシステムは、エンジニアリングよりもマーケティング色が強い。AIの反応:
「エコシステムの激動は紛れもない事実です。新しいJavaScriptフレームワークが6ヶ月ごとに登場し、node_modulesがミームになっているのには理由があり、npmエコシステムには(マイクロ依存関係、サプライチェーン攻撃、left-padなど)深刻な品質問題が存在します。とはいえ、JavaScriptはNetflix、LinkedIn、PayPalといった大規模な本番システムでも稼働していますが、それらのチームには何百人ものエンジニアが規律を徹底させています。個人開発者にとって、エコシステムの混沌は資産ではなく、むしろ大きな負担となるのです。」
これは貴社にとって何を意味するのか: JavaScriptのエコシステムは世界最大規模です。これは同時に、最大の強みであり、最大の脅威でもあります。
強み:あらゆる用途に対応するライブラリが存在する。リスク:あらゆる用途に対応するライブラリが存在するが、その多くはメンテナンスされていなかったり、テストが不十分だったり、依存関係が8階層にも及んでいたりする。2016年に発生した悪名高い「left-pad事件」は、11行のユーティリティがnpmから削除され、世界中の何千もの本番環境ビルドが壊れたという出来事だが、これは例外的なケースではなかった。それは、誰も監査していないマイクロ依存関係の上に構築されたエコシステムの症状だったのだ。
Netflixのような大企業にとっては、これは管理可能な問題です。彼らは依存関係の精査、標準の遵守、内部フォークの維持管理を行う専任チームを抱えています。しかし、小規模なチームにとっては、あらゆる作業がnpm install何千人もの見知らぬ人への信頼にかかっています。そして、フレームワークの頻繁な変更は、今日選択したフレームワークが18か月後には「レガシー」になる可能性があることを意味します。それは、フレームワークが動作しなくなったからではなく、コミュニティが離れていき、チュートリアルが枯渇してしまうためです。