開発環境を自由に作って壊して管理して配布できる Vagrant が
大いに注目されてますね。
up の反対が down じゃない
さてこの Vagrant で仮想環境を起動するコマンドは vagrant up
なので
終了するときは down
だろうと思ったんだけど、違うんですねこれが。
vagrant down
としても
「そんなコマンドないよ」という意味でヘルプが出ます。
理由を聞いてみた
先日、Vagrant 作者の @mitchellh さんと話す機会があったので
「vagrant up の反対が vagrand down じゃないのはなぜ?」
と聞いてみたら、その答えは
It was.
でした。
以前はそうだった、とのこと。
ただ、down
だと混乱が生じるからやめたそうです。
確かに、仮想マシン (VM) を起動する vagrant up
と
反対の動作をするコマンドは複数あります。
- halt
- VM をシャットダウンする
- suspend
- VM をサスペンドする
- destroy
- VM を削除する
言葉として up の反対は down だけど、
それだとその動作が halt
なのか destroy
なのかわからない。
ユーザーを混乱させてしまうので、down
コマンドは削除したそうです。
名前の相応しさについて
これは Vagrant だけの話じゃなくて
インターフェイスというものを考えるとき
大変参考になるな、と思いました。
何かと言葉が気になる質なので
つい言葉としての収まりの良さを求めてしまうんだけど、
それによって誤解が生じうるようなら
それはふさわしい選択ではない、ということですね。
これ『リーダブルコード』でも言われてたやつだ。
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
謎が解けました
「なるほど、だから down が halt になったんですね」
「いや、halt じゃなくて destroy です。ほら、間違うでしょ。」
あ。