Powered by SmartDoc

TMTOWTDIの謎を探る(調査報告:単純さと複雑さの関係とは?)

$Date: 2002/05/10 04:46:00 $
Kiyoka Nishiyama
http://www.netfort.gr.jp/~kiyoka/tmtowtdi/tmtowtdi.html

目次

イントロ : 調べようと思ったきっかけ

結論 : スローガンTMTOWTDIの本質って?

TMTOWTDI=There's more than one way to do it

皆さん、TMTOWTDIがThere's more than one way to do itの略だということは御存知だと思います。「やり方はひとつではない」というスローガンです。

Perlの世界ではcoolとされている哲学をスローガンとして掲げたものです。

シンプルなほうが良いんじゃないの?

なるほど、スローガンTMTOWTDIの本質はここにあったんですね。

解説 : 僕なりにかみくだいてみました

「さっきの例え話はわかったけど、もうちょっと説明してよ。」という方のために次のようなグラフを作ってみました。

得意分野を扱った場合

まず、それぞれの言語が得意とする分野の問題を記述した場合。これは、言語の設計者が意図した使い方の範囲に収まった問題とも言えるね?

得意分野

この場合、どの言語もたいして複雑にならないということは分かるよね?だって、それぞれの言語は最初は、ある特定の問題を記述するために設計したはずだから。

現実を扱った場合

それぞれの言語が得意かどうかにかかわらず、その言語でいろんな問題を記述しなければならない場合。つまり現実に対処しなければならない場合ね。

これは、言語の設計者が意図した範囲を大きく超える問題を扱った場合とも言えるね? 例えば、tclやBASICで文字列のパターンマッチングやリスト処理やデータフォーマット変換なんかをやろうと思ったらキツいのは想像できるよね?でもそれをやらないといけない状況が発生したと仮定すると?

現実

なんとなく理解していただけましたでしょうか?

Perlのコードを日々書いている方は、Perlがどんな問題を扱うにしてもそこそこ許せる範囲のコードで解決できることは体験的に知っているはずです。それって cool ですよね?

また、母国語(日本語) ならもっと、扱える範囲が広いことも知っているはずです。身近な例で言うとマイクロソフトなんかは強力な「それは仕様です」というコードを持っていますからね。これは Perlでは書けないですが、母国語ならシンプルに書けて扱う範囲の大きさもかなり広いです。(極端な例かもしれませんが...)

母国語は真の言語だけれどもPerlもなかなか良い線いっているんじゃないでしょうか?

まとめ : TMTOWTDIはカッコいい

TMOTOWTDIのスローガンはなんとなくカッコいいと思っていたけど、これでカッコよさの意味がわかってきました。

Rubyにもこの哲学は引きつがれているので、Rubyも同じ考えかたが通用するのはうれしいですね。

TMOTOWTDIはカッコいいんです。自信を持ってカッコ良さを自慢しましょう。

参考資料

書籍等の資料

ネットワーク上の資料