このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

分散バージョン管理システムは誤解されやすいイノベーション(ジョエルも言っている)

2009年6月12日に、僕は分散バージョン管理システムMercurialについて短い記事を書いて、そこで次のような言ってます。

実は僕は、分散バージョン管理という発想と仕掛けを最初はまったく理解できず、「エエーッ?なんだそれ」「そんなんでうまくいくのかよ?」とかグダグダ言っていたのですが、いったん使い始めればラクチンラクチン。

要するに、最初は誤解に基づき否定的だったってことね。僕と同じような誤解をする人がいるような気はしたのですが、あまりうまく解説できそうにないので*1

四の五の言ってないで、使ってミソ」ってことです。

最近になって、ジョエル・スポルスキ(Joel Spolsky / 青木靖 訳)の「分散バージョン管理で間違いないって、ベイビー」という記事を目にしました。2010年3月17日に書かれた記事です。

なんと、あのジョエル・スポルスキも最初は誤解に基づき否定的だったらしいですね。

そのポッドキャストで私はこんなことを言った。「私に言わせれば、ブランチやマージが簡単にできるようになるというのは、単に同僚たちがもっとブランチやマージをするようになるということで、余計混乱させられるだけのことだよ」

...[snip]...

あの時に関しては根本的に間違っていた。ストロベリーピザみたいに、あるいはハラペニョドーナツみたいに、間違っていたのだ。

僕は「いったん使い始めればラクチンラクチン」で、あまり深く追求はしなかったのですが、ジョエルはやっぱり違います。

だから調べて、調べて、最後にはそれが何なのか理解した。

彼は分散バージョン管理システムの本質を次のように語っています。

分散バージョン管理で実際のところ一番重要なのは、「分散」という部分ではないのだ。
重要なのは、このシステムが「バージョン」ではなく「変更」で物事を捉えているということだ。

...[snip]...

一方分散バージョン管理では、最初何もない。それから変更が来る。それからまた別な変更がくる。
これは異なるプログラムモデルであり、ユーザモデルを変える必要がある。

...[snip]...

SubversionマインドセットのままMercurialにやってくると、大概のことはうまくいくが、うまくいかないところで混乱してしまい、惨めで失敗した気分になり、Mercurialを嫌いになるだろう。

その後はMercurialを絶賛してます。

私がここで文章を書くようになってからの10年間に起きた、ソフトウェア開発技術における最大の進歩かもしれない。

言い方を変えると、Mercurialをあきらめるくらいなら私はC++に戻る方を選ぶ。 Subversionを使っているなら、やめることだ。すぐに。Subversion=ヒルで、MercurialとGit=抗生物質だ。より優れたテクノロジーが今や存在するのだ。

そしてジョエル・スポルスキは、http://hginit.com/ というチュートリアルを書いて、Kiln(http://www.fogcreek.com/kiln/)というMercurialベースのサービスまでリリースしたというわけです*2

*1:断片的な言及なら http://d.hatena.ne.jp/m-hiyama/archive?word=Mercurial

*2:ジョエル・スポルスキ自身の企画じゃなくて、彼の会社のメンバーが言い出したみたいです。ジョエルはメンバーより遅れてMercurialを学習したと書かれています。