車輪の再発明は、誰にとって無駄で、誰にとって大切か

「再発明」という言葉は批判的にしか使われません。しかし、再実装はそうでもない。再実装は自分のためになるから大事だよと言うエントリ。

なんかの実装がオープンソースで公開されているときに、同じ機能の実装を行うのは「車輪の再発明」で無駄な行為だといわれた時期がありました。
でも、それは「再発明」ではなく「再実装」であって、とても大切な行為です。

オープンソースの再実装/再発明が無駄か大切かというのは立場の違いです。
オープンソースを社会的運動と捉え、企業による支配に対する闘争行為と位置づけるならば生産性を落とす再発明は罪です。すでにあるソースを活用して生産性を高めて戦いの一線に躍り出るか、すでにあるソースを磨き上げて味方*1の戦闘力を上げるというのが正しい方法です。
しかしながらオープンソースの政治面に身を投じないのならば、自分で実装すると言うのは明らかに血になり、肉になることです。仕事でなく趣味ならばなおさらでしょう。私だったら、面白そうなコードは人が作っていようがどうしようが、自分で書きますね。みんなそうしていると思いますよ。世の中には同じようなブツがたくさんあるでしょう。Linuxディストリビューションとか ;-P
それにしても、多分に言葉のあやだとは思いますが

車輪の再発明はするな」という言葉で車輪の再実装を阻む行為は、「車輪を実装した」という経験をもたせないようにして、先行者利益を確保するという、孔明の罠なのです。

このようなことが書かれてブックマークが何十も付くようになったあたり、オープンソースって本当に大きくなったなと思います。まだまだマイクロソフトには及びませんが、大きくなったオープンソースは、悪意なき人々から話のネタとして痛くもない腹を探られることが増えるのでしょうか。

*1:自由の戦士たるオープンソースプログラマ

マシン語はそれほど…

DSPならともかく、汎用プロセッサのマシン語じゃぁねぇ。

いや、エキサイティングだと思いますよ。マニアとしての私はアセンブリ言語やプロセッサ・アーキテクチャを解さない人と話すと甘美な優越感に浸ることが出来ます。
この方のおっしゃるマシン語とはプロセッサの命令セットのことだと思いますが、iA32やARMのような汎用プロセッサの命令セット、マシンアーキテクチャを知ることが、よいプログラムを書く上で必須かというと、私ははっきりと首を横に振ります。特に仕事では。せいぜい、知るべきはワーキング・セットの概念とメモリ階層です。
とはいえ、何を知ればプログラムを本当に理解して書くことになるんでしょうね。80年代に学んだときに真髄だと思ったアルゴリズム論は、いまやSTLなんかにパッケージ化されています。データ構造や検索機構はデータベースの向こうに隠れているようです。
プログラムを書くときに重要なのは問題を理解し、それをプログラムの構造に反映することだと言うことは、今も変わっていないと思っています。私が関心を持つ組み込みプログラミングでは、その「問題」がプロセッサの張り付いている基板を含んでおり、デバイスに対する理解は必須です。でも、ARMやSHの命令セットに対する理解が非常に重要だとはいえません。メモリ階層やワーキングセットはとても重要ですが。
まぁ、iA32の命令セットがいろいろな知識や技術を抱合しているということには同意します。MMXからは固定小数点信号処理の一部を垣間見ることが出来ますし、FPからはリソースが少ない時代に大規模演算回路を組む工夫を知ることが出来ます。コアの16bit命令セットからはコンパイラが生成するコードに対する配慮がわかります。命令セットではありませんが、保護メカニズム、アドレス変換メカニズムからはOSの働きをうかがうことが出来るでしょう。
でも、iA32の命令セットって、最初からつぎはぎだよね。

暗号の歴史

小説的な読み物としても傑作の部類に入るフェルマーの最終定理の著者、サイモン・シンによる暗号史の好著です。
暗号分野に関しては商売柄数冊の一般向け解説書を読んだことがあります。そのため、目新しいことは期待薄だと思っていましたが、あにはからんや、上下2冊をあっという間に読みきってしまいました。

暗号解読〈上〉 (新潮文庫)

暗号解読〈上〉 (新潮文庫)

読み終わって、これまで見落としていたことに気づきました。暗号の歴史は

  1. 単アルファベット換字方式
  2. その複雑化
  3. その機械化
  4. 公開鍵暗号方式

の4ステップ程度しか踏んでいないということです。その比較的明瞭な区切りの中で、暗号はある時期には鉄壁の強度を誇り、ある時期には信頼を地に落としていました。この本はそれらのサイクルの中で時代ごとの主役の暗号方式を丁寧に解析しつつ、その時代の暗号にからむエピソードを紹介します。
フェルマーの最終定理」で見せ付けた筆者の構成力はこの作品でも遺憾なく発揮されています。欧州各国の暗号部門を絶望の縁に沈めたドイツ製機械暗号機「エニグマ」の謎が次第に暴かれていく様子はこれもまたよくできたミステリーを読むようです。もちろん、この筆者のことですからその過程を読むのに必要な知識はすべてそれまでの章で丁寧に説明されています。
ミステリー小説やハードSFファンなら時間を忘れてのめりこむことでしょう。
著者がイギリス在住であるため、アメリカの暗号解読部隊を率いたフリードマンと、日本の外交用最高機密暗号「紫」に関するエピソードなどがほとんど無視されているのは残念です。そのあたりに興味のある人は暗号の天才 (新潮選書)を是非どうぞ。

/* -----codeの行番号----- */