一応参加者になっているCosenseプロジェクトに「自作ツールづくりwiki」というものがある。個人プロジェクトの見直しをしていて目に入ったので、こちらに関して感じたことをちょっと書き留めておく。
このプロジェクトは、プログラミングのプロではない人々が自分の経験や気づき、知ったことを持ち寄って「自分でツールを作ってみる」という営みを支援し合おうということが大体のコンセプトだと思う(もちろんプロがいてもいい)。そういう場というのはなかなかないのでとても素晴らしい場所である。
一方で、「じゃあどういうページを誰が誰に向けて作るのか」という実際的な次元にやや難があると感じている。これはどんなジャンルのプロジェクトであっても発生する問題で、グイグイいける人間が重機のごとく開拓するというようなことが起こらない限り自然に解決するのは難しい。(そしてその開拓の仕方で他の人間が必ず住みよくなるとも限らない。)
ここでは一般化は控えて「自作ツールづくりwiki」に焦点を当てて考える。
そもそもの話、生成AIに頼めば解決する時代になったからこういう場の需要がもうないんじゃないか、という視点もあり得るが、私はそんなにそうは思わないというか、普段は生成AIに頼むにしても自力で何かを作れることには意味があるわけで、場の存在意義がなくなったとは思われない。というか、それならそれで、生成AIに何を頼んでどうしたかを持ち寄ればよいので、むしろ活発になっていいとすら思う。
なので場自体の意義の有無を考える必要はないとして、場がどういう形をしていたら豊かになりそうかを考えてみる。
まず踏まえなければならない最大の問題は、参加者は基本的に素人なので正確なことは書けないということだ。書いていることが正しいこともあるし、正しくないこともありうる。なので正しい情報を知るための場にしようとする意味はおそらくあまりない。そもそもプログラミングの情報というのは大抵既に良質のWikiや入門サイトが存在しているのであり、そこにある情報をただコピペしても場の価値は大して増えない感がある。
ただ、情報の総量というのがあまりにも膨大なので、そのうち「本当に使う情報」を抜き出して学びやすくしよう、ということをしたくなるのは自然な流れであろう。しかしながら、基礎中の基礎の情報以外には、具体的に何かをしようとする時に必要な知識というのはすぐさま多様で専門的になってしまうのがプログラミングの世界であると私は感じている。そして自分が今やりたい具体的なことに関わりない情報にはあまり惹きつけられないものである。
だんだん正確なところがわかっていくという途上にいる人間たちが、それでも情報を持ち寄ることに意味があるわけだが、「それでも持ち寄る情報」というのは何かと言えば、つまるところ「何をしようとして、何をどうした」「何に困って、何をどう解決した」という体験談だろう。要はQiitaやnoteで投稿されているような事柄だ。
とすると、じゃあQiitaやnoteを見ればいいのではという話になるだろう。実際、普段はそういう投稿サイトやRedditなどを検索で探し当てて参照しているわけで、「自分が情報を得る」という意味においては敢えてCosenseプロジェクトという形で場を作ってもらう必要性はない。集合知は不特定多数が日々更新し続ける場にこそ集積していくのだから、明らかに参加者が限られる場所で「知」そのものを豊かにすることを試みるのはあまり現実的ではない。(知識がある人が少ないニッチな世界なら非常に意味があるが、プログラミングに関しては既に豊かな世界が存在しているので下位互換にならざるを得ない。)
ならば「持ち寄る」意味はどこにあるのか。それは「他ならぬ私がこれをやってみたのです」「他ならぬあなた方に見てもらいたいのです」という属人的な情報交流であろう。
初心者ゆえに自分がやっていることがどれほど稚拙で非常識かもわからないという不安な中で、誰がいてどう言われるか予測できない場に何かを書くのは勇気がいる。なので大体同じ程度の人、あるいはその道を通ってきた「元初心者」が集まる場があれば、いきなり「なんでそんな変なコード書くんですか?」とか言われて傷つく心配もなく、自分の「やってみた」を誰かに発表することができる。
自分の試みを誰かに言えることは喜びであり、仮にそれが他者や未来の自分に情報として大した意味をもたらさなかったとしても、場に喜びがあるというのはそれだけで豊かで意義深いことである。また、困っていることを気楽に尋ねられるのも大事なことだ(ただ、困りごとについては生成AIがあればほとんど自己解決できてしまう世の中になった感はある)。
よって、Cosenseのページとしては、Qiitaなどのように「○○が~~だったので××してみた」とか「hogehogeコンバータを作った」というふうな、普遍的知識でない個別の「やったこと」の類、あるいは「○○ができなくて困っている」といった格闘中の話がメインとなり、その補助として繰り返し出てきそうな基本的な知見(例えば「ローカルストレージを扱うメソッド(JavaScript)」といったふうに)を切り出していくのが書きやすいのではないかと想像する。
他の人も使いそうな知識というのは「やってみたこと発表会」の過程で副産物として蓄積していくもので、「そういえば○○さんがそんなことやってたような」という記憶からページを辿ってその人の糧になるというのが「参考にする」ということの自然な流れのような感じがする。
今考えたことなので現時点で私は何も実践していないのだが(というかいきなり何かし始めると「この人は急に何をしようとしてるんだろう?」ということになりそうで不安があった)、差し支えなさそうならこっそりページを増やしたりしてみようかと思う。