- JavaScriptの小規模ユーティリティライブラリは、LLMのコード生成能力によって徐々に不要になりつつある
- 例として
blob-util は10年前の npm パッケージで、Blob処理ツール集だが、いまやAIがその場で類似コードを生成できる
- こうした変化は依存関係の削減と迅速な開発を可能にする一方、学習と理解の機会の喪失をもたらす
- Node.js とブラウザの組み込み機能拡張に続き、LLM が小規模ライブラリの終焉を加速させている
- 今後のオープンソースの価値は、創造的・大規模・専門的な領域で持続する可能性がある
小規模オープンソースの衰退とLLMの影響
- 10年前に作った
blob-util は、JavaScript の Blob オブジェクトを文字列や ArrayBuffer に変換するシンプルなユーティリティ集で、週500万回以上ダウンロードされている
- 作者は、PouchDB のユーザーが
Blob 処理に混乱しているのを見てこれを作成した
- 現在、開発者の約80%がAIを業務に活用しており、その結果、単純なユーティリティはLLMで代替可能になっている
- 例として Claude は、
Blob を ArrayBuffer に変換する TypeScript 関数をその場で生成する
- Claude の出力は
blob-util と似ているが、より冗長で型検証が過剰であり、エラー処理は改善されている
- 作者は、この変化が依存関係の削減とコードの堅牢性向上として見えるかもしれないと述べている
学習中心のオープンソースが持つ価値の喪失
blob-util の README にはKirbyのキャラクターを使ったチュートリアルが含まれており、単なる機能提供を超えてJavaScript学習を助ける目的があった
- LLM中心の開発環境では、即時の回答が理解や教育より優先されるようになり、このような学習型オープンソースの必要性は薄れている
- ドキュメント自動化のための
llms.txt のような試みは、ドキュメントの意味そのものを再定義することになる
オープンソースの新しい方向性
- 作者は今でもオープンソースを続けているが、小規模で低価値なライブラリの時代は終わったと考えている
- Node.js とブラウザの組み込み機能(
node:glob, structuredClone など)の拡張ですでに減少傾向にあった
- LLM がその流れを決定的に加速させた
- 教育的な役割を果たしていたライブラリ(例: Underscore.js)も必要性が薄れている
- 単純な配列グループ化のような機能は、いまや標準 API で解決できる
価値が残るオープンソースの条件
- LLMが簡単には生成できない大規模・創造的・専門的なプロジェクトに価値が集中する
- 例として
fuite プロジェクトやメモリリーク検知の研究は、LLMが再現しにくい創造的な作業だ
- 今後のオープンソースの意味は、新しいアイデアと人間的な創造性にある
- 例として Dominic Gannaway が開発したRipple.jsフレームワークに言及し、人間の実験精神を強調している
結論
- LLMは一部のオープンソースを時代遅れにしたが、それでも新しい形のオープンソース創作の機会は存在する
- 人間の開発者の創造性と実験精神が、AI時代のオープンソース生態系の持続性の中核要素として示されている
4件のコメント
left-pad のような奇妙なエコシステムの慣行さえ防げるなら、問題ないと思います
努力に対する満足度がますます低い時代になるにつれて、小さなユーティリティは、保守にかかる手間に見合う価値がないと判断され、顧みられなくなっていくように思います。
Hacker Newsのコメント
最近では開発者の約80%がAIを業務に活用している
blob-utilのようなユーティリティは、今や大半をLLMでその場で生成できるただし、このやり方は諸刃の剣でもある。検証されていないコードは保守負担を残し、エッジケースで失敗することもある
そのためJavaエコシステムでは、Apache Commonsのような信頼できる標準ユーティリティ集が定着した
一方でLLM生成コードは、見た目には筋が通っていても奇妙なバグが潜んでいる可能性が高い
AIがコードやチュートリアルを大量生成することで、品質低下とスパム化が加速する時代に入った
個人ブログや小規模ライブラリを作る動機は薄れている
LLMが作った記事も同程度なので、むしろフィルタリングしやすくなったと感じる
自分は
devcontainerの中でコードを実行して、チュートリアルに本当の価値があるかを試す。動けば見る価値があり、動かなければ捨てるJSのマイクロ依存地獄は悪夢だった
いまその時代が終わりつつあり、開発者が再びコーディングを学ぶ時代に戻ってほしい
「二分木を反転する問題」は本当に存在するのか、という疑問が出た
「小さくて価値の低いライブラリの時代は終わった」という主張に共感する声もある
Go言語にはそもそも依存性地獄がなかったので、npmの問題は文化的要因によるものだという
今はユーティリティよりも、実際に動く製品を作るほうが価値もあり楽しい
自分はマイクロ依存性そのものに意味がないと思う
それなら関数一覧をMarkdownに書いて、コピーして使ってもらうほうがよい
Cのヘッダファイルベースの小型ライブラリというやり方のほうが実用的だ
「これからどんな形のオープンソースに意味があるのか」という問いも出ている
公開したコードが結局AI学習データとして吸収されてしまうからだ
そのため、完全なFOSSではなくsource-availableモデルが代案になり得るという見方もある
著者は、貢献の意味は単なる名前の表記より大きいと強調している
自分は、オープンソースは消えるどころか、むしろさらに強くなると信じている
本当に創造的な開発者たちがAIを活用して、企業には作れない革新を生み出すはずだ
オープンソースは今でも本物の価値を検証する場であり、AIによって限界を超えながら学ぶ空間でもある
ただし政府や大企業はローカルAIシステムを規制しようとし、やがて「市民が使えるAI」の境界線が引かれるだろうと予測している
レビューや方針議論に無駄な時間が増え、とくにコンパイラのような複雑な分野ではAIはまったく役に立たない
ある人は、「パッケージとして追加されなくても、コードを公開する行為そのものには今なお価値がある」と強調している
LLMが代わりにコードを書いてくれれば学習負担は減り、より深いテーマに集中できる
たとえば14年間
rubygems.orgを維持した末に、企業化した構造に失望して離れたと語る人もいた「AIでコードを書くことも結局依存性の一形態だ」という指摘もあった
検証せずに貼り付けるのは、外部ライブラリを追加するのと変わらない
2024年初めに小さなプロジェクトを作りながら
claude 3.5 に pure javascript で使える store state モジュールを作ってほしいと頼んだのですが
簡潔でありながらマイグレーションの状況にまで対応できるコードを書いてくれて、驚いた記憶があります。
小規模なライブラリほど、似たようなことを考える人たちが公開したコードが多いでしょうし、AI がそれを定型化された構造にしやすいと考えれば、当然の現象だと思います。
copyparty のように、誰でも思いつけるけれど、個人が長く維持するのは難しい。
そうしたプロジェクトを最後まで押し進めて生まれる、きれいに磨き上げられたプロジェクトを、これからは見づらくなるかもしれないという点は残念ではあります。