概要
- 静的サイトジェネレーター を使わずにブログを自作した体験談
- Yak shaving という行為とその由来の解説
- Donald Knuth によるTeX開発のエピソード紹介
- 自作や遠回りの楽しさ と落とし穴についての考察
- 学びと成長 の観点からyak shavingの価値を強調
一から作る楽しさ
- このブログは Jekyll や Hugo、 Gatsby などの静的サイトジェネレーターやフレームワークを使わず、完全に自作したブログシステム
- 初期はHTMLで記事を書いていたが不便で、 JSONファイル で投稿できる仕組みを構築
- 長文には向かず、 Markdown→HTML変換サービス を開発
- 最終的に 独自の静的サイトジェネレーター を自作
- これはいわゆる yak shaving (ヤクの毛刈り)と呼ばれる行為
Yak shavingの意味と由来
- Carlin Vieri (MIT AI Labの博士課程生)が生み出した用語
- 目標達成のために関連作業を延々と続け、本来の目的を見失う現象
- 例1(LangDev IRCより)
- 木を切るための斧→斧を研ぐ石→良い石のある村→ヤクで村へ→ヤクの毛が長い→毛刈り
- 例2(Seth Godinによる)
- 車を洗う→ホースが壊れている→Home Depotへ→橋を渡るためE-ZPass→隣人から借りる→息子が借りた枕を返す必要→枕にヤクの毛を詰め直す
- 用語の誕生背景
- The Ren & Stimpy Show のYak Shaving Dayエピソードから着想
- Vieriが深夜にTVを見ていて「yak shaving」という奇妙な儀式を知り、以後自身の雑用作業にこの言葉を使い広まった
エンジニアが一から作る失敗と誘惑
- エンジニアやマネージャーが 既存ソリューション を使わず自作に走る傾向
- 既製品が気に入らない、スキル証明したい、要件を誤認している等
- ほとんどのプロジェクトは 予算と時間が限られている
- 一から作る= yak shaving の始まり、やめどきが分からなくなり、最終的に本来の目的を見失う
- 最適解 は要件のコアを満たし、作業を極力減らすこと
Yak shavingの楽しさ
- yak shaving は本質的に楽しい
- 何もなかったものを作る、問題解決、知識の連鎖を掘る、全てがエンジニアを惹きつける
- Frederick P. Brooks Jr. (The Mythical Man-Month著)の「プログラミングが楽しい理由」
- ものづくりの純粋な喜び
- 他人に役立つものを作る楽しさ
- 複雑なパズルのような仕組みを作り、動作を観察する魅力
- 絶え間ない学習の喜び
- 柔軟で扱いやすい表現手段であること
TeX開発もyak shaving
- TeX はStanfordの Donald Knuth 教授による自作
- 数式入力が容易なため、科学技術分野で広く利用
- LaTeXはTeXを簡単に使うためのマクロ集
- TeX開発の経緯
- 1976年、 The Art of Computer Programming 第2版の出版準備中、従来の活字組版が使えず、デジタル組版を自作することを決意
- SAIL言語で初期バージョン、最終的に自身が考案した WEB 言語で完成
- literate programming (文書とコードの融合)、 Knuth-Plassアルゴリズム、 Computer Modern フォント、 METAFONT、 DVI形式 なども同時に開発
- 結果として、 本を書くために言語・アルゴリズム・ツール・フォントまで自作
- TeX開発に約10年、書籍出版も大幅に遅延
- しかし、その努力は無駄ではなかった
Yak shavingの功罪と学び
- これは極端な成功例だが、 多くのyak shavingは失敗 に終わる
- 投資した時間を惜しんでやめられない、作業自体が楽しくてやめられない
- 必要だと思って続けても途中で興味やリソースが尽きて断念することも多い
- 一方で、 学びの面では非常に効果的
- CSの課題でも意図せずyak shavingが発生し、周辺知識を深掘りすることで多くを学べる
- たとえばNoam NisanとShimon Schockenの The Elements of Computing Systems は、yak shaving的にコンピュータシステムを自作しながら学ぶ書籍
- 最後まで到達できなくても、途中で得た知識が価値になる
- それだけで十分意義があると信じたい
結論:Yak shavingはやっぱり楽しい
- yak shaving はやめどきが難しいが、 学びと創造の喜び が詰まっている
- 何かを一から作る体験は、失敗しても得るものが多い
- だからこそ、 yak shavingは楽しい