クラウドは牢獄だ。ローカルファースト・ソフトウェア運動は私たちを解放できるか?

クラウドは牢獄だ。ローカルファースト・ソフトウェア運動は私たちを解放できるか?

コラボレーションを実現するために大手IT企業に頼ることにうんざりしたピアツーピア愛好家たちは、仲介者(つまりGoogle)を排除する新しいモデルを構築しています。

ビデオ:アルディラ・プトラ

数年前、エンジニアたちが他のエンジニアが読むべき記事を共同で決めるディスカッションフォーラム「Hacker News」に奇妙な現象が起こりました。ある新しいフレーズがプログラマーの語彙に加わり、リンクをページ上部に押し上げる勢いが強まったため、一部の人にとってはランキングが不正操作されているように見えたほどです。「ローカルファースト・ソフトウェア」というフレーズは、職人技や農場から食卓へといった響きがあり、馴染みがありながらも、何か新しいものへの挑戦を示唆しているようにも感じられました。一部のエンジニアは、これを単なるマーケティング用語として片付けたかもしれません。しかし、平日の午後を削りながら働く他のエンジニアたちは、このフレーズが、長年感じていた問題の解決策だと捉えていたようです。自分たちが作っているソフトウェアが壊れていたのです。

Hacker Newsの最初のリンクの一つは、2019年に公開されたホワイトペーパーに言及していました。これは、当時ケンブリッジ大学に在籍していたコンピューターサイエンティストのマーティン・クレップマン氏と、Ink & Switchという独立系「産業研究所」のオープンソース開発者グループが共著したものです。クレップマン氏らは、成功したテクノロジー系スタートアップの出身者で、成功したテクノロジー系スタートアップが一般的に経験するべきこと、つまり買収されることを経験しました。彼らは大手の買い手の中で方向転換し、業界の特定の側面に失望し、後悔の念を抱いていました。ソフトウェア開発者はかつてないほど増えていましたが、彼らは同僚やユーザーにとってより良い体験をコーディングしていませんでした。彼らはクラウド向けにコーディングしていたのです。

この嘆きは、決して新しいものではありません。シリコンバレーでは、バンパーステッカー、Tシャツ、ウォーターボトルに印刷されているスローガンが長年、地元のクラウド業界を揶揄してきました。「クラウドなんて存在しない。あるのは誰かのコンピューターだけだ」と。その「誰か」とは、企業のことです。消費者向けアプリのアイデアを持ってサンドヒルロードに来たら、TechCrunchに掲載されるほどの金額を手にするには、2つの方法があります。ユーザーのデータを再販や広告で収益化するか、データへのアクセスに対して料金を請求するかです。どちらのクラウドベースのビジネスモデルを選ぶにせよ、「上院議員、広告を掲載します」であれ「料金を支払わなければ、何もできません」であれ、データは自社サーバーを経由して送信されることが不可欠です。

ローカルファーストのホワイトペーパー(「マニフェスト」という表現の方が適切かもしれません)は、第3の道を示していました。平均的なユーザーにとってクラウドの利点は、多くのデバイスからアクセスでき、部屋や大陸を越えて多くの人々が共同作業できることです。著者は、これらすべてを維持しながら、本質的にクラウドを必要としないソフトウェアを提案しました。名前の「ローカル」という言葉は、あなたのパーソナルコンピュータを指します。「ファースト」は、あなたのコンピュータが「他の人の」コンピュータよりも優先されることを意味します。あなたと私が一緒にドキュメントで作業したい場合、マスターコピーを維持するためにオレゴンの高地砂漠にあるGoogleデータセンターに依存する必要はもうありません。代わりに、私たちはそれぞれ、デバイスのハードドライブにローカルにコピーを保存します。私は自分のコピーをオフラインで編集し、あなたはあなたのコピーを編集できます。そして、2つのファイルは、1分に1回でも週に1回でも、接続するたびに変更内容を照合します。

このような製品を構築するには、根本的に異なるデータ構造化方法、つまり異なる計算方法が必要になります。その努力の結果は? 質の低いソフトウェアが減るということです。バックエンド、サーバー、そして法外なクラウドコンピューティング料金の心配から解放されたスタートアップやインディー開発者は、条件付きのベンチャーキャピタルからの資金調達を回避し、より魅力的なアプリの開発に取り組むことができます。さらに、クラウド開発者が見逃しがちなハードウェアの進化も活用できます。アプリがクラウドベースの場合、そのパフォーマンスは中央サーバーへの接続速度と、そのサーバーの応答速度によって制限されます。ローカルファーストのアプリでは、ユーザーのデバイスがすべてのコードを実行します。ノートパソコンやスマートフォンの性能が向上すればするほど、アプリの機能は向上します。

開発者にとって、マシンの高速化と読み込み時間の停滞という相反する傾向は、むしろ馬鹿げています。実に不快です。開発者自身も不快に思うべきです。なぜなら、それは何かを逃しているということを意味するからです。クラウドは天国のように見えますが、実際はそうではありません。最近、シリコンバレーの財政が逼迫する中、個人のインターネットが以前ほど充実していないように感じませんか?あるものが少し高価になったり、少し不便になったりしていませんか?すべての写真をストレージに保存したり、携帯電話をバックアップしたりするための月額料金。複数のユーザーが同じファイルを編集できるようにするためのプレミアムアップグレード。サブスクリプションが必要なビデオゲームで、勝利を目指してプレイしようとした途端に遅延が発生する。

ジャーナリストでSF作家のコリー・ドクトロウは、プラットフォーム資本主義がいかに有用な技術を浪費するかを「エンシット化(enshittification)」という言葉で表現している。ベンチャーキャピタルで潤沢な資金を得た新しいプラットフォームは、まずユーザーにとって有益である。次に広告主がそのオーディエンスを獲得し、プラットフォームもまた彼らに有益となる。そして、依然として利益への渇望は、プラットフォームを汚染する。ユーザーが価値を認める機能を妨害し始め、ついにはユーザーがうんざりするまでに至らせるのだ。これが「プラットフォームが死ぬ方法」だとドクトロウは書いている。冷酷なビジネスロジックがこの悲惨な道を切り開き、テクノロジーの選択がそれを切り開くのだ。

もしかしたら、それでいいのかもしれない。もしかしたら、このプロセスは再生可能かもしれない。まるで山火事が下草を刈り取るように。新しいプラットフォームが、少なくともしばらくの間は、再び私たちにとって良いものとなる道を開く。しかし、もし何か違うものが根付いたらどうなるだろうか?ほとんどの人には見えないソフトウェアの内部を変えることで、テクノロジーを窮地から救い出せるとしたら?

クレップマンと私は、セントルイス市立博物館の駐車場から3階分の高さに吊り下げられている。ここはかつて靴工場だった建物を改造した、建築物の遊び場兼廃品置き場だ。閉館時間で、警備員は私たちに降りて出て行くように指示していた。しかし、クレップマンは建物の最高地点を目指していた。1960年代のビジネスジェット機をくり抜いて作られた、急角度の金網でできたチューブを通って中に入ることができる。彼はロイヤルブルーのセーターを着ていて、なぜかヨーロッパ人だとすぐにわかる。縮れたオレンジブラウンの髪はきつくポニーテールにまとめられている。彼が機体に滑り込む時、私は自分がキツネを追いかけているような気分になった。

博物館での夜は、クレップマン氏にとってストレンジ・ループの一番の楽しみです。もしかしたら、彼にとって一番好きな開発者カンファレンスかもしれません。楽しさと奇抜さを実用性と融合させたイベントで、まさに彼にとって理想的な組み合わせです。クレップマン氏はおそらく、『Designing Data-Intensive Applications (データ集約型アプリケーションの設計)』という教科書で最もよく知られています。この本は、膨大なデータを巨大なコンピュータシステムで移動させるための基礎を解説しています。現代の開発者のための風変わりなサバイバルガイドとも言えるこの本は、20万部以上を売り上げ、開発者コミュニティでは有名人と言えるほどの売り上げを誇ります。ファンは、等身大のクジラの彫刻の大きな口のそばや、5階建ての滑り台から出てくるクレップマン氏に声をかけ、ソフトウェア関連の仕事に初めて就く手助けをしてくれたことに感謝の意を表します。

ローカルファースト宣言の萌芽は、クレップマン氏の著書174ページの小さな囲みの中に見出すことができます。そこには、衝突のない複製データ型(CRDT)と呼ばれるものが説明されており、クレップマン氏はこれを「データ構造のファミリー」と定義し、多くの人が1つのファイルで共同作業を行い、「衝突を合理的な方法で自動的に解決」できるようにします。本書の中で、クレップマン氏はCRDTアルゴリズムの実装は「まだ初期段階」にあると述べています。

しかし、コンピューティングの基準から見ると、CRDT自体は古いものでした。CRDTは、クラウド革命がまだ黎明期だった約20年前、フランスのコンピュータ理論家マーク・シャピロによって共同開発されました。ピアツーピア運動の理念の多くに賛同していたシャピロは、クラウドコンピューティングがウェブをどこに導くのかを懸念し始めていました。インターネットプロトコル自体はオープンで分散化されていたものの、その上に構築されているものは独占的な方向へ進んでいました。テクノロジー企業はユーザーを誘い込むために美しい庭園を造り、そして彼らが去るのを阻止するために壁を築いていたのです。

しかし、彼らがまだ完全には克服できていなかった分野が一つありました。それはオンラインでの共同作業でした。当時は接続環境が十分ではありませんでした。シャピロと同僚のヌーノ・プレギサは疑問に思いました。オンラインで共同作業を行うには、オンラインに接続している必要があるのでしょうかそれとも、オフラインで作業し、ピアツーピアで共同作業できるのでしょうか?

概念的には、想像するのはそれほど難しくありませんでした。同じファイルのレプリカを多数作成し、それぞれが量子もつれ状態にある原子のように、自動的に他のファイルと同一の状態にスナップするのです。あなたが自分のレプリカを先に編集してから私の変更を受け取る場合でも、私が自分のレプリカを編集してからあなたの変更を受け取る場合でも、アルゴリズムはどちらに対しても同じ結果を生成します。数学的に言えば、これは「可換性」です。(実際、CRDTの「C」は元々この意味を表していました。)

アルゴリズムはこれをどのように処理するべきでしょうか?ほとんどの場合、答えは簡単です。私が1つの段落を追加し、あなたが別の段落を削除する場合、順序は関係ありません。しかし、私たちがそれぞれ同じ単語をいじり回しているとします。あなたはpurpleにすべきだと考え、私はmauveにすべきだと思います。結果がpurmaupleveにならないようにするにはどうすればよいでしょうか?異なるCRDTは、様々な共同作業者の意図を維持することを目的とした異なるルールを用いてこの問題を解決します。タイムスタンプに基づいて新しい要素を順序付けたり、単語や文の概念を維持しながら、各要素とその周囲の要素の関係をエンコードする何らかの方法を採用したりするかもしれません。可能性は無数にあります。

秩序を維持するためのこれらのトリックは、CRDTを非常に非効率にする可能性もあります。追跡すべきデータが多すぎるからです。そのため、CRDTを設計するためのもう一つのタスクは編集です。つまり、調和のとれた結果を生成するためにレプリカが互いに送信する必要がある最小限の情報量を決定し、それらの変更を効率的にパッケージ化する方法を決定することです。

シャピロとプレギサは当初、CRDTアルゴリズムを技術報告書として発表しました。シャピロは共同編集に特化した会社を設立することを考えていました。「数ヶ月後、突然Googleドキュメントが登場したんです」と彼は言います。この新しいソフトウェアは、変更をマージするための古いプロセス、つまりオペレーショナル・トランスフォーメーション(OT)を採用しており、依然として中央のGoogleサーバーに依存していました。シャピロは、より理論的に確かなもの、つまり真のピアツーピア・ソフトウェアのための安定した基盤を発明したと信じていました。しかし、数年後にクレップマンが彼の論文を見つけた頃には、そのソフトウェアを利用している人はほとんどいませんでした。

クレップマンはドイツで育ち、コンピューターとヴィオラの両方に手を出していた。作曲家への道を諦めた後(象牙の塔で「何が良いか、何が駄作か」という固定観念は彼には合わなかった)、彼は典型的な技術者のキャリアを歩んだ。スタートアップ企業(Rapportiveという会社で、ソーシャルメディアのプロフィールデータをメールの連絡先に統合する)を共同設立し、ベイエリア(投資家やソーシャルメディアの巨人に近い)に移住。そして、そのスタートアップ企業はテクノロジー業界の大物(LinkedIn)に買収された。クレップマンは数年間在籍した後、ケンブリッジ大学で研究職に就くために去った。

新しい仕事は、クレップマン氏に長年の望み、つまり創造性への回帰をもたらしました。彼はプログラミングへのより独特なアプローチを探求する柔軟性を持ち、すぐには成果につながらないかもしれないプロジェクトにも挑戦しました。彼は高校の化学教師である妻から借りた例えで自分の仕事を説明します。個々のデータバイトを原子と考えると、データ構造は分子のようなものです。どんな初心者のプログラマーにとっても、「Hello, World」の次のステップは、これらの構造を学ぶことです。リスト、ツリー、ハッシュ、グラフなど、幅広いカテゴリーを挙げるだけでもそうです。クレップマン氏が発見したかったのは、様々な種類のアプリケーションを可能にする、より奇妙な原子構造でした。

クレップマンはシャピロの論文を「目覚め」と表現している。CRDTに、誰も提供していなかった新しい種類のソフトウェアの技術的基盤を見出していた。しかし、そのアルゴリズムはプロのプログラマーにとってほとんど役に立たなかった。あまりにも非効率で、開発者が実際にアプリ開発に用いる典型的なツールが欠けていたのだ。クレップマンは、ローカルファーストの開発者の負担を軽減し、数学的な証明から製品版のコードへと発展させる必要があると悟った。彼はCRDTのオープンソース実装「Automerge」のコーディングに着手し、誰もが自由にアプリ開発に利用できるようにした。

この努力の成果は数年後、ローカルファースト宣言がHacker Newsで話題になった直後に目にした。サンフランシスコのカフェで、クレップマンの共著者の一人、ピーター・ファン・ハーデンバーグに会った。彼もクレップマンと同様に、クラウドでの長い道のりを歩んだ後、再出発の時期だった。最初はHerokuの創業チームの一員として、他のスタートアップのクラウドサービス立ち上げを支援し、その後、Herokuを買収したSalesforceで働いた。彼は私に、デジタルコルクボードをイメージした「Pushpin」というアプリを見せたいと言っていた。

ヴァン・ハーデンバーグはiPadで空のプロジェクトを開いた。私は同じファイルの複製をノートパソコンに読み込み、いじくり回し始めた。それぞれのファイルに画像やテキストボックスを追加し、それらを結合してみた。スムーズに進むこともあったが、変更内容の読み込みが止まったり、ダイヤルアップ時代の遅延でピクセルがズレたりすることもあった。Pushpinはまるでおもちゃのようだった。スタンフォード大学の活気あふれる学部生2人が、シードラウンドのビジョンを胸に談話室でプログラミングし、後に恥ずかしさのあまり棚上げにしてしまうようなアプリだ。

しかし、ヴァン・ハーデンバーグは恥ずかしがってはいなかった。Slack、Discord、Google Docs、Photoshopのローカル版に向けた技術的な基盤が築かれつつあると彼は信じていた。より優れたデザインアプリ、カレンダー、予算管理アプリ。Automergeの効率を大幅に向上させれば、より複雑なプログラムも実現可能になるだろう。サーバーが邪魔にならないため、これらすべての共同作業アプリで、エンドツーエンドのプライベート暗号化が可能になる可能性もあった。CRDTには技術的な限界があり、クラウドの方がはるかに優れたアプリケーションも数多く存在する。しかし、彼にとってこのプロトタイプは革命のように感じられた。私たちの間にサーバーはなかった。それでもうまく機能した。ほぼ。インターネットの最初のレンガ職人が目指したように、私たちは2人のピアとしてコミュニケーションをとった。

セントルイスで再会したヴァン・ハーデンバーグのビジョンは、幾分か見えやすくなった。巨大テック企業は業績が低迷し、Metaの株価は7年ぶりの安値に沈んでいた。Twitterはイーロン・マスクによる敵対的買収の渦中にあった。クレップマンは毎週数時間をBlueskyの技術顧問として費やしていた。BlueskyはTwitterの分散型実験として誕生し、今や突如脚光を浴び、Twitterの競合相手になりつつある。Blueskyの「連合型」設計は、ユーザーに不適切なサーバーやサービスから離脱する選択肢を与えると謳っていた。BlueskyはCRDTを使用していなかった。CRDTは数百万のソーシャルメディアユーザーのフィードを調整するには遅すぎるからだ。しかし、目標は同じく、「他人のコンピューター」とのより良い関係構築だった。コンピューティングの代替手段が再び流行していた。

その中にはCRDTもあった。Strange Loopには地域密着型のプレゼンテーションが溢れており、最近までGoogleアラートと口コミであらゆるプロジェクトを追跡していたクレップマン氏とファン・ハーデンバーグ氏にとっては驚きだった。CRDTはより広い世界にも浸透しつつあった。ワシントン・ポストの開発者たちは、ホームページ の記事を整理するツールを開発するためにCRDTを利用していた。AppleのNotesアプリのコードを調べていた人々もCRDTの存在に気づいていた。人気のデータサイエンスアプリであるJupyter Notebooksは、Googleが以前依存していたクラウドサービスを廃止した後、CRDTを使ってコラボレーションツールを復活させた。

ストレンジ・ループのプレゼンターの中には、フィッションという会社の共同創業者であるカナダ人開発者、ブルックリン・ゼレンカ氏がいた。彼女はローカルファーストのマニフェストを読んだ時、「これは素晴らしい言葉だと思いました。それまでは、『場所非依存』や『ユーザー所有データ』といった、使いづらい言葉ばかりでしたから」と振り返る。ゼレンカはWeb3(ブロックチェーン技術と暗号通貨を活用した「分散型」アプリの呼称)の考え方に興味を持っていたが、その文化が「攻撃的」だと感じた。その理由は「常に、非常に明確に」お金に焦点を当てていることにあると彼女は考えている。早くからローカルファーストに取り組めたことは良かった。「今は何でも簡単にできるんです」とゼレンカは語った。

彼女の軌跡は、よくあるものだった。カンファレンスでの昼食時に、ヴァン・ハーデンバーグ氏は仮想通貨は「最悪の人間ばかりを引き出してしまった」と語ったが、同時にローカルファーストの原則にも通じる点も多かった。彼の意見では、仮想通貨は単に間違ったアプローチを取っているだけだ。ユーザーに分散化と独立性を約束しながらも、投機的な金銭的インセンティブに縛り付けているのだ。また、オフラインファーストの対極でもある。リソースを最も多く保有する者によって制御される、扱いにくいブロックチェーンが、あらゆるインタラクションを仲介するのだ。それでも、仮想通貨は、誇大広告がいかに新製品の創造を刺激するかという教訓を与えた。ヴァン・ハーデンバーグ氏は、仮想通貨バブルの絶頂期に、MetaやGoogleといった企業から、退屈で不満を抱えた多くのプログラマーが離職したことを指摘した。

ローカルファーストは、最終的には実際に優れたソフトウェアで、同じような興奮を呼び起こせると彼は考えていた。ヴァン・ハーデンバーグ氏によると、必要なのは、幸運なローカルファースト開発者のグループに「目に見える富の兆し」をもたらし、より多くの才能とリソースを引き付けるのに役立つような、大きな「出口」だった。成長もまた恐ろしいものだった。ヴァン・ハーデンバーグ氏とクレップマン氏はこれまで、Automerge自体へのベンチャーキャピタルからの資金提供を避けてきた。クレップマン氏が私に語ったように、「ローカルファーストの価値観に完全に反する」さまざまなビジネスモデルに追い込まれることを恐れていたからだ。しかし、ある時点で、成長も必要になるだろうと彼らは気づいた。彼らは、ソフトウェアが自立できるようになることを願っていた。「VCはリプラットフォームが大好きです」とヴァン・ハーデンバーグ氏は言った。

カンファレンスから数ヶ月後、Hacker Newsでは「ローカルファースト」が再びトレンド入りしました。あるコメント投稿者は、CRDTを「ドラゴンスレイヤー」の剣と呼び、ローカルファーストのアプリがクラウドと競合できるようにすると述べました。また別のコメント投稿者は、CRDTに関する興味深い技術投稿がすべて「分散化に関する奇妙な政治的議論」に堕落していると嘆きました。

テクノロジーの分散化を求める多くの動きにもかかわらず、ドラゴンの金の山は増え続けている。一つの問題は、原則は利便性を犠牲にするという認識だ。自分でコーヒーテーブルを切るのは充実感があり、高潔なことかもしれないが、同時に大変なことでもある。やがて飽きてしまい、次の家具はAmazonで買うことになる。データ管理についても同じことが言える。「怠けてAppleやGoogleに任せてしまう方がずっと楽だ」とシャピロ氏は語った。原則を守りながら現代のインターネットを使うのはどんな感じかと尋ねると、彼はただテクノロジーをできる限り避けているだけだと答えた。「テクノロジーは時間の無駄だ」と彼は言った。

「ローカルファースト」という言葉がシャピロ氏を少しでも困惑させているのか、あるいは彼がそれを自身の技術的創造物の歓迎されないリブランドだと捉えているのか、興味があった。彼がそれを気に入っていると言った時は驚いた。「この言葉には魔法がある」と彼は考えていた。革命に一撃を加えるには、少しずる賢くなければならないのかもしれない。技術的な可能性で開発者を引き込み、「ムーブメント」と呼んで政治に執着するジャーナリスト(こんにちは)を引きつける。あるいは、巨大テックプラットフォームが崩壊し、利便性と引き換えに失われた機能や悪用が露呈する、まさに適切なタイミングで起こる必要があるのか​​もしれない。

クレップマンはアナログへの回帰や、多くの便利な機能を持つクラウドサーバーを全て破壊せよと要求していたわけではない。その剣は殺戮者ではなく、より良いものを切り開くための道具であり、彼自身でさえ、まだ研ぎ澄まされなければならないと言うだろう。彼が開発中のCRDTベースの新しいテキストエディタを試用させてくれないかと尋ねると、彼のいつもの落ち着いた表情は一瞬、警戒へと変わった。もちろん、オープンソースなので、理論的にはオンラインに投稿されているプロトタイプを動かすことは可能だったが、「でも、それはやめてください」と彼は言った。ローカルファーストが完成したら知らせてくれるという。


この記事についてのご意見をお聞かせください。 [email protected]までお手紙をお送りください。

  • 受信箱に届く:ウィル・ナイトのAIラボがAIの進歩を探る

グレゴリー・バーバーは、エネルギーと環境問題を担当するWIREDの元スタッフライターです。コロンビア大学でコンピュータサイエンスと英文学の学士号を取得し、現在はサンフランシスコに住んでいます。…続きを読む

続きを読む