オープンソースを、初めてやってみようと思います。

正直に言うと、これまで一度もやったことがありません。コードを公開して、誰かと一緒に育てていく――そういう世界があることは知っていても、自分がその輪に入ったことは一度もなかった。だから、これはまったくの初挑戦です。この記事は、その記録の1本目になります。

うまくいくかは、正直まだ分かりません。途中で挫折するかもしれない。だから完成の宣言ではなく、始める瞬間の気持ちを、そのまま書き残しておこうと思います。

何を作ろうとしているのか

作ろうとしているのは、AI Taxiway という構想です。

ざっくり言うと、眠っている端末――スマホ、ゲーム機、PC――を束ねて、AI の計算を担わせる仕組みです。世界中に、電源につながったまま何もしていない時間がたくさんある。その余った時間を集めて、ひとつの大きな計算の網にできないか。今、AI の計算力は一部の巨大な場所に集中しています。それを、もう少し「みんなの手」の側に取り戻せないか、という問いです。

ただ、ここははっきり正直に書いておきます。本当にできるかは、まだ分かりません。 似た試みをしている人は実際にいますが、この仕組みを大きな規模できちんと成立させた例を、私はまだ知りません。誰もまだ解いていない難所だ、という感覚があります。

野心は大きく、でも足元は不確かです。その両方を抱えたまま、それでもやってみたい。今はその段階です。

AI がいるから、始められた

なぜ今なのか。理由ははっきりしています。AI がいるからです。

8年前の自分だったら、たぶんやらなかった。やりたくなかったのではなく、始めるための「足場づくり」が重すぎたからです。

オープンソースを始めるには、コードそのもの以外に、やることが山ほどあります。プロジェクトの説明書(README)、利用条件を定めるライセンス文、参加してくれる人への案内(CONTRIBUTING)、各種のドキュメント。こういう「足場一式」を、一つ残らず埋めていかないと形になりません。私にとって本当の壁は、アイデアそのものより、この網羅的な穴埋め作業のほうでした。

ここを、AI が埋めてくれる。「こういうプロジェクトを始めたい」と伝えれば、足場の下書きを一通り並べてくれる。抜けがちな項目も拾ってくれる。穴を埋める作業を、網羅的に肩代わりしてくれるわけです。

大事なのは、埋めるのは AI でも、構想と決定は自分が握るということです。何を作るのか、何を大切にするのか、どこで線を引くのか――その判断は人間に残る。AI は足場を整えてくれるけれど、どんな建物を建てるかを決めるのは自分だ。この分担になった瞬間、初めて「やってみよう」と思えました。

ルールを決めるのが、思ったより楽しい

実際に手を動かし始めて、意外な発見がありました。ルールを決めるのが、けっこう楽しいんです。

オープンソースは、ただコードを公開すればいいわけではありません。どういう条件で使ってもらうか、自分でルールを決める必要があります。

  • ライセンスは Apache 2.0 にしよう。商用で使ってもらってもいい、という枠にしよう。
  • どこまでを自分(コア)がしっかり握り、どこからをみんなに開くか。その線をどこに引くか。
  • 「これが唯一の正解だ」と決め打ちしない。良いものは競争の中で勝ち残ればいい、という哲学にしよう。
  • 最初に発案した人への敬意(クレジット)を、ちゃんと文書に残そう。
  • 参加してくれる人が安心できるように、貢献のルール(DCO のような仕組み)も整えよう。

こういう一つひとつを、自分の手で決めていく。自分が、その小さな世界の枠組みを決めているという感覚があります。ルールメーカーになる面白さ、とでも言うのでしょうか。建物そのものを作る前に、まずその街の決まりごとを書いている。これが想像以上に楽しい作業でした。

本当の動機は、AI が流行っているからではない

ここも正直に書いておきたいところです。

「AI が流行っているから AI のプロジェクトをやる」――そう見えるかもしれません。でも、本当の動機はそこではない気がしています。

根っこにあるのは、もっとシンプルなものです。凄いものが作れたら嬉しい。 ただそれだけ。新しい技術が来たから乗る、というより、面白そうな壁があって、それを超えられたら気持ちいいだろうな、という素朴な創作欲。流行は、たまたま背中を押してくれた風くらいのものです。

あまり大層なことは言えません。ちょっと控えめに、でも正直に言えば――作ってみたいから作る。それが一番近い動機です。

一人だと、たぶん寂しい

最後に、いちばん人間くさいところを書きます。

オープンソースにする理由は、立派な大義だけではありません。もっと素直な気持ちがあります。一人で作っていたら、たぶん寂しいんです。

構想だけは大きいのに、それを黙々と一人で組み立てていく姿を想像すると、少し心細くなる。誰とも喜びを分け合えないまま、難所に一人で向かっていくのは、正直しんどい。

だから「開く」。オープンにするというのは、一人にならないための選択でもあります。同じ問いを面白がってくれる人、一緒に頭を抱えてくれる人が、どこかにいるかもしれない。その人を見つけたい。コードを公開するというのは、私にとっては「仲間を探しに行く」ことと、ほとんど同じ意味を持っています。

これから、記録していきます

そんなわけで、人生初のオープンソースを始めます。これはその挑戦記の、ちょうど1本目です。

うまくいくかは分からない。途中で立ち止まるかもしれない。それでも、進んだところまでを、ここに正直に書き残していくつもりです。

まだ準備の途中なので、公開できる形になったら、またこの場所でお知らせします。もし「ちょっと面白そうだな」と思ってくれた方がいたら、いつか一緒に手を動かせたら嬉しいです。一人だと寂しいので。