1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TanStackのTanner Linsley氏が語る設計思想とOSSの持続可能性

1
Posted at

本記事はCodeRabbitの提供するポッドキャストTHE MERGEより、Why Tanner Linsley Won’t Take VC Money for TanStack - YouTubeの日本語解説です。

TL;DR

本動画では、TanStackの創設者であるTanner Linsley氏が、TanStackの成り立ちやReact Queryが解決した非同期状態管理の課題、型安全への考え方、フレームワーク非依存の設計、オープンソースの持続可能性、VC資金を受け取らない理由、そしてTanStack AIやTanStack DBなどの新しい取り組みについて語っています。

一貫しているのは、TanStackを「特定企業や特定フレームワークのためのもの」にしないという姿勢です。利用者全体にとって最良のOSSであり続けるために、資金調達やパートナーシップ、ライブラリ設計、チーム運営のすべてでインセンティブの歪みを避けようとしています。

TanStackの原点とOSSを持続させる難しさ

冒頭では、オープンソースを維持することの難しさが提示されます。無料で使う多数の開発者に価値を届けるのか、資金を払ってくれる企業に価値を届けるのか。この問いは、TanStackの資金調達や運営方針の根本にあります。

image.png

同時に、TanStack Intentの「スキルを作るためのスキル」という話題も紹介されます。TanStack Intentを入れると、自分が利用できるスキルを確認でき、その中にスキル作成を支援するメタスキルが含まれるという構成です。これは、AIエージェント向けの開発体験をTanStackらしく拡張している例です。

Tanner LinsleyとTanStackの成り立ち(01:18〜)

Tanner Linsley氏は、長くWebソフトウェアを作ってきた開発者であり、約10年にわたってオープンソースに関わってきました。TanStackは2018年から2019年頃に始まり、当初はReact QueryやReact Tableといった個別ライブラリをまとめるための傘のような存在として生まれました。

image.png

TanStackという名前は、Shawn Wang氏から付けられたニックネームが由来だと語られています。当初は抵抗があったものの、最終的にはその名前を受け入れ、現在では多数のライブラリ、コントリビューター、メンテナーを抱えるエコシステムになっています。Tanner氏は、TanStackは自分一人のものではなく、多くの人が関わる組織だと強調しています。

React Queryが解いた非同期状態管理の問題(04:07〜)

React Queryは、Reactにおける非同期状態管理の課題から生まれました。Webアプリの実データはブラウザ上にはなく、データベース、API、サービスなどの外部にあります。ブラウザにあるのは、その時点のスナップショットにすぎません。

image.png

当時はReduxとThunk、Sagaなどを組み合わせて非同期データを扱う方法が一般的でしたが、Tanner氏にとっては複雑でした。React Queryは、データの取得元をhookで示すだけで、多くのケースではよいデフォルト設定によりデータを最新に保てるようにしました。ここで重要なのは、開発者に新しい語彙や過剰な構造を強いるのではなく、既存のReactプロジェクトへ簡単に導入できる形にしたことです。

TanStackの拡張と型安全への転換(06:50〜)

TanStackのエコシステムはReact Queryから始まったわけではなく、最初に大きく使われたのはReact Tableでした。その後、React Query、TanStack Virtual、TanStack Store、TanStack Routerなど、データ量の多いSaaSアプリケーションを作る中で直面した問題を解決する形でライブラリが増えていきました。

image.png

Tanner氏は、元々はTypeScriptに懐疑的だったものの、型推論の重要性を理解して考え方が変わったと語っています。TanStackの目標は、利用者がTypeScriptの構文を大量に書かなくても、ライブラリ側がユーザーコードから型を推論し、システム全体に伝播させることです。TanStack Routerでも、TypeScript構文をほとんど書かずに型安全なルートを書けることが理想とされています。

さらに、型安全はAI時代にも重要だとされています。AIがコードを書くとき、厳密な型システムがフィードバックとして機能し、誤った実装を自己修正しやすくなるからです。TanStackが長年注力してきた型推論は、人間の開発者だけでなくAIに対するガードレールにもなっています。

フレームワーク非依存という設計判断(15:21〜)

TanStackがReact専用ではなくなった背景には、Tanner氏自身の経験があります。Angularに深く入り込んだ後にReactへ移り、さらにVue、Angular 2、Svelteなどが登場する中で、特定のUIフレームワークが永遠に勝ち続けるわけではないと考えるようになりました。

image.png

その結果、React固有のロジックとライブラリの本質的なコアを切り分け、フレームワーク非依存のTypeScriptコアと、各フレームワーク向けアダプターという構成に整理していきました。この作業により、TanStackはReact以外の利用者にも価値を届けられるようになっただけでなく、各ライブラリが本当に提供している価値を明確にできたと語られています。

VC資金を受け取らない理由とOSSのインセンティブ設計(19:04〜)

Tanner氏は、オープンソースの持続可能性には難しい歴史があると語ります。ライセンスモデル、Open Collective、寄付、スポンサー、パートナーシップ、企業による有償プロダクト化など、さまざまなモデルがありますが、多くの場合、どこかでインセンティブの衝突が起きます。

image.png

特定の組織から資金を受け取り、その組織の都合でOSSの方向性が変わると、利用者全体にとって最良のものを作るという目的が揺らぎます。デュアルライセンスで一部機能を有料にする場合も、無料ユーザーと有料顧客のどちらに時間を使うべきかという葛藤が生まれます。TanStackでは、CodeRabbitのような密接なパートナーシップを通じて、方向性を歪めずに持続可能性を高める道を探っています。

VCについても、Tanner氏は5〜6年にわたり多額の資金提供の提案を受けてきたものの、それを受けていません。理由は、VCに10倍や100倍のリターンを返す見通しがなく、受け取ることでTanStackの性質が変わる可能性があるからです。成長は必要ですが、事業面では「速く行く」よりも「自然に成長できる速度で進む」ことを重視しています。

TanStack AI、TanStack DB、そしてAI時代のOSS開発(35:20〜)

TanStack AIは、AI SDKの競合として説明されています。TanStackらしく、強い型安全性、isomorphic tools、サーバーとクライアントの双方を意識したツール呼び出し、tree-shakeしやすい構成を重視しています。利用するモデルや用途に応じて必要なコードだけを取り込めるため、軽量な環境にも導入しやすい設計です。

image.png

特に印象的なのはcode modeです。エージェントがサンドボックス内でJavaScriptコードを書いて実行し、必要な処理をコードとして組み立てます。ツール呼び出しの連鎖だけに頼るのではなく、コードとして並列化や計算、自己修正を行える点が特徴です。さらに、一度作った処理をツールとして保存し、次回以降に再利用できるという構想も語られています。

TanStack DBについては、Electric SQLのKyle Matthews氏やJames Arthur氏との関係が語られます。React Queryで十分なケースが多い一方で、より本格的な同期エンジンが必要なアプリケーションもあります。TanStack DBは、そうしたユースケースに対して、クライアント側で再発明されがちな部分をコアとして提供するものです。Electric SQLのアダプターは存在しますが、それだけに閉じたものではなく、TanStackブランドのもとでオープンに信頼される形を目指しています。

まとめ

本動画の中心にあるのは、TanStackを単なるライブラリ群ではなく、設計思想と運営思想を持ったOSSエコシステムとして見る視点です。React Queryは非同期状態管理の複雑さを下げ、TanStack RouterやTanStack DB、TanStack AIは、それぞれ型安全、同期、AIエージェントという現代的な課題に取り組んでいます。

Tanner氏の判断基準は一貫しています。それはフレームワークに依存しすぎないこと、既存プロジェクトに漸進的に導入できること、型安全によって人間とAIの両方を支援すること、そして資金調達によってOSSのインセンティブを歪めないことです。

エンジニアとして特に重要なのは、AIによってコード生成が安くなっても、設計、読解、判断、コミュニケーションの価値は下がらないという点です。TanStackの話は、ライブラリ選定だけでなく、OSSへの関わり方やAI時代のソフトウェア開発を考えるうえでも実践的な示唆を与えています。

CodeRabbitでは、今後も開発者とのディスカッションを通して、未来の開発のあり方を模索していきます。ぜひYouTubeチャンネル登録してください!

CodeRabbit - YouTube

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?