/note/tech

「便利なものを作ったら負け」OSS界の巨人・mattnが語る、アウトプットの心理的ハードルとの付き合い方

要約:

■ 1. GitHubをメモ帳として活用するアウトプット観

  • GitHubはポートフォリオではなく「巨大なメモ帳」として捉える
  • 未完成・中途半端なコードでも公開する理由:
    • 後で自分が検索できるようにするため
    • 過去の活動の記録として残すため
    • 自分の本棚を公開する感覚に近い
  • 「人に見せる」ではなく「自分のために置く」という認識がアウトプットのハードルを下げる
  • OSSを完成品ではなく「対話のきっかけ」として捉える:
    • 公開することでプルリクエストなどのフィードバックが得られる
    • 完璧にしてから出すのではなく出すからこそ完成に近づく

■ 2. 「便利なものを作ったら負け」という哲学

  • アウトプットの原動力は実用性ではなく「驚き」と知的好奇心
  • Vimスクリプトでの機械学習・動画再生など一見無意味な活動を好む
  • 代表作emmet-vimも「Vimでもできるぞという見せびらかし」から生まれた遊び心が起点
  • 役に立たねばという先入観を捨て興味本位の遊びを許容することがユニークなプロダクトを生む土壌となる

■ 3. 遊びを通じた技術的成長

  • 「遊びこそが最高の学習法」をサッカーのリフティングに例える:
    • リフティングはサッカーの上手さを保証しないがボールタッチの基礎能力を高める
    • 遊びの中での実践が基礎能力を確実に向上させる
  • 非効率な「縛りプレイ」を自分に課す学習法:
    • Pythonで済む機械学習モデルをC言語やVim scriptで書き直す
    • わざと負担をかけることでブラックボックスの仕組みを理解する
  • 仕事上あり得ない技術的挑戦が未知のトラブル解決の地力となる
  • 成長を目的にせず面白がって遊んでいたら勝手に成長していたというアプローチが第一線に立ち続ける理由

■ 4. AI時代における人間のアウトプットの価値

  • AIはすでに「簡単なWebサービスを数日で作れる」レベルの実力を持つ
  • AIへの過度な依存への懸念:
    • AIばかり使うとプログラミングが下手になる可能性
    • リハビリとして四則演算のアセンブラコンパイラを自作するなど基礎力の維持を重視
  • 効率・実用性ではAIに勝てないが「面白そうだから作る」「仕組みを知りたいから書く」という人間の根源的欲求はAIに代替不可
  • AI時代の人間のスタンス:
    • 仕事ではAIを使って効率化する
    • 余暇・OSS活動では義務感なく「みんなが驚きそうなもの」を自分のために作る
    • 便利なものはAIが量産するからこそ人間は堂々と「無駄に見える遊びや驚き」を追求すべき