2014-06-02

盆栽プログラミング



Google+に限定公開で書いたらそこそこウケが良かったので一般公開してみる。

さいきん、趣味のプログラミングでテキストエディタを作っている。HTML/JS/CSSでPolymerを使って書くというのを特徴ということに定めて、ちまちま書いているところ。まだシンタックスハイライティングやモードなどが存在しないので未完成もいいところ。

で、エディタなんて簡単でしょ、と思うわけだし、実際のところものすごく難しいということはそんなに多くない。大枠は単純きわまりないものであって、キー入力から編集コマンドを実行してビューを適切に保つというだけのはなし。大枠の部分は、まあそれほど苦労しなくてもある程度動くところまではできる。

ところが、ものすごく細々したどうでもいい細部が、案外いろいろあるのだった。たとえば……などと書き始めるときりがないのだけれど、些細なことも実装しないと動かなかったりするわけで、まあめんどい。ここ数日は画面のスクロールやpageup/downあたりをいろいろ作っていた。そういうものが山ほどある感じ。

で、趣味でこんなことをやってると、これはなんかこう盆栽だなーと思うわけですよ。

こう、ちまちまと細かいところを直して、しばらくしたら遠くから眺めて「うんうんいいかんじ」ってなるところが盆栽っぽいかなと。……いや、盆栽やったことないのでイメージで言っているわけで、本当のところ全然そんなんじゃなくても驚かないんだけど……。

敷衍すると、ソフトウェア業界には盆栽仕事がけっこうある気がするのだった。いまの自分の本業もわりとそういう面はあるかなと思う。

ただ、わたしは盆栽仕事はけっこう好きだな。世の中的には、ズバンとでかいことをやるほうが華やかだし、好きな人も多そうだけど。そしてそれは否定しないながらも、そういう大きな仕事やハックに付随する形で、盆栽仕事が量産されていく。仕事では、polish(磨く)という単語をよく使うけど、これもまあ近い概念かなと思う。骨董品を隅々まで磨いているかんじ。

ただ、盆栽って単語を持ちだしたのは趣味性の高い活動だからなんだけど、こういうちまちま作業を趣味プログラミングでやるのが良いことなのかどうかはよくわかりませんな。

Photo: Picea abies bonsai / Weetrees contest entry by Chris Guise, CC-BY-NC-SA