I want a range life...

自作の覚悟 - 皆さんの使うそれもだれかの自作です

急にshyouheiさんのtumblrの記事を思い出した。なんか、Hashを自作するな、◯すぞ〜と言っていた記憶があったが、今見返すとその通りだった。 それはそれとしてこの記事にはいくつかの示唆があって、 - 1. ある程度実績のあるデータ構造やアルゴリズムを自作する場合であっても、表層的な理解であると普通に罠を踏み使い物にならない - 2. データ構造やアルゴリズムを支えるのはシンプルなアイデア(HashMapの場合、ハッシュ値を計算して情報量を圧縮して格納すること)であるが、実用に足るには泥臭い実装(HashMapの場合、bucketの再計算と再配置)が必要になる。それら全体に複数のアルゴリズムの理解と組み合わせが必要になる - 3. ぶっちゃけshyouheiさんが面倒か紙幅がないかで書いていないだけで、現実の世界でHashMapを自作して使う場合にはここには書かれていないような罠がこの10倍はあることがほぼ確実である。それらの罠を出てくるたびに継続的に潰し続ける覚悟はあるか ◯すぞ〜 をネタとかマンスプとか冗談と捉えるのはあまりにも浅いのではないかと思っていて、これは自分でコンピュータの世界を切り開く覚悟を問うているのかなと勝手に思っている。 こんな15年前の記事にそもそも今更言及するなよって言われたらそうなんだけど、僕も少しだけ反論すると、こんなインパクトがありすぎる記事を書く方も悪いですよ。

で、さらにいうと、個人的にはやってみて痛い目にあってもいいじゃんとも思う。痛い目にあったら反省しろよ? というか、逆に言えば、上述したような「覚悟」がある人がミドル以下を自作していくのは止められないし、何か得られるものも、あるかと。