車輪の再発明は楽しい

最近車輪の再発明が楽しい。土日とか帰宅後とか、ほぼ毎日コードをいじってる気がする。

最近作ってるのは、以下のようなもの。

github.com Python製のテンプレートエンジン。

github.com JavaScriptでクライアントサイドだけでパスワードを自動生成するやつ。

github.com パスワード自動生成ツールを作る過程で副産物的に生まれた、気軽にユニットテストをするやつ。

いずれのツールも、世の中にはもっと高機能でバグの少ない優秀なものがすでにある。改めて個人で作るのは生産性という観点から見ればほぼ無意味だ。

テンプレートエンジンとか、普通に仕事としてプログラミングをするだけであればわざわざ自分で作る必要性など皆無だ。仕事をする上で「スキル」とみなされるのは、世の中にすでに存在しているテンプレートエンジンを使えるかどうかという点のみである。

しかし、車輪の再発明は勉強にはなるし、楽しい。仕事以外の時間でコードを書くモチベーションは、楽しいかどうかということにほとんどすべてかかっている。金のために書くコードは楽しくはない、こともないけど、楽しくないこともまあ無いとは言えない。

アルゴリズムの勉強とか、仕事としてプログラミングをする上では昨今ほとんど必要とされていない。それと同じように、自分でよく使うツールを実装してみるという試みは仕事としてプログラミングをする上ではほとんど意味を持たない。

でもなんというか、プログラミング自体にモチベーションを持ち続けるためにはそういう楽しさも必要だろうと思う。また、自分で車輪を作ってみないと他人が作った車輪のどこがすごいのかということがわからない。

あと、車輪の再発明は「プログラミングをしたいけど作りたいものがない。。。」という状態を解消してくれる。プログラマーにとってつらいのは、作りたいものがないという状態だ。新しい言語にプログラマーが飛びつくのは、新しい言語にはライブラリが少ないから既存の言語のライブラリを移植するとかいうクエストが山程あり、移植に成功すると有名になれるし、何より「作りたいものがない」という状態を一発で解消してくれるからなのではないかと思う。

無論、自分のような野良プログラマーがそんな流行りのイケてる新言語のコミュニティに入り込めるわけもないから、シコシコと車輪の再発明をするしかない。でも車輪の再発明は野良プログラマーに与えられた最後の光明という気がする。車輪の再発明を続けていれば、プログラミング自体に興味を失うことは避けられるし、継続して勉強ができる。

これからも車輪の再発明を頑張っていきたい。コードを書かなくなるのが一番良くない。