一貫性の話はそれぐらいで。笹田:あと、簡潔性、柔軟性の章。この辺は、まぁそうだよねという感じでしょうか。松本:それはそうでしょうね。笹田:簡潔性といったときに、さて、Rubyは簡潔かというと、多分この読者は「えっ」っというところですけれども(笑)松本:簡潔っていう観点は、何で測定するか、という話になるのだけれど。Rubyで書かれたプログラムが、どれだけ短くなるか、という。ポールグレアムは、トークンの数って言ってたけど(笑)。あるアイディアを表現したいのに必要なプログラムの構成要素の数が少ない方がいいっていうのが、基本的な概念で。そこは結構重要なんじゃないかなと、いまだに思ってる。そこは変わらないかな。ドメインが決まっていれば。松本:ドメインが決まっていればね。Rubyの配列とかの使い方の観点でいうと、APLの圧縮度は、記憶容量的な問題で結構辛いところがあって。僕はいまだにAPLの記号が覚えられないんだけど(笑)。そのことを思うとね、どっかに閾値はあって、現時点では、僕が閾値になってるのは確かだよね(笑)。僕の脳みそで把握できるかどうかって。なんか提案された機能を使ってプログラムを書いたときに「あ、これは簡潔に書けた」、だけど、多分、3カ月後にフレッシュな気持ちでみたら、多分理解できないっていうときは、ちょっと慎重になるよね。柔軟で、それはもう変わんない感じですね。笹田:もっと柔軟でなくしてほしいっていう話がありますよね。入れてほしいっていう声はたくさんあるじゃないですか。柔軟性と独立の事象なのかな。早くエラーを発見したいとか。全面的に採用してしまうと、ある種の柔軟性は失なってしまうところがあるので、これもトレードオフなんだよね。数十万行のプログラムを書く人が出てきた。すると、実行することなしに矛盾を発見したいっていうニーズが、より強まった。2010年代になって生まれた言語になってくると、静的型のついた言語が圧倒的に多い。笹田:型推論がついたりとかですか。松本:型推論がついてたり。静的型があって、かつ、型推論がついているっていうのが、圧倒的に多い。おいてそういう、型を追求した感じというところですかね。いうのが当然出てくるとは思うんだけれども。それは、ある種の柔軟性を失うことになるので。笹田:うーん、本当にその柔軟性は必要なのかっていう。笹田:アセンブラでやったら、全部柔軟だよねって言っちゃうと、何もできなくなるのと同じで。いや、できますけど(笑)。言ってることは分かる。マクロを入れないっていうのも、柔軟性とは逆の方向ですよね。笹田:マクロがあれば、なんでもできる。なんでもしたいのか、っていう。どこかに閾値があって、そこはこう、僕が3カ月後にフレッシュな気持ちで見たときに、分からなくなるかもしれない(笑)。いう不安があるものは慎重になるっていうのが基準だよね。笹田:デザインポリシーですね。